示例#1
0
文件: portalias.py 项目: j05h/akanda
                                                     )

    def create(self, context, tenant_id, body):
        if body.get('port') == 0:
            # FIXME(dhellmann): This will apply if the user creates
            # any of their own aliases with a zero port.
            raise exceptions.PolicyNotAuthorized(
                action='creation of wildcard port aliases'
                )
        return super(PortaliasResource, self).create(context,
                                                     tenant_id,
                                                     body
                                                     )


_authzbase.register_quota('portalias', 'quota_portalias')


class Portalias(object):
    """
    """
    def get_name(self):
        return "portalias"

    def get_alias(self):
        return "dhportalias"

    def get_description(self):
        return "A portalias extension"

    def get_namespace(self):
示例#2
0
                'tenant_id': addressentry['tenant_id'],
                'cidr': addressentry['cidr']}

    def make_dict(self, addressgroup):
        """
        Convert a address model object to a dictionary.
        """
        res = {'id': addressgroup['id'],
               'name': addressgroup['name'],
               'tenant_id': addressgroup['tenant_id'],
               'entries': [self.make_entry_dict(e)
                           for e in addressgroup['entries']]}
        return res


_authzbase.register_quota('addressgroup', 'quota_addressgroup')


class Addressgroup(object):
    """
    """
    def get_name(self):
        return "addressgroup"

    def get_alias(self):
        return "dhaddressgroup"

    def get_description(self):
        return "An addressgroup extension"

    def get_namespace(self):
示例#3
0
    def make_dict(self, portalias):
        """
        Convert a portalias model object to a dictionary.
        """
        res = {
            "id": portalias["id"],
            "name": portalias["name"],
            "protocol": portalias["protocol"],
            "port": portalias["port"],
            "tenant_id": portalias["tenant_id"],
        }
        return res


_authzbase.register_quota("portalias", "quota_portalias")


class Portalias(object):
    """
    """

    def get_name(self):
        return "portalias"

    def get_alias(self):
        return "dhportalias"

    def get_description(self):
        return "A portalias extension"
示例#4
0
                item['private_port'] = item['public_port']
            context.session.add(item)
        return self.make_dict(item)

    def update(self, context, resource, resource_dict):
        with context.session.begin(subtransactions=True):
            resource.update(resource_dict)
            # FIXME(dhellmann): This variable is undefined
            # but I don't know what it should have been.
            if not resource['private_port']:
                resource['private_port'] = resource['public_port']
            context.session.add(resource)
        return self.make_dict(resource)


_authzbase.register_quota('portforward', 'quota_portforward')


class Portforward(object):
    """
    """
    def get_name(self):
        return "portforward"

    def get_alias(self):
        return "dhportforward"

    def get_description(self):
        return "A port forwarding extension"

    def get_namespace(self):
示例#5
0
            qry = context.session.query(models_v2.AddressGroup)
            qry = qry.filter_by(tenant_id=tenant_id, id=body.get('group_id'))

            try:
                group = qry.one()
            except exc.NoResultFound:
                msg = ("Tenant %(tenant_id) does not have an address "
                       "group with id %(group_id)s" %
                       {'tenant_id': tenant_id, 'group_id': group_id})
                raise q_exc.BadRequest(resource='addressentry', msg=msg)
            item = self.model(**body)
            context.session.add(item)
        return self.make_dict(item)


_authzbase.register_quota('addressentry', 'quota_addressentry')


class Addressentry(object):
    """
    """
    def get_name(self):
        return "addressentry"

    def get_alias(self):
        return "dhaddressentry"

    def get_description(self):
        return "An addressentry extension"

    def get_namespace(self):
示例#6
0
            return True

        qry = context.session.query(models_v2.AddressGroup)
        qry = qry.filter_by(tenant_id=tenant_id, id=addressgroup_id)

        try:
            qry.one()
        except exc.NoResultFound:
            msg = ("Tenant %(tenant_id)s does not have an address "
                   "group with id %(group_id)s" %
                   {'tenant_id': tenant_id, 'group_id': addressgroup_id})
            raise q_exc.BadRequest(resource='filterrule', msg=msg)

        return True

_authzbase.register_quota('filterrule', 'quota_filterrule')


class Filterrule(object):
    """
    """
    def get_name(self):
        return "filterrule"

    def get_alias(self):
        return "dhfilterrule"

    def get_description(self):
        return "A filter rule extension"

    def get_namespace(self):
示例#7
0
        qry = context.session.query(models_v2.AddressGroup)
        qry = qry.filter_by(tenant_id=tenant_id, id=addressgroup_id)

        try:
            qry.one()
        except exc.NoResultFound:
            msg = "Tenant %(tenant_id)s does not have an address " "group with id %(group_id)s" % {
                "tenant_id": tenant_id,
                "group_id": addressgroup_id,
            }
            raise q_exc.BadRequest(resource="filterrule", msg=msg)

        return True


_authzbase.register_quota("filterrule", "quota_filterrule")


class Filterrule(object):
    """
    """

    def get_name(self):
        return "filterrule"

    def get_alias(self):
        return "dhfilterrule"

    def get_description(self):
        return "A filter rule extension"
示例#8
0
        if body.get("name", "").lower() == "any":
            raise exceptions.PolicyNotAuthorized(action="creation of wildcard address groups")
        return super(AddressGroupResource, self).create(context, tenant_id, body)

    def update(self, context, resource, resource_dict):
        if resource.name == "Any":
            raise exceptions.PolicyNotAuthorized(action="modification of system address groups")
        return super(AddressGroupResource, self).update(context, resource, resource_dict)

    def before_delete(self, resource):
        if resource.name == "Any":
            raise exceptions.PolicyNotAuthorized(action="modification of system address groups")
        return super(AddressGroupResource, self).before_delete(resource)


_authzbase.register_quota("addressgroup", "quota_addressgroup")


class Addressgroup(object):
    """
    """

    def get_name(self):
        return "addressgroup"

    def get_alias(self):
        return "dhaddressgroup"

    def get_description(self):
        return "An addressgroup extension"