def _create_tenant_fw(self, nwa_data, context, **kwargs): device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] rcode, body = self.client.l3.create_tenant_fw( kwargs['nwa_tenant_id'], kwargs['nwa_info']['resource_group_name'], kwargs['nwa_info']['port']['ip'], data_utils.get_vlan_logical_name(nwa_data, network_id), kwargs['nwa_info']['network']['vlan_type']) if rcode != 200 or body['status'] != 'SUCCEED': return None LOG.debug("CreateTenantFW SUCCEED.") tfw_name = body['resultdata']['TenantFWName'] resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] data_utils.set_tfw_device_data(nwa_data, device_id, tfw_name, kwargs['nwa_info']) data_utils.set_tfw_interface_data(nwa_data, device_id, network_id, resource_group_name_nw, tfw_name, kwargs['nwa_info']) vlan_id = data_utils.get_vlan_id(network_id, nwa_data, body['resultdata']) data_utils.set_vp_net_data(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW, vlan_id) if self.tenant_fw_create_hook: self.tenant_fw_create_hook(context, tfw_name, **kwargs) return nwa_data
def _delete_nat(self, context, **kwargs): nwa_data = kwargs.get('nwa_data') floating = kwargs.get('floating') vlan_logical_name = data_utils.get_vlan_logical_name( nwa_data, floating['floating_network_id']) dev_name = data_utils.get_tfw_device_name(nwa_data, floating['device_id']) # setting nat rcode, body = self.client.l3.delete_nat( kwargs.get('nwa_tenant_id'), vlan_logical_name, 'PublicVLAN', floating['fixed_ip_address'], floating['floating_ip_address'], dev_name, data=floating) if rcode != 200 or body['status'] != 'SUCCEED': LOG.debug("DeleteNat Error: invalid responce." " rcode=%d status=%s" % (rcode, body)) raise nwa_exc.AgentProxyException(value=None) else: LOG.debug("DeleteNat SUCCEED") data_utils.strip_floatingip_data(nwa_data, floating) return nwa_data
def _setting_nat(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_data = kwargs.get('nwa_data') floating = kwargs.get('floating') # new code.(neet ut) nat_key = 'NAT_' + floating['id'] if nat_key in nwa_data: LOG.debug('already in use NAT key =%s', nat_key) raise nwa_exc.AgentProxyException(value=None) vlan_logical_name = data_utils.get_vlan_logical_name( nwa_data, floating['floating_network_id']) dev_name = data_utils.get_tfw_device_name(nwa_data, floating['device_id']) # setting nat rcode, body = self.client.l3.setting_nat( nwa_tenant_id, vlan_logical_name, 'PublicVLAN', floating['fixed_ip_address'], floating['floating_ip_address'], dev_name, data=floating) if rcode != 200 or body['status'] != 'SUCCEED': LOG.debug("SettingNat Error: invalid responce." " rcode=%d status=%s" % (rcode, body)) raise nwa_exc.AgentProxyException(value=None) else: LOG.debug("SettingNat SUCCEED") data_utils.set_floatingip_data(nwa_data, floating) return nwa_data
def _delete_general_dev(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') network_id = nwa_info['network']['id'] resource_group = nwa_info['resource_group_name'] # delete general dev logical_name = data_utils.get_vlan_logical_name(nwa_data, network_id) rcode, body = self.client.l2.delete_general_dev( nwa_tenant_id, resource_group, logical_name, ) if rcode != 200: LOG.debug("DeleteGeneralDev Error: invalid response. rcode = %d", rcode) # error port send to plugin raise nwa_exc.AgentProxyException(value=nwa_data) if body['status'] == 'SUCCEED': LOG.debug("DeleteGeneralDev SUCCEED") nwa_data = self._delete_general_dev_data(**kwargs) self._delete_general_dev_segment(context, nwa_data, nwa_info) else: LOG.debug("DeleteGeneralDev %s", body['status']) raise nwa_exc.AgentProxyException(value=nwa_data) # delete general dev end return nwa_data
def _delete_vlan(self, context, **kwargs): tenant_id = kwargs.get('tenant_id') nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') vlan_type = nwa_info['network']['vlan_type'] physical_network = nwa_info['physical_network'] network_id = nwa_info['network']['id'] # delete vlan rcode, body = self.client.l2.delete_vlan( nwa_tenant_id, data_utils.get_vlan_logical_name(nwa_data, network_id), vlan_type) if rcode == 200 and body['status'] == 'SUCCEED': LOG.debug("DeleteVlan SUCCEED.") data_utils.strip_network_data(nwa_data, network_id) data_utils.strip_vlan_data(nwa_data, network_id) self.nwa_l2_rpc.release_dynamic_segment_from_agent( context, physical_network, network_id) else: LOG.debug("DeleteVlan FAILED.") self.proxy_tenant.update_tenant_binding(context, tenant_id, nwa_tenant_id, nwa_data) raise nwa_exc.AgentProxyException(value=nwa_data) return nwa_data
def _setting_nat(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_data = kwargs.get('nwa_data') floating = kwargs.get('floating') # new code.(neet ut) nat_key = 'NAT_' + floating['id'] if nat_key in nwa_data: LOG.debug('already in use NAT key =%s', nat_key) raise nwa_exc.AgentProxyException(value=None) vlan_logical_name = data_utils.get_vlan_logical_name( nwa_data, floating['floating_network_id']) dev_name = data_utils.get_tfw_device_name(nwa_data, floating['device_id']) # setting nat rcode, body = self.client.l3.setting_nat( nwa_tenant_id, vlan_logical_name, 'PublicVLAN', floating['fixed_ip_address'], floating['floating_ip_address'], dev_name, data=floating ) if rcode != 200 or body['status'] != 'SUCCEED': LOG.debug("SettingNat Error: invalid responce." " rcode=%d status=%s" % (rcode, body)) raise nwa_exc.AgentProxyException(value=None) else: LOG.debug("SettingNat SUCCEED") data_utils.set_floatingip_data(nwa_data, floating) return nwa_data
def _update_tenant_fw_connect(self, context, **kwargs): nwa_data = kwargs.get('nwa_data') device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] rcode, body = self.client.l3.update_tenant_fw( kwargs['nwa_tenant_id'], data_utils.get_tfw_device_name(nwa_data, device_id), kwargs['nwa_info']['port']['ip'], data_utils.get_vlan_logical_name(nwa_data, network_id), kwargs['nwa_info']['network']['vlan_type'], connect='connect') if rcode != 200 or body['status'] != 'SUCCEED': raise nwa_exc.AgentProxyException(value=None) LOG.debug("UpdateTenantFW succeed.") resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] tfw_name = body['resultdata']['TenantFWName'] data_utils.set_tfw_interface_data(nwa_data, device_id, network_id, resource_group_name_nw, tfw_name, kwargs['nwa_info']) vlan_id = data_utils.get_vlan_id(network_id, nwa_data, body['resultdata']) data_utils.set_vp_net_data(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW, vlan_id) if self.tenant_fw_connect_hook: self.tenant_fw_connect_hook(context, tfw_name, **kwargs) return nwa_data
def _create_tenant_fw(self, nwa_data, context, **kwargs): device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] rcode, body = self.client.l3.create_tenant_fw( kwargs['nwa_tenant_id'], kwargs['nwa_info']['resource_group_name'], kwargs['nwa_info']['port']['ip'], data_utils.get_vlan_logical_name(nwa_data, network_id), kwargs['nwa_info']['network']['vlan_type'] ) if rcode != 200 or body['status'] != 'SUCCEED': return None LOG.debug("CreateTenantFW SUCCEED.") tfw_name = body['resultdata']['TenantFWName'] resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] data_utils.set_tfw_device_data(nwa_data, device_id, tfw_name, kwargs['nwa_info']) data_utils.set_tfw_interface_data(nwa_data, device_id, network_id, resource_group_name_nw, tfw_name, kwargs['nwa_info']) vlan_id = data_utils.get_vlan_id(network_id, nwa_data, body['resultdata']) data_utils.set_vp_net_data(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW, vlan_id) if self.tenant_fw_create_hook: self.tenant_fw_create_hook(context, tfw_name, **kwargs) return nwa_data
def _delete_general_dev(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') network_id = nwa_info['network']['id'] resource_group = nwa_info['resource_group_name'] # delete general dev logical_name = data_utils.get_vlan_logical_name(nwa_data, network_id) rcode, body = self.client.l2.delete_general_dev( nwa_tenant_id, resource_group, logical_name, ) if rcode != 200: LOG.debug("DeleteGeneralDev Error: invalid response. rcode = %d", rcode) # error port send to plugin raise nwa_exc.AgentProxyException(value=nwa_data) if body['status'] == 'SUCCEED': LOG.debug("DeleteGeneralDev SUCCEED") nwa_data = self._delete_general_dev_data(**kwargs) else: LOG.debug("DeleteGeneralDev %s", body['status']) raise nwa_exc.AgentProxyException(value=nwa_data) # delete general dev end return nwa_data
def delete_connect_port(self, context, **kwargs): nwa_info = kwargs['nwa_info'] nwa_data = kwargs['nwa_data'] network_id = nwa_info['network']['id'] vlan_id = nwa_info['network']['vlan_id'] resource_group_name = nwa_info['resource_group_name'] rcode, body = self.client.l2.delete_connect_port( kwargs['nwa_tenant_id'], resource_group_name, data_utils.get_vlan_logical_name(nwa_data, network_id), nwa_info['network']['vlan_type'], vlan_id ) if rcode == 200 and body['status'] == 'SUCCEED': LOG.debug("DeleteConnectPort SUCCEED") return body
def _update_tenant_fw_disconnect(self, context, **kwargs): """Update Tenant FW @param context: contains user information. @param kwargs: @return: nwa_data @raise AgentProxyException """ if self.multi_dc: self.proxy_l2.delete_connect_port(context, **kwargs) nwa_data = kwargs.get('nwa_data') device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] device_name = data_utils.get_tfw_device_name(nwa_data, device_id) if self.tenant_fw_disconnect_hook: self.tenant_fw_disconnect_hook(context, device_name, **kwargs) rcode, body = self.client.l3.update_tenant_fw( kwargs['nwa_tenant_id'], device_name, kwargs['nwa_info']['port']['ip'], data_utils.get_vlan_logical_name(nwa_data, network_id), kwargs['nwa_info']['network']['vlan_type'], connect='disconnect') if rcode != 200 or body['status'] != 'SUCCEED': LOG.error(_LE("UpdateTenantFW(disconnect) FAILED.")) info = { 'status': 'FAILED', 'msg': 'UpdateTenantFW(disconnect) FAILED.' } raise nwa_exc.AgentProxyException(value=info) LOG.debug("UpdateTenantFW(disconnect) SUCCEED.") resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] data_utils.strip_interface_data(nwa_data, device_id, network_id, resource_group_name_nw) data_utils.strip_tfw_data_if_exist(nwa_data, device_id, network_id, resource_group_name_nw) if not l2.check_segment_tfw(network_id, resource_group_name_nw, nwa_data): data_utils.strip_vp_net_data(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW) return nwa_data
def _update_tenant_fw_disconnect(self, context, **kwargs): """Update Tenant FW @param context: contains user information. @param kwargs: @return: nwa_data @raise AgentProxyException """ if self.multi_dc: self.proxy_l2.delete_connect_port(context, **kwargs) nwa_data = kwargs.get('nwa_data') device_id = kwargs['nwa_info']['device']['id'] network_id = kwargs['nwa_info']['network']['id'] device_name = data_utils.get_tfw_device_name(nwa_data, device_id) if self.tenant_fw_disconnect_hook: self.tenant_fw_disconnect_hook(context, device_name, **kwargs) rcode, body = self.client.l3.update_tenant_fw( kwargs['nwa_tenant_id'], device_name, kwargs['nwa_info']['port']['ip'], data_utils.get_vlan_logical_name(nwa_data, network_id), kwargs['nwa_info']['network']['vlan_type'], connect='disconnect' ) if rcode != 200 or body['status'] != 'SUCCEED': LOG.error(_LE("UpdateTenantFW(disconnect) FAILED.")) info = {'status': 'FAILED', 'msg': 'UpdateTenantFW(disconnect) FAILED.'} raise nwa_exc.AgentProxyException(value=info) LOG.debug("UpdateTenantFW(disconnect) SUCCEED.") resource_group_name_nw = kwargs['nwa_info']['resource_group_name_nw'] data_utils.strip_interface_data(nwa_data, device_id, network_id, resource_group_name_nw) data_utils.strip_tfw_data_if_exist(nwa_data, device_id, network_id, resource_group_name_nw) if not l2.check_segment_tfw(network_id, resource_group_name_nw, nwa_data): data_utils.strip_vp_net_data(nwa_data, network_id, resource_group_name_nw, nwa_const.NWA_DEVICE_TFW) return nwa_data
def _create_general_dev(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') network_id = nwa_info['network']['id'] resource_group_name = nwa_info['resource_group_name'] port_type = None rcode, body = self.client.l2.create_general_dev( nwa_tenant_id, resource_group_name, data_utils.get_vlan_logical_name(nwa_data, network_id), port_type=port_type ) if rcode == 200 and body['status'] == 'SUCCEED': LOG.debug("CreateGeneralDev SUCCEED") vlan_key = data_utils.get_vlan_key(network_id) if vlan_key not in nwa_data: LOG.error(_LE("not create vlan.")) raise nwa_exc.AgentProxyException(value=nwa_data) vlan_id = data_utils.get_vlan_id(network_id, nwa_data, body['resultdata']) data_utils.set_vp_net_data(nwa_data, network_id, resource_group_name, nwa_const.NWA_DEVICE_GDV, vlan_id) self._append_device_for_gdv(nwa_info, nwa_data) else: LOG.debug("CreateGeneralDev %s", body['status']) raise nwa_exc.AgentProxyException(value=nwa_data) return nwa_data
def _delete_vlan(self, context, **kwargs): tenant_id = kwargs.get('tenant_id') nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') vlan_type = nwa_info['network']['vlan_type'] physical_network = nwa_info['physical_network'] network_id = nwa_info['network']['id'] # delete vlan rcode, body = self.client.l2.delete_vlan( nwa_tenant_id, data_utils.get_vlan_logical_name(nwa_data, network_id), vlan_type ) if rcode == 200 and body['status'] == 'SUCCEED': LOG.debug("DeleteVlan SUCCEED.") data_utils.strip_network_data(nwa_data, network_id) data_utils.strip_vlan_data(nwa_data, network_id) self.nwa_l2_rpc.release_dynamic_segment_from_agent( context, physical_network, network_id ) else: LOG.debug("DeleteVlan FAILED.") self.proxy_tenant.update_tenant_binding( context, tenant_id, nwa_tenant_id, nwa_data ) raise nwa_exc.AgentProxyException(value=nwa_data) return nwa_data
def _create_general_dev(self, context, **kwargs): nwa_tenant_id = kwargs.get('nwa_tenant_id') nwa_info = kwargs.get('nwa_info') nwa_data = kwargs.get('nwa_data') network_id = nwa_info['network']['id'] resource_group_name = nwa_info['resource_group_name'] port_type = None rcode, body = self.client.l2.create_general_dev( nwa_tenant_id, resource_group_name, data_utils.get_vlan_logical_name(nwa_data, network_id), port_type=port_type) if rcode == 200 and body['status'] == 'SUCCEED': LOG.debug("CreateGeneralDev SUCCEED") vlan_key = data_utils.get_vlan_key(network_id) if vlan_key not in nwa_data: LOG.error(_LE("not create vlan.")) raise nwa_exc.AgentProxyException(value=nwa_data) vlan_id = data_utils.get_vlan_id(network_id, nwa_data, body['resultdata']) data_utils.set_vp_net_data(nwa_data, network_id, resource_group_name, nwa_const.NWA_DEVICE_GDV, vlan_id) self._append_device_for_gdv(nwa_info, nwa_data) else: LOG.debug("CreateGeneralDev %s", body['status']) raise nwa_exc.AgentProxyException(value=nwa_data) return nwa_data