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']
Exemple #5
0
    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']