summaryrefslogtreecommitdiff
path: root/src/fapi.py
diff options
context:
space:
mode:
authorPaul C. Buetow <paul@buetow.org>2014-04-12 18:59:38 +0200
committerPaul C. Buetow <paul@buetow.org>2014-04-12 18:59:38 +0200
commit0faca596844a5a6159483e45c4530ddf5e0f1fc3 (patch)
tree768f5acf2f1b20e0d815a9ed7b780f9b314cbde8 /src/fapi.py
parent5ce73d94a44fe5e73b9a74e6653c6c8861d237eb (diff)
auto resolve fqdn and ip addresses
Diffstat (limited to 'src/fapi.py')
-rwxr-xr-xsrc/fapi.py38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/fapi.py b/src/fapi.py
index f65e14b..f672612 100755
--- a/src/fapi.py
+++ b/src/fapi.py
@@ -94,10 +94,25 @@ class Fapi(object):
elif a.arg == 'create':
nodename = a.arg2
- nodeip = a.arg3
- limits = 0
- self.info('Creating node \'%s\' \'%s\'' % (nodename, nodeip))
- n.create([nodename],[nodeip],[limits])
+
+ try:
+ data = socket.gethostbyname_ex(nodename)
+ except Exception, e:
+ self.info('Can\'t resolve \'%s\': %s' % (nodename, e))
+ sys.exit(2)
+
+ nodefqdn = data[0]
+ nodeips = data[2]
+
+ if len(nodeips) > 1:
+ self.info('\'%s\' resolves to multiple ips \'%s\''
+ % (nodefqdn, nodeips))
+ sys.exit(2)
+
+ self.info('Creating node \'%s\' \'%s\'' % (nodefqdn, nodeips[0]))
+
+ n.create([nodefqdn],nodeips,[0])
+
return True
elif a.arg == 'delete':
@@ -199,13 +214,12 @@ if __name__ == '__main__':
fapi = Fapi(args)
- #try:
- if not fapi.run():
- fapi.info('Don\'t know what to do')
- sys.exit(1)
-
- #except Exception, e:
- # fapi.info(e)
- # sys.exit(2)
+ try:
+ if not fapi.run():
+ fapi.info('Don\'t know what to do')
+ sys.exit(1)
+ except Exception, e:
+ fapi.info(e)
+ sys.exit(2)
# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4