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.allServ = []
self.__setAllServ() 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): def processOptionsForDatavars(self, options, datavars):
'''Обработать опции связанные с переменными окружения '''Обработать опции связанные с переменными окружения

@ -32,50 +32,61 @@ if __name__ == "__main__":
if not optObj.flagHelp and optObj.params.has_key('service'): if not optObj.flagHelp and optObj.params.has_key('service'):
# Настройка сервера LDAP # Настройка сервера LDAP
flagError = True 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() obj = cl_ldap.servLdap()
if obj.setupLdapServer(optObj.opt): if obj.setupLdapServer(optObj.opt):
flagError = False 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() obj = cl_ldap.servUnix()
if obj.setupUnixServer(optObj.opt): if obj.setupUnixServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера Samba # Настройка сервера Samba
elif optObj.params['service'] == "samba": elif optObj.params['service'] == "samba" and \
ldapObj.checkPkgs('net-fs/samba'):
obj = cl_ldap.servSamba() obj = cl_ldap.servSamba()
if obj.setupSambaServer(optObj.opt): if obj.setupSambaServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера Mail # Настройка сервера Mail
elif optObj.params['service'] == "mail": elif optObj.params['service'] == "mail" and \
ldapObj.checkPkgs('net-mail/dovecot','mail-mta/postfix'):
obj = cl_ldap.servMail() obj = cl_ldap.servMail()
if obj.setupMailServer(optObj.opt): if obj.setupMailServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера jabber # Настройка сервера jabber
elif optObj.params['service'] == "jabber": elif optObj.params['service'] == "jabber" and \
ldapObj.checkPkgs('net-im/ejabberd'):
obj = cl_ldap.servJabber() obj = cl_ldap.servJabber()
if obj.setupJabberServer(optObj.opt): if obj.setupJabberServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера ftp # Настройка сервера ftp
elif optObj.params['service'] == "ftp": elif optObj.params['service'] == "ftp" and \
ldapObj.checkPkgs('net-ftp/proftpd'):
obj = cl_ldap.servFtp() obj = cl_ldap.servFtp()
if obj.setupFtpServer(optObj.opt): if obj.setupFtpServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера proxy # Настройка сервера proxy
elif optObj.params['service'] == "proxy": elif optObj.params['service'] == "proxy" and \
ldapObj.checkPkgs('net-proxy/squid'):
obj = cl_ldap.servProxy() obj = cl_ldap.servProxy()
if obj.setupProxyServer(optObj.opt): if obj.setupProxyServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера dns # Настройка сервера dns
elif optObj.params['service'] == "dns": elif optObj.params['service'] == "dns" and \
ldapObj.checkPkgs('net-dns/bind'):
obj = cl_ldap.servDns() obj = cl_ldap.servDns()
if obj.setupDnsServer(optObj.opt): if obj.setupDnsServer(optObj.opt):
flagError = False flagError = False
# Настройка сервера dhcp # Настройка сервера dhcp
elif optObj.params['service'] == "dhcp": elif optObj.params['service'] == "dhcp" and \
ldapObj.checkPkgs('net-misc/dhcp'):
obj = cl_ldap.servDhcp() obj = cl_ldap.servDhcp()
if obj.setupDhcpServer(optObj.opt): if obj.setupDhcpServer(optObj.opt):
flagError = False flagError = False
if flagError: if flagError:
sys.exit(1) sys.exit(1)
else: else:
sys.exit(0) sys.exit(0)

Loading…
Cancel
Save