Exemplo n.º 1
0
 def cleanup(forceclean):
     # Removing schemas
     filelist = glob.glob(
         '/etc/openldap/slapd.d/cn=config/cn=schema/*ppolicy.ldif')
     for policyfile in filelist:
         BaseConfig.safe_remove(policyfile)
     module_files = [
         "cn=module{0}.ldif", "cn=module{1}.ldif", "cn=module{2}.ldif"
     ]
     for module_file in module_files:
         module_file = '/etc/openldap/slapd.d/cn=config/' + str(module_file)
         BaseConfig.safe_remove(module_file)
     mdb_directory = '/etc/openldap/slapd.d/cn=config/olcDatabase={2}mdb'
     try:
         files = glob.glob(
             '/etc/openldap/slapd.d/cn=config/olcDatabase={2}mdb/*')
         for f in files:
             BaseConfig.safe_remove(f)
     except Exception:
         Log.error('Error while deleting ' + mdb_directory)
     mdbfile = '/etc/openldap/slapd.d/cn=config/olcDatabase={2}mdb.ldif'
     BaseConfig.safe_remove(mdbfile)
     #Data Cleanup
     if forceclean == 'True':
         files = glob.glob('/var/lib/ldap/*')
         for f in files:
             BaseConfig.safe_remove(f)
     #Clear the password set in config
     conn = ldap.initialize("ldapi:///")
     conn.sasl_non_interactive_bind_s('EXTERNAL')
     Replication.deleteattribute(conn, "olcDatabase={0}config,cn=config",
                                 "olcRootPW")
     conn.unbind_s()
Exemplo n.º 2
0
 def configure_openldap_replication(self, confvalues):
     """Configure openldap replication within a storage set."""
     storage_set_count = self.get_confvalue(
         self.get_confkey('CONFIG>CONFSTORE_STORAGE_SET_COUNT_KEY').replace(
             "cluster-id", self.cluster_id))
     index = 0
     while index < int(storage_set_count):
         server_nodes_list = self.get_confkey(
             'CONFIG>CONFSTORE_STORAGE_SET_SERVER_NODES_KEY').replace(
                 "cluster-id",
                 self.cluster_id).replace("storage-set-count", str(index))
         server_nodes_list = self.get_confvalue(server_nodes_list)
         if type(server_nodes_list) is str:
             # list is stored as string in the confstore file
             server_nodes_list = literal_eval(server_nodes_list)
         if len(server_nodes_list) > 1:
             sys.stdout.write(
                 f'\nSetting ldap-replication for storage_set:{index}\n\n')
             Path(self.utils_tmp_dir).mkdir(parents=True, exist_ok=True)
             ldap_hosts_list_file = os.path.join(
                 self.utils_tmp_dir, "ldap_hosts_list_file.txt")
             with open(ldap_hosts_list_file, "w") as f:
                 for node_machine_id in server_nodes_list:
                     host_name = self.get_confvalue(
                         f'server_node>{node_machine_id}>hostname')
                     f.write(f'{host_name}\n')
             f.close()
             Replication.setreplication(ldap_hosts_list_file,
                                        self.rootdn_passwd.decode("utf-8"),
                                        confvalues)
             os.remove(ldap_hosts_list_file)
         index += 1
Exemplo n.º 3
0
    def delete_replication_config(self):
        """Cleanup replication related config."""
        Log.debug("Starting replication cleanup")
        conn = ldap.initialize("ldapi://")
        conn.sasl_non_interactive_bind_s('EXTERNAL')

        dn = "cn=config"
        Replication.deleteattribute(conn, dn, "olcServerID")

        dn = "olcDatabase={2}mdb,cn=config"
        Replication.deleteattribute(conn, dn, "olcSyncrepl")
        Replication.deleteattribute(conn, dn, "olcMirrorMode")