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 = []
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 = []