Example #1
0
    def __init__(self, task, data):
        """Collect Network Groups data
        """
        self.cluster = task.cluster
        self.task = task
        self.data = data
        self.net_man = objects.Cluster.get_network_manager(self.cluster)
        #NetworkManager,NeutronManager,NovaNetworkManager
        self.net_provider = self.cluster.net_provider
        #net_provider列的值(枚举)
        admin_ng = self.net_man.get_admin_network_group()
        #1.admin_ngs = db().query(NetworkGroup).filter_by(name="fuelweb_admin")
        #2.admin_ng = admin_ng or admin_ngs.filter_by(group_id=None).first()
        fields = NetworkGroup.__mapper__.columns.keys() + ['meta']
        net = NetworkConfigurationSerializer.serialize_network_group(admin_ng,
                                                                     fields)
        # change Admin name for UI
        net.update(name='admin (PXE)')
        self.networks = [net]
        for ng in self.cluster.network_groups:
            net = NetworkConfigurationSerializer.serialize_network_group(
                ng,
                fields)
            self.networks.append(net)
        # merge with data['networks']
        logger.info(data)
        if 'networks' in data:
            for data_net in data['networks']:
                for net in self.networks:
                    if data_net['id'] == net['id']:
                        if data_net.get('meta'):
                            data_net.pop('meta')
                        net.update(data_net)
                        if data_net.get('name') == 'fuelweb_admin':
                            net.update(name='admin (PXE)')
                        break
                else:
                    raise errors.NetworkCheckError(
                        u"Invalid network ID: {0}".format(data_net['id']))
        # get common networking parameters
        serializer = {'neutron': NeutronNetworkConfigurationSerializer,
                      'nova_network': NovaNetworkConfigurationSerializer}
        self.network_config = serializer[self.net_provider].\
            serialize_network_params(self.cluster)
        self.network_config.update(data.get('networking_parameters', {}))

        self.result = []
        self.err_msgs = []
Example #2
0
    def __init__(self, task, data):
        """Collect Network Groups data
        """
        self.cluster = task.cluster
        self.task = task
        self.data = data
        self.net_man = objects.Cluster.get_network_manager(self.cluster)
        self.net_provider = self.cluster.net_provider
        admin_ng = self.net_man.get_admin_network_group()
        fields = NetworkGroup.__mapper__.columns.keys() + ['meta']
        net = NetworkConfigurationSerializer.serialize_network_group(admin_ng,
                                                                     fields)
        # change Admin name for UI
        net.update(name='admin (PXE)')
        self.networks = [net]
        for ng in self.cluster.network_groups:
            net = NetworkConfigurationSerializer.serialize_network_group(
                ng,
                fields)
            self.networks.append(net)
        # merge with data['networks']
        for data_net in data.get('networks', []):
            for net in self.networks:
                if data_net['id'] == net['id']:
                    net.update(data_net)
                    if data_net.get('name') == consts.NETWORKS.fuelweb_admin:
                        net.update(name='admin (PXE)')
                    data_net.pop('meta', None)
                    break
        # get common networking parameters
        serializer = {
            consts.CLUSTER_NET_PROVIDERS.neutron:
            NeutronNetworkConfigurationSerializer,
            consts.CLUSTER_NET_PROVIDERS.nova_network:
            NovaNetworkConfigurationSerializer
        }
        self.network_config = serializer[self.net_provider].\
            serialize_network_params(self.cluster)
        self.network_config.update(data.get('networking_parameters', {}))

        self.result = []
        self.err_msgs = []