def _get_ent_permissions(self, vlan_id): req_params = {'vlan_id': vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) permissions = self.restproxy.get(nuage_ent_perm.get_resource_by_vlan(), required=True) return permissions[0] if permissions else None
def add_ent_perm(self, tenant_id, vlan_id, netpart_id): req_params = {'vlan_id': vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) data = nuage_ent_perm.perm_update(netpart_id) data.update({'externalID': netpart_id + '@openstack'}) self.restproxy.post( nuage_ent_perm.get_resource_by_vlan(), data, on_res_exists=self.restproxy.retrieve_by_external_id, ignore_err_codes=[restproxy.REST_ENT_PERMS_EXISTS_ERR_CODE])[0]
def _get_ent_permissions(self, vlan_id): req_params = {'vlan_id': vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) response = self.restproxy.rest_call( 'GET', nuage_ent_perm.get_resource_by_vlan(), '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg) return nuage_ent_perm.get_response_obj(response)
def remove_ent_perm(self, vlan_id): req_params = {'vlan_id': vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) permissions = self.restproxy.get(nuage_ent_perm.get_resource_by_vlan(), required=True) ent_perm = permissions[0] if permissions else None if ent_perm: req_params['perm_id'] = ent_perm['ID'] self.restproxy.delete(nuage_ent_perm.get_resource_by_id() + '?responseChoice=1')
def get_ent_permission_on_port(restproxy_serv, gw_port_id, redundancy=False): req_params = { 'port_id': gw_port_id } nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) response = restproxy_serv.rest_call('GET', nuage_ent_perm.get_resource_by_port( redundancy), '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg) return nuage_ent_perm.get_response_obj(response)
def remove_ent_perm(self, vlan_id): req_params = {'vlan_id': vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) response = self.restproxy.rest_call( 'GET', nuage_ent_perm.get_resource_by_vlan(), '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg) ent_perm = nuage_ent_perm.get_response_obj(response) if ent_perm: req_params['perm_id'] = nuage_ent_perm.get_response_objid(response) response = self.restproxy.rest_call( 'DELETE', nuage_ent_perm.get_resource_by_id() + '?responseChoice=1', '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg)
def _check_parent_permissions(self, tenant_id, vlan_id, netpart_id): req_params = {'vlan_id': vlan_id} nuage_vlan = nuagelib.NuageVlan(create_params=req_params) response = self.restproxy.rest_call('GET', nuage_vlan.get_resource(), '') if not nuage_vlan.get_validate(response): raise restproxy.RESTProxyError(nuage_vlan.error_msg) # Get ent permissions on port gw_port_id = nuage_vlan.get_response_parentid(response) gw_port = gw_helper.get_gateway_port(self.restproxy, gw_port_id) gw = gw_helper.get_gateway(self.restproxy, gw_port['parentID']) req_params['port_id'] = gw_port_id nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) response = self.restproxy.rest_call( 'GET', nuage_ent_perm.get_resource_by_port(gw['redundant']), '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg) ent_perm = nuage_ent_perm.get_response_obj(response) if ent_perm: ent_id = nuage_ent_perm.get_permitted_entity_id(response) if ent_id != netpart_id: ent_type = nuage_ent_perm.get_permitted_entity_type(response) LOG.debug( "Port %(port)s already assigned to %(ent)s with id" " %(ent_id)s", { 'port': vlan_id, 'ent': ent_type, 'ent_id': ent_id }) return False else: LOG.debug("Port %(port)s is assigned to enterprise %(ent)s", { 'port': gw_port_id, 'ent': ent_id }) return True # Get ent permissions on gateway gw_port = gw_helper.get_gateway_port(self.restproxy, gw_port_id) if not gw_port: msg = (_("Port %s not found on gateway ", gw_port_id)) # noqa H702 raise restproxy.RESTProxyError(msg) gw_id = gw_port['parentID'] req_params['gw_id'] = gw_id nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) response = self.restproxy.rest_call( 'GET', nuage_ent_perm.get_resource_by_gw(), '') if not nuage_ent_perm.validate(response): raise restproxy.RESTProxyError(nuage_ent_perm.error_msg) ent_perm = nuage_ent_perm.get_response_obj(response) if ent_perm: ent_id = nuage_ent_perm.get_permitted_entity_id(response) if ent_id != netpart_id: ent_type = nuage_ent_perm.get_permitted_entity_type(response) LOG.debug( "Gateway %(gw)s already assigned to %(ent)s with " "id %(ent_id)s", { 'gw': gw_id, 'ent': ent_type, 'ent_id': ent_id }) return False else: LOG.debug("Gateway %(gw)s is assigned to enterprise %(ent)s", { 'gw': gw_id, 'ent': ent_id }) return True
def _check_parent_permissions(self, tenant_id, vlan_id, netpart_id): req_params = {'vlan_id': vlan_id} nuage_vlan = nuagelib.NuageVlan(create_params=req_params) vlans = self.restproxy.get(nuage_vlan.get_resource(), required=True) # Get ent permissions on port gw_port_id = vlans[0]['parentID'] gw_port = gw_helper.get_gateway_port(self.restproxy, gw_port_id) gw = gw_helper.get_gateway(self.restproxy, gw_port['parentID']) req_params['port_id'] = gw_port_id nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) permissions = self.restproxy.get(nuage_ent_perm.get_resource_by_port( gw['redundant']), required=True) ent_perm = permissions[0] if permissions else None if ent_perm: ent_id = ent_perm['permittedEntityID'] if ent_id != netpart_id: ent_type = ent_perm['permittedEntityType'] LOG.debug( "Port %(port)s already assigned to %(ent)s with id" " %(ent_id)s", { 'port': vlan_id, 'ent': ent_type, 'ent_id': ent_id }) return False else: LOG.debug("Port %(port)s is assigned to enterprise %(ent)s", { 'port': gw_port_id, 'ent': ent_id }) return True # Get ent permissions on gateway gw_port = gw_helper.get_gateway_port(self.restproxy, gw_port_id, gw_port['parentID']) if not gw_port: msg = (_("Port %s not found on gateway ", gw_port_id)) # noqa H702 raise restproxy.ResourceNotFoundException(msg) gw_id = gw_port['parentID'] req_params['gw_id'] = gw_id nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) permissions = self.restproxy.get(nuage_ent_perm.get_resource_by_gw(), required=True) ent_perm = permissions[0] if permissions else None if ent_perm: ent_id = ent_perm['permittedEntityID'] if ent_id != netpart_id: ent_type = ent_perm['permittedEntityType'] LOG.debug( "Gateway %(gw)s already assigned to %(ent)s with " "id %(ent_id)s", { 'gw': gw_id, 'ent': ent_type, 'ent_id': ent_id }) return False else: LOG.debug("Gateway %(gw)s is assigned to enterprise %(ent)s", { 'gw': gw_id, 'ent': ent_id }) return True return False
def get_ent_permission_on_vlan(restproxy_serv, gw_vlan_id): req_params = {'vlan_id': gw_vlan_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) ent_permissions = restproxy_serv.get(nuage_ent_perm.get_resource_by_vlan(), required=True) return ent_permissions[0] if ent_permissions else None
def get_ent_permission_on_port(restproxy_serv, gw_port_id, redundancy=False): req_params = {'port_id': gw_port_id} nuage_ent_perm = nuagelib.NuageEntPermission(create_params=req_params) ent_permissions = restproxy_serv.get( nuage_ent_perm.get_resource_by_port(redundancy), required=True) return ent_permissions[0] if ent_permissions else None