2016-08-03 07:13:16 +03:00
|
|
|
import os
|
|
|
|
|
2016-08-17 23:18:03 +03:00
|
|
|
import dns.name
|
|
|
|
import dns.reversename
|
|
|
|
|
2016-08-17 17:13:43 +03:00
|
|
|
import dnslib
|
|
|
|
|
2016-08-17 23:18:03 +03:00
|
|
|
from IPy import IP
|
|
|
|
|
2016-07-20 17:03:37 +03:00
|
|
|
from onedns.logger import log
|
|
|
|
|
|
|
|
|
2016-08-12 18:12:11 +03:00
|
|
|
def get_fqdn(name, domain):
|
2016-08-17 17:13:43 +03:00
|
|
|
domain = dnslib.DNSLabel(domain)
|
|
|
|
name = dnslib.DNSLabel(name)
|
|
|
|
if name.label[-1 * len(domain.label):] != domain.label:
|
|
|
|
return dnslib.DNSLabel(name.label + domain.label).idna()
|
|
|
|
else:
|
|
|
|
return name.idna()
|
2016-08-12 18:12:11 +03:00
|
|
|
|
|
|
|
|
2016-08-17 23:18:03 +03:00
|
|
|
def reverse_to_ip(reverse):
|
|
|
|
rname = dns.name.Name(reverse.split('.'))
|
|
|
|
return IP(dns.reversename.to_address(rname))
|
|
|
|
|
|
|
|
|
2016-08-03 07:13:16 +03:00
|
|
|
def get_kwargs_from_dict(d, prefix, lower=False):
|
|
|
|
tups_list = []
|
|
|
|
for i in d:
|
|
|
|
if i.startswith(prefix):
|
|
|
|
arg = i.replace(prefix, '')
|
|
|
|
if lower:
|
|
|
|
arg = arg.lower()
|
|
|
|
tups_list.append((arg, d[i]))
|
|
|
|
return dict(tups_list)
|
|
|
|
|
|
|
|
|
|
|
|
def get_kwargs_from_env(prefix, lower=False):
|
|
|
|
return get_kwargs_from_dict(os.environ, prefix, lower=lower)
|
2016-07-21 22:11:30 +03:00
|
|
|
|
|
|
|
|
2016-07-20 17:03:37 +03:00
|
|
|
def shell(local_ns={}):
|
|
|
|
try:
|
|
|
|
from IPython import embed
|
|
|
|
return embed(user_ns=local_ns)
|
|
|
|
except ImportError as e:
|
|
|
|
log.error("Unable to load IPython:\n\n%s\n" % e)
|
|
|
|
log.error("Please check that IPython is installed and working.")
|