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
« 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
8class Role(NamespacedResource):
9 """
10 Role object.
11 """
13 api_group = NamespacedResource.ApiGroup.RBAC_AUTHORIZATION_K8S_IO
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
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