Merge branch 'ldap_plugin' into 'newinfra'

[ldap.py] Add cn query

See merge request nounous/ansible!149
certbot_on_virtu
_benjamin 2021-01-01 12:00:33 +01:00
commit 320058eb2e
1 changed files with 22 additions and 1 deletions

View File

@ -60,9 +60,28 @@ class LookupModule(LookupBase):
result = [res.decode('utf-8') for res in result['ipHostNumber']] result = [res.decode('utf-8') for res in result['ipHostNumber']]
return result return result
def cn(self, host, vlan):
"""
Retrieve aliases of an interface of a device
query('ldap', 'cn', HOST, VLAN)
"""
if isinstance(vlan, int):
network_query_id = self.base.search(f"ou=networks,{self.base_dn}", ldap.SCOPE_ONELEVEL, f"description={vlan}")
network_result = self.base.result(network_query_id)
vlan = network_result[1][0][1]['cn'][0].decode('utf-8')
if vlan == 'srv':
query_id = self.base.search(f"cn={host}.crans.org,cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_BASE)
else:
query_id = self.base.search(f"cn={host}.{vlan}.crans.org,cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_BASE)
result = self.base.result(query_id)
result = result[1][0][1]
result = [res.decode('utf-8') for res in result['cn']]
return result
def subnet_ipv4(self, subnet): def subnet_ipv4(self, subnet):
""" """
Retrive used IP addresses on a subnet Retrieve used IP addresses on a subnet
query('ldap', 'subnet_ipv4', SUBNET) query('ldap', 'subnet_ipv4', SUBNET)
""" """
network_query_id = self.base.search(f"cn={subnet},ou=networks,{self.base_dn}", ldap.SCOPE_BASE) network_query_id = self.base.search(f"cn={subnet},ou=networks,{self.base_dn}", ldap.SCOPE_BASE)
@ -80,6 +99,8 @@ class LookupModule(LookupBase):
result = self.query(*terms[1:]) result = self.query(*terms[1:])
elif terms[0] == 'ip': elif terms[0] == 'ip':
result = self.ip(*terms[1:]) result = self.ip(*terms[1:])
elif terms[0] == 'cn':
result = self.cn(*terms[1:])
elif terms[0] == 'subnet_ipv4': elif terms[0] == 'subnet_ipv4':
result = self.subnet_ipv4(*terms[1:]) result = self.subnet_ipv4(*terms[1:])
elif terms[0] == 'group': elif terms[0] == 'group':