Example #1
0
    def get_defaults(self, context, resources, project_id=None):
        """Given a list of resources, retrieve the default quotas.

        Use the class quotas named `_DEFAULT_QUOTA_NAME` as default quotas,
        if it exists.

        :param context: The request context, for access checks.
        :param resources: A dictionary of the registered resources.
        :param project_id: The id of the current project
        """

        quotas = {}
        default_quotas = {}
        if CONF.use_default_quota_class:
            default_quotas = db.quota_class_get_defaults(context)

        for resource in resources.values():
            if default_quotas:
                if resource.name not in default_quotas:
                    versionutils.report_deprecated_feature(
                        LOG,
                        _("Default quota for resource: %(res)s is set "
                          "by the default quota flag: quota_%(res)s, "
                          "it is now deprecated. Please use the "
                          "default quota class for default "
                          "quota.") % {'res': resource.name})
            quotas[resource.name] = default_quotas.get(resource.name,
                                                       resource.default)
        return quotas
Example #2
0
    def get_class_quotas(self, context, resources, quota_class, defaults=True):
        """Given list of resources, retrieve the quotas for given quota class.

        :param context: The request context, for access checks.
        :param resources: A dictionary of the registered resources.
        :param quota_class: The name of the quota class to return
                            quotas for.
        :param defaults: If True, the default value will be reported
                         if there is no specific value for the
                         resource.
        """

        quotas = {}
        default_quotas = {}
        class_quotas = db.quota_class_get_all_by_name(context, quota_class)
        if defaults:
            default_quotas = db.quota_class_get_defaults(context)
        for resource in resources.values():
            if resource.name in class_quotas:
                quotas[resource.name] = class_quotas[resource.name]
                continue

            if defaults:
                quotas[resource.name] = default_quotas.get(
                    resource.name, resource.default)

        return quotas
Example #3
0
 def get_default(self, context, resource, project_id):
     """Get a specific default quota for a resource."""
     default_quotas = db.quota_class_get_defaults(context)
     return default_quotas.get(resource.name, resource.default)