def create_tenant_fw(self, context, **kwargs): nwa_data = self.proxy_l2.ensure_l2_network(context, **kwargs) device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] dev_key = data_utils.get_device_key(device_id) net_key = data_utils.get_device_net_key(device_id, network_id) if dev_key not in nwa_data: nwa_data = self._create_tenant_fw(nwa_data, context, **kwargs) elif net_key not in nwa_data: nwa_data = self._update_tenant_fw(context, connect='connect', nwa_data=nwa_data, **kwargs) else: LOG.warning(_LW("unknown device.")) if not nwa_data: raise nwa_exc.AgentProxyException(value=kwargs['nwa_data']) ret = self.proxy_tenant.update_tenant_binding(context, kwargs['tenant_id'], kwargs['nwa_tenant_id'], nwa_data) resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] vlan_id = data_utils.get_vp_net_vlan_id(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW) self.nwa_l2_rpc.update_port_state_with_notifier( context, device_id, self.agent_top.agent_id, kwargs['nwa_info']['port']['id'], { api.PHYSICAL_NETWORK: kwargs['nwa_info']['physical_network'], api.NETWORK_TYPE: n_constants.TYPE_VLAN, api.SEGMENTATION_ID: vlan_id }, network_id) return ret
def create_general_dev(self, context, **kwargs): """Create GeneralDev wrapper. @param context: contains user information. @param kwargs: @return: dict of status and msg. """ nwa_data = self._ensure_l2_network(context, **kwargs) if not nwa_data: return tenant_id = kwargs.get('tenant_id') nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') network_id = nwa_info['network']['id'] resource_group_name = nwa_info['resource_group_name'] # create general dev if not check_segment_gd(network_id, resource_group_name, nwa_data): # raise AgentProxyException if fail nwa_data = self._create_general_dev(context, nwa_data=nwa_data, **kwargs) else: ret_val = self._create_general_dev_data(nwa_data=nwa_data, **kwargs) if ret_val: nwa_data = ret_val # agent waits for notifier issue for libviert. time.sleep(WAIT_AGENT_NOTIFIER) # create general dev end ret = self.proxy_tenant.update_tenant_binding(context, tenant_id, nwa_tenant_id, nwa_data, nwa_created=False) segment = { api.PHYSICAL_NETWORK: nwa_info['physical_network'], api.NETWORK_TYPE: plugin_const.TYPE_VLAN, api.SEGMENTATION_ID: data_utils.get_vp_net_vlan_id(nwa_data, network_id, resource_group_name, nwa_const.NWA_DEVICE_GDV) } self.nwa_l2_rpc.update_port_state_with_notifier( context, nwa_info['device']['id'], self.agent_top.agent_id, nwa_info['port']['id'], segment, network_id) return ret
def create_general_dev(self, context, **kwargs): """Create GeneralDev wrapper. @param context: contains user information. @param kwargs: @return: dict of status and msg. """ nwa_data = self._ensure_l2_network(context, **kwargs) if not nwa_data: return tenant_id = kwargs.get('tenant_id') nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') network_id = nwa_info['network']['id'] resource_group_name = nwa_info['resource_group_name'] # create general dev if not check_segment_gd(network_id, resource_group_name, nwa_data): if self.multi_dc: sync_vlan_id = self._create_connect_port else: sync_vlan_id = self._create_general_dev # raise AgentProxyException if fail nwa_data = sync_vlan_id(context, nwa_data=nwa_data, **kwargs) else: ret_val = self._create_general_dev_data( nwa_data=nwa_data, **kwargs) if ret_val: nwa_data = ret_val # agent waits for notifier issue for libviert. time.sleep(WAIT_AGENT_NOTIFIER) # create general dev end ret = self.proxy_tenant.update_tenant_binding( context, tenant_id, nwa_tenant_id, nwa_data, nwa_created=False ) segment = { api.PHYSICAL_NETWORK: nwa_info['physical_network'], api.NETWORK_TYPE: plugin_const.TYPE_VLAN, api.SEGMENTATION_ID: data_utils.get_vp_net_vlan_id( nwa_data, network_id, resource_group_name, nwa_const.NWA_DEVICE_GDV) } self.nwa_l2_rpc.update_port_state_with_notifier( context, nwa_info['device']['id'], self.agent_top.agent_id, nwa_info['port']['id'], segment, network_id ) return ret
def create_tenant_fw(self, context, **kwargs): nwa_data = self.proxy_l2.ensure_l2_network(context, **kwargs) device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] dev_key = data_utils.get_device_key(device_id) net_key = data_utils.get_device_net_key(device_id, network_id) if dev_key not in nwa_data: nwa_data = self._create_tenant_fw(nwa_data, context, **kwargs) elif net_key not in nwa_data: nwa_data = self._update_tenant_fw( context, connect='connect', nwa_data=nwa_data, **kwargs) else: LOG.warning(_LW("unknown device.")) if not nwa_data: raise nwa_exc.AgentProxyException(value=kwargs['nwa_data']) ret = self.proxy_tenant.update_tenant_binding( context, kwargs['tenant_id'], kwargs['nwa_tenant_id'], nwa_data ) resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] vlan_id = data_utils.get_vp_net_vlan_id(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW) self.nwa_l2_rpc.update_port_state_with_notifier( context, device_id, self.agent_top.agent_id, kwargs['nwa_info']['port']['id'], { api.PHYSICAL_NETWORK: kwargs['nwa_info']['physical_network'], api.NETWORK_TYPE: n_constants.TYPE_VLAN, api.SEGMENTATION_ID: vlan_id }, network_id ) return ret