Skip to content

Commit

Permalink
Merge pull request #4933 from kwoodson/policy_to_binding
Browse files Browse the repository at this point in the history
Merged by openshift-bot
  • Loading branch information
OpenShift Bot authored Jul 29, 2017
2 parents 1990a97 + 46c94de commit 3be2748
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 92 deletions.
41 changes: 20 additions & 21 deletions roles/lib_openshift/library/oc_adm_policy_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -1959,28 +1959,28 @@ def __init__(self,
self.verbose = verbose
self._rolebinding = None
self._scc = None
self._cluster_policy_bindings = None
self._policy_bindings = None
self._cluster_role_bindings = None
self._role_bindings = None

@property
def policybindings(self):
if self._policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def rolebindings(self):
if self._role_bindings is None:
results = self._get('rolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve policybindings')
self._policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve rolebindings')
self._role_bindings = results['results'][0]['items']

return self._policy_bindings
return self._role_bindings

@property
def clusterpolicybindings(self):
if self._cluster_policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def clusterrolebindings(self):
if self._cluster_role_bindings is None:
results = self._get('clusterrolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve clusterpolicybindings')
self._cluster_policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve clusterrolebindings')
self._cluster_role_bindings = results['results'][0]['items']

return self._cluster_policy_bindings
return self._cluster_role_bindings

@property
def role_binding(self):
Expand Down Expand Up @@ -2023,18 +2023,17 @@ def exists_role_binding(self):
''' return whether role_binding exists '''
bindings = None
if self.config.config_options['resource_kind']['value'] == 'cluster-role':
bindings = self.clusterpolicybindings
bindings = self.clusterrolebindings
else:
bindings = self.policybindings
bindings = self.rolebindings

if bindings is None:
return False

for binding in bindings['roleBindings']:
_rb = binding['roleBinding']
if _rb['roleRef']['name'] == self.config.config_options['name']['value'] and \
_rb['groupNames'] is not None and \
self.config.config_options['group']['value'] in _rb['groupNames']:
for binding in bindings:
if binding['roleRef']['name'] == self.config.config_options['name']['value'] and \
binding['groupNames'] is not None and \
self.config.config_options['group']['value'] in binding['groupNames']:
self.role_binding = binding
return True

Expand Down
47 changes: 23 additions & 24 deletions roles/lib_openshift/library/oc_adm_policy_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -1950,36 +1950,36 @@ class PolicyUser(OpenShiftCLI):
''' Class to handle attaching policies to users '''

def __init__(self,
policy_config,
config,
verbose=False):
''' Constructor for PolicyUser '''
super(PolicyUser, self).__init__(policy_config.namespace, policy_config.kubeconfig, verbose)
self.config = policy_config
super(PolicyUser, self).__init__(config.namespace, config.kubeconfig, verbose)
self.config = config
self.verbose = verbose
self._rolebinding = None
self._scc = None
self._cluster_policy_bindings = None
self._policy_bindings = None
self._cluster_role_bindings = None
self._role_bindings = None

@property
def policybindings(self):
if self._policy_bindings is None:
results = self._get('policybindings', None)
def rolebindings(self):
if self._role_bindings is None:
results = self._get('rolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve policybindings')
self._policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve rolebindings')
self._role_bindings = results['results'][0]['items']

return self._policy_bindings
return self._role_bindings

@property
def clusterpolicybindings(self):
if self._cluster_policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def clusterrolebindings(self):
if self._cluster_role_bindings is None:
results = self._get('clusterrolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve clusterpolicybindings')
self._cluster_policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve clusterrolebindings')
self._cluster_role_bindings = results['results'][0]['items']

return self._cluster_policy_bindings
return self._cluster_role_bindings

@property
def role_binding(self):
Expand Down Expand Up @@ -2017,18 +2017,17 @@ def exists_role_binding(self):
''' return whether role_binding exists '''
bindings = None
if self.config.config_options['resource_kind']['value'] == 'cluster-role':
bindings = self.clusterpolicybindings
bindings = self.clusterrolebindings
else:
bindings = self.policybindings
bindings = self.rolebindings

if bindings is None:
return False

for binding in bindings['roleBindings']:
_rb = binding['roleBinding']
if _rb['roleRef']['name'] == self.config.config_options['name']['value'] and \
_rb['userNames'] is not None and \
self.config.config_options['user']['value'] in _rb['userNames']:
for binding in bindings:
if binding['roleRef']['name'] == self.config.config_options['name']['value'] and \
binding['userNames'] is not None and \
self.config.config_options['user']['value'] in binding['userNames']:
self.role_binding = binding
return True

Expand Down
2 changes: 1 addition & 1 deletion roles/lib_openshift/library/oc_clusterrole.py
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@ def get(self):
self.clusterrole = ClusterRole(content=result['results'][0])
result['results'] = self.clusterrole.yaml_dict

elif 'clusterrole "{}" not found'.format(self.name) in result['stderr']:
elif '"{}" not found'.format(self.name) in result['stderr']:
result['returncode'] = 0
self.clusterrole = None

Expand Down
41 changes: 20 additions & 21 deletions roles/lib_openshift/src/class/oc_adm_policy_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,28 @@ def __init__(self,
self.verbose = verbose
self._rolebinding = None
self._scc = None
self._cluster_policy_bindings = None
self._policy_bindings = None
self._cluster_role_bindings = None
self._role_bindings = None

@property
def policybindings(self):
if self._policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def rolebindings(self):
if self._role_bindings is None:
results = self._get('rolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve policybindings')
self._policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve rolebindings')
self._role_bindings = results['results'][0]['items']

return self._policy_bindings
return self._role_bindings

@property
def clusterpolicybindings(self):
if self._cluster_policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def clusterrolebindings(self):
if self._cluster_role_bindings is None:
results = self._get('clusterrolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve clusterpolicybindings')
self._cluster_policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve clusterrolebindings')
self._cluster_role_bindings = results['results'][0]['items']

return self._cluster_policy_bindings
return self._cluster_role_bindings

@property
def role_binding(self):
Expand Down Expand Up @@ -105,18 +105,17 @@ def exists_role_binding(self):
''' return whether role_binding exists '''
bindings = None
if self.config.config_options['resource_kind']['value'] == 'cluster-role':
bindings = self.clusterpolicybindings
bindings = self.clusterrolebindings
else:
bindings = self.policybindings
bindings = self.rolebindings

if bindings is None:
return False

for binding in bindings['roleBindings']:
_rb = binding['roleBinding']
if _rb['roleRef']['name'] == self.config.config_options['name']['value'] and \
_rb['groupNames'] is not None and \
self.config.config_options['group']['value'] in _rb['groupNames']:
for binding in bindings:
if binding['roleRef']['name'] == self.config.config_options['name']['value'] and \
binding['groupNames'] is not None and \
self.config.config_options['group']['value'] in binding['groupNames']:
self.role_binding = binding
return True

Expand Down
47 changes: 23 additions & 24 deletions roles/lib_openshift/src/class/oc_adm_policy_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,36 +32,36 @@ class PolicyUser(OpenShiftCLI):
''' Class to handle attaching policies to users '''

def __init__(self,
policy_config,
config,
verbose=False):
''' Constructor for PolicyUser '''
super(PolicyUser, self).__init__(policy_config.namespace, policy_config.kubeconfig, verbose)
self.config = policy_config
super(PolicyUser, self).__init__(config.namespace, config.kubeconfig, verbose)
self.config = config
self.verbose = verbose
self._rolebinding = None
self._scc = None
self._cluster_policy_bindings = None
self._policy_bindings = None
self._cluster_role_bindings = None
self._role_bindings = None

@property
def policybindings(self):
if self._policy_bindings is None:
results = self._get('policybindings', None)
def rolebindings(self):
if self._role_bindings is None:
results = self._get('rolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve policybindings')
self._policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve rolebindings')
self._role_bindings = results['results'][0]['items']

return self._policy_bindings
return self._role_bindings

@property
def clusterpolicybindings(self):
if self._cluster_policy_bindings is None:
results = self._get('clusterpolicybindings', None)
def clusterrolebindings(self):
if self._cluster_role_bindings is None:
results = self._get('clusterrolebindings', None)
if results['returncode'] != 0:
raise OpenShiftCLIError('Could not retrieve clusterpolicybindings')
self._cluster_policy_bindings = results['results'][0]['items'][0]
raise OpenShiftCLIError('Could not retrieve clusterrolebindings')
self._cluster_role_bindings = results['results'][0]['items']

return self._cluster_policy_bindings
return self._cluster_role_bindings

@property
def role_binding(self):
Expand Down Expand Up @@ -99,18 +99,17 @@ def exists_role_binding(self):
''' return whether role_binding exists '''
bindings = None
if self.config.config_options['resource_kind']['value'] == 'cluster-role':
bindings = self.clusterpolicybindings
bindings = self.clusterrolebindings
else:
bindings = self.policybindings
bindings = self.rolebindings

if bindings is None:
return False

for binding in bindings['roleBindings']:
_rb = binding['roleBinding']
if _rb['roleRef']['name'] == self.config.config_options['name']['value'] and \
_rb['userNames'] is not None and \
self.config.config_options['user']['value'] in _rb['userNames']:
for binding in bindings:
if binding['roleRef']['name'] == self.config.config_options['name']['value'] and \
binding['userNames'] is not None and \
self.config.config_options['user']['value'] in binding['userNames']:
self.role_binding = binding
return True

Expand Down
2 changes: 1 addition & 1 deletion roles/lib_openshift/src/class/oc_clusterrole.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def get(self):
self.clusterrole = ClusterRole(content=result['results'][0])
result['results'] = self.clusterrole.yaml_dict

elif 'clusterrole "{}" not found'.format(self.name) in result['stderr']:
elif '"{}" not found'.format(self.name) in result['stderr']:
result['returncode'] = 0
self.clusterrole = None

Expand Down

0 comments on commit 3be2748

Please sign in to comment.