diff --git a/i18n/cl_server_ru.mo b/i18n/cl_server_ru.mo index 77e1fc6..5b30c73 100644 Binary files a/i18n/cl_server_ru.mo and b/i18n/cl_server_ru.mo differ diff --git a/pym/cl_ldap.py b/pym/cl_ldap.py index 6682a2d..385ccdf 100644 --- a/pym/cl_ldap.py +++ b/pym/cl_ldap.py @@ -11309,6 +11309,19 @@ service") self.allServ = [] self.__setAllServ() + def checkPkgs(self,*pkgs): + """Check that the package is installed""" + pkgDir = '/var/db/pkg' + for pkg in pkgs: + category,package = pkg.split('/') + catDir = os.path.join(pkgDir,category) + package = "%s-"%package + if not (os.path.exists(catDir) and + filter(lambda x:x.startswith(package),os.listdir(catDir))): + self.printERROR(_("Package '%s' is not installed")%pkg) + return False + return True + def processOptionsForDatavars(self, options, datavars): '''Обработать опции связанные с переменными окружения diff --git a/scripts/cl-setup b/scripts/cl-setup index 717526b..424d7a3 100644 --- a/scripts/cl-setup +++ b/scripts/cl-setup @@ -32,50 +32,61 @@ if __name__ == "__main__": if not optObj.flagHelp and optObj.params.has_key('service'): # Настройка сервера LDAP flagError = True - if optObj.params['service'] == "ldap": + if optObj.params['service'] == "ldap" and \ + ldapObj.checkPkgs('net-nds/openldap','sys-auth/pam_ldap', + 'sys-auth/nss_ldap'): obj = cl_ldap.servLdap() if obj.setupLdapServer(optObj.opt): flagError = False - elif optObj.params['service'] == "unix": + elif optObj.params['service'] == "unix" and \ + ldapObj.checkPkgs('net-nds/openldap','sys-auth/pam_ldap', + 'sys-auth/nss_ldap'): obj = cl_ldap.servUnix() if obj.setupUnixServer(optObj.opt): flagError = False # Настройка сервера Samba - elif optObj.params['service'] == "samba": + elif optObj.params['service'] == "samba" and \ + ldapObj.checkPkgs('net-fs/samba'): obj = cl_ldap.servSamba() if obj.setupSambaServer(optObj.opt): flagError = False # Настройка сервера Mail - elif optObj.params['service'] == "mail": + elif optObj.params['service'] == "mail" and \ + ldapObj.checkPkgs('net-mail/dovecot','mail-mta/postfix'): obj = cl_ldap.servMail() if obj.setupMailServer(optObj.opt): flagError = False # Настройка сервера jabber - elif optObj.params['service'] == "jabber": + elif optObj.params['service'] == "jabber" and \ + ldapObj.checkPkgs('net-im/ejabberd'): obj = cl_ldap.servJabber() if obj.setupJabberServer(optObj.opt): flagError = False # Настройка сервера ftp - elif optObj.params['service'] == "ftp": + elif optObj.params['service'] == "ftp" and \ + ldapObj.checkPkgs('net-ftp/proftpd'): obj = cl_ldap.servFtp() if obj.setupFtpServer(optObj.opt): flagError = False # Настройка сервера proxy - elif optObj.params['service'] == "proxy": + elif optObj.params['service'] == "proxy" and \ + ldapObj.checkPkgs('net-proxy/squid'): obj = cl_ldap.servProxy() if obj.setupProxyServer(optObj.opt): flagError = False # Настройка сервера dns - elif optObj.params['service'] == "dns": + elif optObj.params['service'] == "dns" and \ + ldapObj.checkPkgs('net-dns/bind'): obj = cl_ldap.servDns() if obj.setupDnsServer(optObj.opt): flagError = False # Настройка сервера dhcp - elif optObj.params['service'] == "dhcp": + elif optObj.params['service'] == "dhcp" and \ + ldapObj.checkPkgs('net-misc/dhcp'): obj = cl_ldap.servDhcp() if obj.setupDhcpServer(optObj.opt): flagError = False if flagError: sys.exit(1) else: - sys.exit(0) \ No newline at end of file + sys.exit(0)