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
Beispiel #9
0
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
Beispiel #10
0
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