node_hierarchy/cloud/NodeInit.py

57 lines
1.9 KiB
Python
Raw Normal View History

2016-05-29 18:56:50 +02:00
class NodeInit(object):
def __init__(self, NodeJsonObject):
self.__jsonObject__ = NodeJsonObject
self.nodeID = self.__jsonObject__['nodeinfo']['node_id']
self.interfaces = self.__getInterfaces__()
self.hostname = self.__jsonObject__['nodeinfo']['hostname']
self.isGateway = self.__jsonObject__['nodeinfo']['isGateway']
2016-05-29 18:56:50 +02:00
self.geo = self.__getGeo__()
self.isAutoupdaterEnabled = self.__getAutoupdaterStatus__()
self.autoupdaterBranch = self.__getBranch__()
self.isOnline = self.__jsonObject__['nodeinfo']['isOnline']
2016-05-29 18:56:50 +02:00
self.publicIPv6Addresses = self.__getPublicAddresses__()
self.domName = self.__getSiteCode__()
2016-05-29 18:56:50 +02:00
def __getInterfaces__(self):
try:
return self.__jsonObject__['nodeinfo']['network']['mesh']['bat0']['interfaces']
except:
return {}
def __getAutoupdaterStatus__(self):
try:
2016-05-29 18:56:50 +02:00
return self.__jsonObject__['nodeinfo']['software']['autoupdater']['enabled']
except:
2016-05-29 18:56:50 +02:00
return False
def __getBranch__(self):
try:
return self.__jsonObject__['nodeinfo']['software']['autoupdater']['branch']
except:
return None
2016-05-29 18:56:50 +02:00
def __getGeo__(self):
try:
return {
'lat' : self.__jsonObject__['nodeinfo']['location']['latitude'],
'lon' : self.__jsonObject__['nodeinfo']['location']['longitude']
}
except:
return None
2016-05-29 18:56:50 +02:00
def __getPublicAddresses__(self):
addresses = []
try:
2016-05-29 18:56:50 +02:00
for address in self.__jsonObject__['nodeinfo']['network']['addresses']:
if not address.startswith('fe80'):
2016-05-29 18:56:50 +02:00
addresses.append(address)
except:
pass
2016-05-29 18:56:50 +02:00
return addresses
def __getSiteCode__(self):
try:
return self.__jsonObject__['nodeinfo']['system']['site_code']
except:
return None