def is_resource_node(hostname): host_enc = NetworkConfigController.decode_hostname(hostname) host_type = host_enc['host-type'] resource_node = NodeRole.to_type(NodeRole.RESOURCE_NODE) return host_type == resource_node
def equals_ignoring_traffic_group(hostname1, hostname2): host_enc1 = NetworkConfigController.decode_hostname(hostname1) host_enc2 = NetworkConfigController.decode_hostname(hostname2) if host_enc1['host-type'] != host_enc2['host-type']: return False if host_enc1['cloud-nickname'] != host_enc2['cloud-nickname']: return False if host_enc1['control-plane-ref'] != host_enc2['control-plane-ref']: return False if host_enc1['node-type'] != host_enc2['node-type']: return False if host_enc1['node-id'] != host_enc2['node-id']: return False return True
def _get_vlan(self, hostname, node_type, interface, network): net_controller = self._controllers['NetworkConfig'] env_controller = self._controllers['EnvironmentConfig'] host_enc = NetworkConfigController.decode_hostname(hostname) pool_name = host_enc['control-plane-ref'] elem_nln = net_controller.get_logical_network(pool_name, network) if not elem_nln: return None network_id = elem_nln['name'] elem_eln = env_controller.get_logical_network( node_type, interface, network_id) if not elem_eln: return None return elem_eln['segment-id']
def _get_vlan(self, hostname, node_type, interface, network): net_controller = self._controllers['NetworkConfig'] env_controller = self._controllers['EnvironmentConfig'] host_enc = NetworkConfigController.decode_hostname(hostname) pool_name = host_enc['control-plane-ref'] elem_nln = net_controller.get_logical_network(pool_name, network) if not elem_nln: return None network_id = elem_nln['name'] elem_eln = env_controller.get_logical_network(node_type, interface, network_id) if not elem_eln: return None return elem_eln['segment-id']
def _get_resource_node_allocations(self, elem_cp, node_type): LOG.info('%s(): node_type="%s"' % (KenLog.fcn(), node_type)) return_value = dict() if len(elem_cp['resource-nodes']) == 0: return None for nt, cur_rn in six.iteritems(elem_cp['resource-nodes']): if not cur_rn: continue if 'allocations' not in cur_rn: return None if len(cur_rn['allocations']) == 0: return None if nt.lower() == node_type.lower(): for allocation in cur_rn['allocations']: host_enc = NetworkConfigController.decode_hostname( allocation['name']) mnemonic = host_enc['network-ref'] if mnemonic not in return_value: return_value[mnemonic] = dict() if host_enc['node-id'].lower() == 'n0001': if 'ip-address' in allocation: return_value[mnemonic]['start'] = \ allocation['ip-address'] if 'ip-address' in allocation: return_value[mnemonic]['end'] = \ allocation['ip-address'] break return return_value
def id_from_hostname(hostname): host_enc = NetworkConfigController.decode_hostname(hostname) node_id = host_enc['node-id'] return int(node_id.replace('N', ''))
def get_type(hostname): host_enc = NetworkConfigController.decode_hostname(hostname) return host_enc['node-type']
def get_control_plane_id(hostname): host_enc = NetworkConfigController.decode_hostname(hostname) return host_enc['control-plane-ref']