Coverage for ocp_resources/resource_quota.py: 0%
19 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
1# API reference: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/resource-quota-v1/
3from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
6class ResourceQuota(NamespacedResource):
7 api_version = NamespacedResource.ApiVersion.V1
9 def __init__(
10 self,
11 hard=None,
12 scope_selector=None,
13 scopes=None,
14 **kwargs,
15 ):
16 """
17 Create ResourceQuota object.
19 Args:
20 hard (dict): set of desired hard limits
21 example: {"requests.cpu": "500m", "limits.cpu": 2}
22 scope_selector (dict, optional): collection of filters
23 example: {"matchExpressions": [{"operator": "In", "scopeName": "PriorityClass", "values": ["low"]}]}
24 scopes (list, optional): collection of filters
25 example: ["Terminating", "PriorityClass"]
26 """
27 super().__init__(**kwargs)
28 self.hard = hard
29 self.scope_selector = scope_selector
30 self.scopes = scopes
32 def to_dict(self) -> None:
33 super().to_dict()
34 if not self.kind_dict and not self.yaml_file:
35 if not self.hard:
36 raise MissingRequiredArgumentError(argument="hard")
38 spec = self.res.setdefault("spec", {})
39 spec["hard"] = self.hard
41 if self.scope_selector:
42 spec["scopeSelector"] = self.scope_selector
44 if self.scopes:
45 spec["scopes"] = self.scopes