def fix_folder(self, element): f = element["name"] if element["fix_func"]: element["fix_func"](element) elif not files.is_dir(f): files.mkdir(f) if files.is_dir(f): files.chmod(f, **element["perm"])
def fix_file(self, element): file_list = [] if element["name"].find("*") != -1: file_list = files.ls(element["name"]) else: file_list = [element["name"]] for f in file_list: if element["fix_func"]: element["fix_func"](element) if files.is_file(f): files.chmod(f, **element["perm"])
def fix_cron_acl(self): unix_group = self.conf.get('access','unix_group') ldap_group = self.conf.get('access','ldap_group') if unix_group and CONF_MAP('unix','enabled'): unix_acl = self.generate_acl(unix_group) cron_fullpath = "/etc/cron.acl/%s" % self.get_safe_name(unix_group) files.create(cron_fullpath, unix_acl) files.chmod(cron_fullpath, u='rx',g='rx',o='rx') if ldap_group and CONF_MAP('ldap','enabled'): ldap_acl = self.generate_acl(ldap_group) cron_fullpath = "/etc/cron.acl/%s" % self.get_safe_name(ldap_group) files.create(cron_fullpath, ldap_acl) files.chmod(cron_fullpath, u='rx',g='rx',o='rx')
def run(self): print "pre install" _install.run(self) #script link source = "%s/uwsas/uwsa.py" % self.install_lib link = "/usr/local/bin/uwsa" if not files.exists(link): files.symlink(source,link) files.chmod(link, u="rx",g="rx",o="rx") #validate v0.3.1 old path if files.exists("/usr/local/lib/uwsa") and \ inputs.get_input_yesno(t("The old uwsa path exists. Do you want to move its content to new destination?")): cmd_list = [ "bash -c 'mkdir -p /var/lib/uwsa'", "bash -c 'cp -fr /usr/local/lib/uwsa/* /var/lib/uwsa/'", ] completed, pinfo = core.exec_cmd_list(cmd_list) if completed: cmd_list = [ "bash -c 'mv /usr/local/lib/uwsa /usr/local/lib/uwsa_to_delete'", ] completed, pinfo = core.exec_cmd_list(cmd_list) files.replace_in('/etc/uwsa/uwsa.conf','/usr/local/lib/uwsa','/var/lib/uwsa') #validate v0.4 remove mysql_xxx in conf all_conf = files.ls("/var/lib/uwsa/site/*") for f in all_conf: if files.is_file(f): files.replace_in(f,'mysql_schema','schema') files.replace_in(f,'mysql_user','user') files.replace_in(f,'mysql_pass','pass') #install prereque dependencies = "python-ldap python-iniparse python-mysqldb" print t("Will install"), dependencies cmd_list = [ 'apt-get update', "bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y %s'" % dependencies, ] completed, pinfo = core.exec_cmd_list(cmd_list) if not completed: raise Exception(t("Cannot install uwsa dependencies! %s" % dependencies)) print t("post install DONE!")
def fix_auto_mount(self): safe_site_name = self.get_safe_name(self.conf.get('main','site_name')) auto_mount = self.generate_auto_mount() auto_mount_filename = CONF_MAP('libpam_script','auto_mount_dir') + "/%s" % safe_site_name files.create(auto_mount_filename, auto_mount) files.chmod(auto_mount_filename, u='rx',g='rx',o='')
def fix_perm_dev_team(self, element): if not files.contains(element['name'], self.cron_acl_dev_team): files.create(element['name'], self.cron_acl_dev_team) files.chmod(element['name'], u='rx',g='rx',o='rx')
def fix_perm_cron(self, element): if not files.contains(element['name'], self.cron_acl_sudo): files.create(element['name'], self.cron_acl_sudo) files.chmod(element['name'], u='rx',g='rx',o='rx')
def fix_sudoers(self, element): if not files.contains(element['name'], '%domain\ admins ALL=(ALL) ALL'): files.append(element['name'], '%domain\ admins ALL=(ALL) ALL') files.chmod(element['name'], **element['perm'])