Merge branch 'ldap_plugin' into 'newinfra'
[ldap.py] Add all_ip and all_cn query See merge request nounous/ansible!150certbot_on_virtu
						commit
						d867c9356c
					
				| 
						 | 
				
			
			@ -60,6 +60,19 @@ class LookupModule(LookupBase):
 | 
			
		|||
        result = [res.decode('utf-8') for res in result['ipHostNumber']]
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
    def all_ip(self, host):
 | 
			
		||||
        """
 | 
			
		||||
        Retrieve all IP addresses of a device
 | 
			
		||||
        query('ldap', 'all_ip', HOST)
 | 
			
		||||
        """
 | 
			
		||||
        interfaces_query_id = self.base.search(f"cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_ONELEVEL)
 | 
			
		||||
        interfaces_result = self.base.result(interfaces_query_id)
 | 
			
		||||
        result = []
 | 
			
		||||
        for dn, interface in interfaces_result[1]:
 | 
			
		||||
            for ip in interface['ipHostNumber']:
 | 
			
		||||
                result.append(ip.decode('utf-8'))
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
    def cn(self, host, vlan):
 | 
			
		||||
        """
 | 
			
		||||
        Retrieve aliases of an interface of a device
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +91,18 @@ class LookupModule(LookupBase):
 | 
			
		|||
        result = [res.decode('utf-8') for res in result['cn']]
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
    def all_cn(self, host):
 | 
			
		||||
        """
 | 
			
		||||
        Retrieve all aliases addresses of a device
 | 
			
		||||
        query('ldap', 'all_cn', HOST)
 | 
			
		||||
        """
 | 
			
		||||
        interfaces_query_id = self.base.search(f"cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_ONELEVEL)
 | 
			
		||||
        interfaces_result = self.base.result(interfaces_query_id)
 | 
			
		||||
        result = []
 | 
			
		||||
        for dn, interface in interfaces_result[1]:
 | 
			
		||||
            for cn in interface['cn']:
 | 
			
		||||
                result.append(cn.decode('utf-8'))
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
    def subnet_ipv4(self, subnet):
 | 
			
		||||
        """
 | 
			
		||||
| 
						 | 
				
			
			@ -99,8 +124,12 @@ class LookupModule(LookupBase):
 | 
			
		|||
            result = self.query(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'ip':
 | 
			
		||||
            result = self.ip(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'all_ip':
 | 
			
		||||
            result = self.all_ip(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'cn':
 | 
			
		||||
            result = self.cn(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'all_cn':
 | 
			
		||||
            result = self.all_cn(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'subnet_ipv4':
 | 
			
		||||
            result = self.subnet_ipv4(*terms[1:])
 | 
			
		||||
        elif terms[0] == 'group':
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue