def get_nuage_gateway_vlans(self, context, filters=None, fields=None): if not filters: # No gateway or gatewayport specified by user if context.is_admin: msg = (_('--gatewayport or --gateway and --gatewayport option ' 'is required')) raise nuage_exc.NuageBadRequest(msg=msg) fetch_tenant = context.tenant_id else: if context.is_admin: if 'gateway' in filters and 'gatewayport' not in filters: msg = (_('--gateway and --gatewayport option ' 'should be provided')) raise nuage_exc.NuageBadRequest(msg=msg) else: if 'gateway' in filters or 'gatewayport' in filters: msg = (_('--gateway or --gatewayport option not ' 'supported')) raise nuage_exc.NuageBadRequest(msg=msg) user_tenant = filters.get('tenant') fetch_tenant = self._check_for_permissions(context, user_tenant) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.get_gateway_port_vlans(fetch_tenant, netpart['id'], filters=filters) if resp: return [self._make_vlan_dict( vlan, fields=fields, context=context) for vlan in resp] else: return []
def delete_gw_host_vport(self, context, port, subnet_mapping): port_params = { 'neutron_port_id': port['id'] } # Check if l2domain/subnet exist. In case of router_interface_delete, # subnet is deleted and then call comes to delete_port. In that # case, we just return vsd_subnet = self.nuageclient.get_subnet_or_domain_subnet_by_id( subnet_mapping['nuage_subnet_id']) if not vsd_subnet: return if subnet_mapping['nuage_managed_subnet']: port_params['l2dom_id'] = subnet_mapping['nuage_subnet_id'] port_params['l3dom_id'] = subnet_mapping['nuage_subnet_id'] else: if subnet_mapping['nuage_l2dom_tmplt_id']: port_params['l2dom_id'] = subnet_mapping['nuage_subnet_id'] else: port_params['l3dom_id'] = subnet_mapping['nuage_subnet_id'] nuage_vport = self.nuageclient.get_nuage_vport_by_neutron_id( port_params, required=False) if nuage_vport and (nuage_vport['type'] == constants.HOST_VPORT): def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) self.nuageclient.delete_nuage_gateway_vport( context.tenant_id, nuage_vport.get('ID'), netpart['id'])
def create_nuage_gateway_vlan(self, context, nuage_gateway_vlan): vlan = nuage_gateway_vlan['nuage_gateway_vlan'] def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.create_gateway_port_vlan(context.tenant_id, vlan, netpart['id']) return self._make_vlan_dict(resp, context=context)
def update_nuage_gateway_vlan(self, context, id, nuage_gateway_vlan): vlan = nuage_gateway_vlan['nuage_gateway_vlan'] def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) params = {'vlan': vlan, 'np_id': netpart['id']} resp = self.vsdclient.update_gateway_port_vlan(context.tenant_id, id, params) return self._make_vlan_dict(resp, context=context)
def update_nuage_gateway_vlan(self, context, id, nuage_gateway_vlan): vlan = nuage_gateway_vlan['nuage_gateway_vlan'] def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) params = { 'vlan': vlan, 'np_id': netpart['id'] } resp = self.nuageclient.update_gateway_port_vlan(context.tenant_id, id, params) return self._make_vlan_dict(resp, context=context)
def get_nuage_gateway_vport(self, context, id, fields=None): fetch_tenant = self._check_for_permissions(context, None) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.get_gateway_vport(fetch_tenant, netpart['id'], id) if resp: return self._make_vport_dict(resp, fields=fields, context=context) else: raise nuage_exc.NuageNotFound(resource='nuage_vport', resource_id=id)
def get_nuage_gateway_vports(self, context, filters=None, fields=None): user_tenant = filters.get('tenant') fetch_tenant = self._check_for_permissions(context, user_tenant) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.get_gateway_vports(fetch_tenant, netpart['id'], filters) if resp: return [self._make_vport_dict(vport, fields=fields, context=context) for vport in resp] else: return []
def get_nuage_gateway_vport(self, context, id, fields=None): fetch_tenant = self._check_for_permissions(context, None) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.get_gateway_vport(fetch_tenant, netpart['id'], id) if resp: if not resp.get('subnet_id'): subnet_mapping = nuagedb.get_subnet_l2dom_by_nuage_id( context.session, resp['nuage_subnet_id']) resp['subnet_id'] = subnet_mapping['subnet_id'] return self._make_vport_dict(resp, fields=fields, context=context) else: raise nuage_exc.NuageNotFound(resource='nuage_vport', resource_id=id)
def get_nuage_gateway_vport(self, context, id, fields=None): fetch_tenant = self._check_for_permissions(context, None) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.vsdclient.get_gateway_vport(context, fetch_tenant, netpart['id'], id) if not resp: raise nuage_exc.NuageNotFound(resource='nuage_vport', resource_id=id) if not resp.get('subnet_id'): nuage_subnet_id = resp['nuage_subnet_id'] subnet_info = nuagedb.get_subnet_info_by_nuage_id( context.session, nuage_subnet_id) if subnet_info: if 'subnet_id' in subnet_info: resp['subnet_id'] = subnet_info['subnet_id'] LOG.debug('get_nuage_gateway_vport: subnet_id ' 'could be retrieved via subnet_info') elif resp.get('port_id'): subnet_mapping = nuagedb.\ get_subnet_l2dom_by_nuage_id_and_port( context.session, nuage_subnet_id, resp['vport_id']) if subnet_mapping: resp['subnet_id'] = subnet_mapping['subnet_id'] LOG.debug('get_nuage_gateway_vport: subnet_id ' 'could be retrieved via port') else: LOG.debug('get_nuage_gateway_vport: subnet_id ' 'could not be retrieved via port') else: LOG.debug('get_nuage_gateway_vport: subnet_id could ' 'not be retrieved') else: LOG.debug('get_nuage_gateway_vport: subnet_id could not ' 'be retrieved as no subnet_info is present for ' 'nuage_subnet_id={}'.format(nuage_subnet_id)) else: LOG.debug('get_nuage_gateway_vport: subnet_id already ' 'contained') return self._make_vport_dict(resp, fields=fields, context=context)
def create_nuage_gateway_vport(self, context, nuage_gateway_vport): vport = nuage_gateway_vport['nuage_gateway_vport'] subnet_id = vport.get('subnet') port_id = vport.get('port') def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) params = { 'gatewayinterface': vport['gatewayvlan'], 'np_id': netpart['id'], 'tenant': vport.get('tenant') } if subnet_id: params['subnet'] = self.get_subnet(context, subnet_id) if port_id: p = self.get_port(context, port_id) if p.get('fixed_ips'): subnet_id = p['fixed_ips'][0]['subnet_id'] subnet = self.get_subnet(context, subnet_id) params['enable_dhcp'] = subnet.get('enable_dhcp') params['port'] = p resp = self.nuageclient.create_gateway_vport(context.tenant_id, params) if port_id: port = params['port'] if resp['vport_gw_type'] == constants.SOFTWARE: self._delete_port_security_group_bindings(context, port['id']) self._process_port_create_security_group( context, port, port[ext_sg.SECURITYGROUPS] ) LOG.debug("Created security group for port %s", port['id']) self._check_floatingip_update(context, port, vport_type=constants.HOST_VPORT, vport_id=resp['vport_id']) return self._make_vport_dict(resp, context=context)
def get_nuage_gateway_vlans(self, context, filters=None, fields=None): if not filters: # No gateway or gatewayport specified by user if context.is_admin: msg = (_('--gatewayport or --gateway and --gatewayport option ' 'is required')) raise nuage_exc.NuageBadRequest(msg=msg) fetch_tenant = context.tenant_id else: if context.is_admin: if 'gateway' in filters and 'gatewayport' not in filters: msg = (_('--gateway and --gatewayport option ' 'should be provided')) raise nuage_exc.NuageBadRequest(msg=msg) else: if 'gateway' in filters or 'gatewayport' in filters: msg = (_('--gateway or --gatewayport option not ' 'supported')) raise nuage_exc.NuageBadRequest(msg=msg) user_tenant = filters.get('tenant') fetch_tenant = self._check_for_permissions(context, user_tenant) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) resp = self.nuageclient.get_gateway_port_vlans(fetch_tenant, netpart['id'], filters=filters) if resp: return [ self._make_vlan_dict(vlan, fields=fields, context=context) for vlan in resp ] else: return []
def get_nuage_gateway_vports(self, context, filters=None, fields=None): user_tenant = filters.get('tenant') fetch_tenant = self._check_for_permissions(context, user_tenant) def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) subnet_id = filters['subnet'][0] subnet_mapping = nuagedb.get_subnet_l2dom_by_id(context.session, subnet_id) if subnet_mapping: filters['nuage_subnet_id'] = [subnet_mapping['nuage_subnet_id']] else: msg = 'No neutron subnet to nuage subnet mapping found' raise nuage_exc.NuageBadRequest(msg=msg) resp = self.nuageclient.get_gateway_vports(fetch_tenant, netpart['id'], filters) if resp: return [self._make_vport_dict(vport, fields=fields, context=context) for vport in resp] else: return []
def delete_nuage_gateway_vport(self, context, id): def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) self.nuageclient.delete_nuage_gateway_vport(context.tenant_id, id, netpart['id'])
def delete_nuage_gateway_vlan(self, context, id): def_netpart = cfg.CONF.RESTPROXY.default_net_partition_name netpart = nuagedb.get_default_net_partition(context, def_netpart) self.nuageclient.delete_gateway_port_vlan(id, netpart['id'])