def nodes(self): nodes = [] for zone in self.zones: for node in zone: try: nodes.append(api.getNodeStatus(node['nodeAddress'])) except SXClientException: return [] return nodes
def get_nodes_context(self): nodes_count = 0 zones_info = [] for i, zone in enumerate(self.zones): zone_nodes = [] zones_info.append(zone_nodes) for j, data in enumerate(zone): nodes_count += 1 node = { 'uuid': data['nodeUUID'], 'public_ip': data['nodeAddress'], 'private_ip': data.get('nodeInternalAddress'), 'capacity': data['nodeCapacity'], } zone_nodes.append(node) try: data = api.getNodeStatus(data['nodeAddress']) except SXClientException: node['down'] = True continue node.update({ 'sx_version': data['libsxclientVersion'], 'hashfs_version': data['hashFSVersion'].split()[-1], 'storage_path': data['nodeDir'], 'cores': data['cores'], 'memory': data['memTotal'], 'system': data['osType'] + ' ' + data['osRelease'], 'local_time': parse_date(data['localTime']), 'used_space': data['storageUsed'], 'free_space': data['fsAvailBlocks'] * data['fsBlockSize'], }) return { 'nodes_count': nodes_count, 'zones': zones_info, }