def delete_tenant_quota(context, tenant_id): try: cfgdb = ContrailPlugin._get_user_cfgdb(context) proj_id = str(uuid.UUID(tenant_id)) proj_obj = cfgdb._project_read(proj_id) quota = proj_obj.get_quota() except Exception as e: cgitb.Hook(format="text").handle(sys.exc_info()) raise e for k, v in quota.__dict__.items(): if k != 'defaults': quota.__dict__[k] = quota.defaults proj_obj.set_quota(quota) cfgdb._vnc_lib.project_update(proj_obj)
def delete_tenant_quota(context, tenant_id): try: cfgdb = ContrailPlugin._get_user_cfgdb(context) proj_id = str(uuid.UUID(tenant_id)) proj_obj = cfgdb._project_read(proj_id) quota = proj_obj.get_quota() except Exception as e: cgitb.Hook(format="text").handle(sys.exc_info()) raise e for k,v in quota.__dict__.items(): if k != 'defaults': quota.__dict__[k] = quota.defaults proj_obj.set_quota(quota) cfgdb._vnc_lib.project_update(proj_obj)
def update_quota_limit(context, tenant_id, resource, limit): try: cfgdb = ContrailPlugin._get_user_cfgdb(context) proj_id = str(uuid.UUID(tenant_id)) proj_obj = cfgdb._project_read(proj_id) quota = proj_obj.get_quota() except Exception as e: cgitb.Hook(format="text").handle(sys.exc_info()) raise e qn2c = QuotaDriver.quota_neutron_to_contrail_type if resource in qn2c.keys(): quota_method = 'set_' + qn2c[resource] set_quota = getattr(quota, quota_method) set_quota(limit) proj_obj.set_quota(quota) cfgdb._vnc_lib.project_update(proj_obj)
def get_tenant_quotas(context, resources, tenant_id): try: cfgdb = ContrailPlugin._get_user_cfgdb(context) proj_id = str(uuid.UUID(context.tenant)) proj_obj = cfgdb._project_read(proj_id) quota = proj_obj.get_quota() except Exception as e: cgitb.Hook(format="text").handle(sys.exc_info()) raise e qn2c = QuotaDriver.quota_neutron_to_contrail_type quotas = {} sub_resources = dict((k, v) for k, v in resources.items()) for resource in sub_resources.values(): if resource.name in qn2c.keys(): quotas[resource.name] = quota.__dict__[qn2c[resource.name]] or quota.get_defaults() else: quotas[resource.name] = resource.default return quotas
def get_tenant_quotas(context, resources, tenant_id): try: cfgdb = ContrailPlugin._get_user_cfgdb(context) proj_id = str(uuid.UUID(context.tenant)) proj_obj = cfgdb._project_read(proj_id) quota = proj_obj.get_quota() except Exception as e: cgitb.Hook(format="text").handle(sys.exc_info()) raise e qn2c = QuotaDriver.quota_neutron_to_contrail_type quotas = {} sub_resources = dict((k, v) for k, v in resources.items()) for resource in sub_resources.values(): if resource.name in qn2c.keys(): quotas[resource.name] = quota.__dict__[qn2c[ resource.name]] or quota.get_defaults() else: quotas[resource.name] = resource.default return quotas