Add the checking that the package for the service is installed.

legacy 2.1.15
Mike Hiretsky 13 years ago
parent 860cd43a5b
commit d5c7a52892

Binary file not shown.

@ -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):
'''Обработать опции связанные с переменными окружения

@ -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)
sys.exit(0)

Loading…
Cancel
Save