Coverage for ocp_resources/role.py: 0%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-30 10:48 +0200

1# -*- coding: utf-8 -*- 

2# API reference: 

3# https://docs.openshift.com/container-platform/4.11/rest_api/rbac_apis/role-rbac-authorization-k8s-io-v1.html 

4from ocp_resources.utils.constants import TIMEOUT_4MINUTES 

5from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource 

6 

7 

8class Role(NamespacedResource): 

9 """ 

10 Role object. 

11 """ 

12 

13 api_group = NamespacedResource.ApiGroup.RBAC_AUTHORIZATION_K8S_IO 

14 

15 def __init__( 

16 self, 

17 name=None, 

18 namespace=None, 

19 client=None, 

20 rules=None, 

21 teardown=True, 

22 yaml_file=None, 

23 delete_timeout=TIMEOUT_4MINUTES, 

24 **kwargs, 

25 ): 

26 """ 

27 Args: 

28 name (str): ClusterRole name. 

29 namespace (str): Namespace name. 

30 client (DynamicClient): DynamicClient to use. 

31 rules (list): list of dicts of rules. In the dict: 

32 permissions_to_resources (list): List of string with resource/s to which you want to add permissions to. 

33 Verbs (list): Determine the action/s (permissions) applicable on a specific resource. 

34 Available verbs per resource can be seen with the command 'oc api-resources --sort-by name -o wide' 

35 teardown (bool, default: True): Indicates if this resource would need to be deleted. 

36 yaml_file (yaml, default: None): yaml file for the resource. 

37 delete_timeout (int, default: 4 minutes): timeout associated with delete action. 

38 """ 

39 super().__init__( 

40 client=client, 

41 namespace=namespace, 

42 name=name, 

43 teardown=teardown, 

44 yaml_file=yaml_file, 

45 delete_timeout=delete_timeout, 

46 **kwargs, 

47 ) 

48 self.rules = rules 

49 

50 def to_dict(self) -> None: 

51 if not self.rules and not self.yaml_file: 

52 raise MissingRequiredArgumentError(argument="rules") 

53 if not self.res: 

54 super().to_dict() 

55 if not self.kind_dict and not self.yaml_file: 

56 self.res["rules"] = self.rules