File tree Expand file tree Collapse file tree 4 files changed +64
-12
lines changed Expand file tree Collapse file tree 4 files changed +64
-12
lines changed Original file line number Diff line number Diff line change @@ -33,19 +33,44 @@ def __init__(
3333 self .api_groups = api_groups
3434 self .permissions_to_resources = permissions_to_resources
3535 self .verbs = verbs
36+ self .desired_state = {"rules" : []}
3637
3738 def to_dict (self ):
38- res = super ().to_dict ()
39+ self . res = super ().to_dict ()
3940 if self .yaml_file :
40- return res
41+ return self . res
4142
42- rules = {}
43- if self .api_groups :
44- rules ["apiGroups" ] = self .api_groups
4543 if self .permissions_to_resources :
46- rules ["resources" ] = self .permissions_to_resources
47- if self .verbs :
48- rules ["verbs" ] = self .verbs
49- if rules :
50- res ["rules" ] = [rules ]
51- return res
44+ self .add_rule (
45+ api_groups = self .api_groups ,
46+ permissions_to_resources = self .permissions_to_resources ,
47+ verbs = self .verbs ,
48+ )
49+
50+ return self .res
51+
52+ def add_rule (
53+ self ,
54+ api_groups = None ,
55+ permissions_to_resources = None ,
56+ verbs = None ,
57+ ):
58+ if not self .res :
59+ self .res = super ().to_dict ()
60+
61+ rule = {}
62+ if api_groups :
63+ rule ["apiGroups" ] = api_groups
64+ if permissions_to_resources :
65+ rule ["resources" ] = permissions_to_resources
66+ if verbs :
67+ rule ["verbs" ] = verbs
68+ if rule :
69+ self ._set_rule (rule = rule )
70+
71+ return self .res
72+
73+ def _set_rule (self , rule ):
74+
75+ self .desired_state ["rules" ].append (rule )
76+ self .res ["rules" ] = self .desired_state ["rules" ]
Original file line number Diff line number Diff line change 11# -*- coding: utf-8 -*-
22
3+ from ocp_resources .cluster_role import ClusterRole
34from ocp_resources .resource import Resource
45
56
@@ -9,3 +10,28 @@ class ClusterRoleBinding(Resource):
910 """
1011
1112 api_group = Resource .ApiGroup .RBAC_AUTHORIZATION_K8S_IO
13+
14+ def __init__ (
15+ self ,
16+ name = None ,
17+ cluster_role = None ,
18+ subjects = None ,
19+ ):
20+ super ().__init__ (name = name )
21+ self .cluster_role = cluster_role
22+ self .subjects = subjects
23+
24+ def to_dict (self ):
25+ self .res = super ().to_dict ()
26+
27+ self .res .setdefault ("roleRef" , {})
28+ self .res ["roleRef" ] = {
29+ "apiGroup" : self .api_group ,
30+ "kind" : ClusterRole .kind ,
31+ "name" : self .cluster_role ,
32+ }
33+
34+ if self .subjects :
35+ self .res .setdefault ("subjects" , self .subjects )
36+
37+ return self .res
Original file line number Diff line number Diff line change @@ -106,7 +106,6 @@ def __init__(
106106 self .set_ipv6 = set_ipv6
107107 self .success_timeout = success_timeout
108108 self .max_unavailable = max_unavailable
109- self .res = None
110109 self .ipv4_ports_backup_dict = {}
111110 self .ipv6_ports_backup_dict = {}
112111 self .nodes = self ._nodes ()
Original file line number Diff line number Diff line change @@ -330,6 +330,7 @@ class ApiGroup:
330330 SSP_KUBEVIRT_IO = "ssp.kubevirt.io"
331331 STORAGE_K8S_IO = "storage.k8s.io"
332332 STORAGECLASS_KUBERNETES_IO = "storageclass.kubernetes.io"
333+ SUBRESOURCES_KUBEVIRT_IO = "subresources.kubevirt.io"
333334 TEKTON_TASKS_KUBEVIRT_IO = "tektontasks.kubevirt.io"
334335 TEMPLATE_KUBEVIRT_IO = "template.kubevirt.io"
335336 TEMPLATE_OPENSHIFT_IO = "template.openshift.io"
@@ -400,6 +401,7 @@ def __init__(
400401 self .node_selector = node_selector
401402 self .node_selector_labels = node_selector_labels
402403 self .node_selector_spec = self ._prepare_node_selector_spec ()
404+ self .res = None
403405
404406 def _prepare_node_selector_spec (self ):
405407 if self .node_selector :
You can’t perform that action at this time.
0 commit comments