[ldap.py] Add all_ip and all_cn query
parent
320058eb2e
commit
3c065b029e
|
@ -60,6 +60,19 @@ 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 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):
|
def cn(self, host, vlan):
|
||||||
"""
|
"""
|
||||||
Retrieve aliases of an interface of a device
|
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']]
|
result = [res.decode('utf-8') for res in result['cn']]
|
||||||
return result
|
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):
|
def subnet_ipv4(self, subnet):
|
||||||
"""
|
"""
|
||||||
|
@ -99,8 +124,12 @@ 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] == 'all_ip':
|
||||||
|
result = self.all_ip(*terms[1:])
|
||||||
elif terms[0] == 'cn':
|
elif terms[0] == 'cn':
|
||||||
result = self.cn(*terms[1:])
|
result = self.cn(*terms[1:])
|
||||||
|
elif terms[0] == 'all_cn':
|
||||||
|
result = self.all_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':
|
||||||
|
|
Loading…
Reference in New Issue