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

1# API reference: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/resource-quota-v1/ 

2 

3from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource 

4 

5 

6class ResourceQuota(NamespacedResource): 

7 api_version = NamespacedResource.ApiVersion.V1 

8 

9 def __init__( 

10 self, 

11 hard=None, 

12 scope_selector=None, 

13 scopes=None, 

14 **kwargs, 

15 ): 

16 """ 

17 Create ResourceQuota object. 

18 

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 

31 

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") 

37 

38 spec = self.res.setdefault("spec", {}) 

39 spec["hard"] = self.hard 

40 

41 if self.scope_selector: 

42 spec["scopeSelector"] = self.scope_selector 

43 

44 if self.scopes: 

45 spec["scopes"] = self.scopes