diff options
author | Kenny Woodson <kwoodson@redhat.com> | 2017-02-20 16:37:06 -0500 |
---|---|---|
committer | Kenny Woodson <kwoodson@redhat.com> | 2017-02-20 16:37:06 -0500 |
commit | 9979e0702f097f92feb6d64991ec405e0bff86ce (patch) | |
tree | a2160df06fc1b675ae87c1d2e2fbed205e1f4db2 /roles/lib_openshift/src/class | |
parent | 35583f57c71db5b181d0eaefc0bfc620c3790535 (diff) | |
download | openshift-9979e0702f097f92feb6d64991ec405e0bff86ce.tar.gz openshift-9979e0702f097f92feb6d64991ec405e0bff86ce.tar.bz2 openshift-9979e0702f097f92feb6d64991ec405e0bff86ce.tar.xz openshift-9979e0702f097f92feb6d64991ec405e0bff86ce.zip |
Fixing docs. Fixed default_cert suggestion.
Diffstat (limited to 'roles/lib_openshift/src/class')
-rw-r--r-- | roles/lib_openshift/src/class/oc_adm_registry.py | 30 | ||||
-rw-r--r-- | roles/lib_openshift/src/class/oc_adm_router.py | 58 |
2 files changed, 60 insertions, 28 deletions
diff --git a/roles/lib_openshift/src/class/oc_adm_registry.py b/roles/lib_openshift/src/class/oc_adm_registry.py index f11737086..505c4db81 100644 --- a/roles/lib_openshift/src/class/oc_adm_registry.py +++ b/roles/lib_openshift/src/class/oc_adm_registry.py @@ -86,7 +86,7 @@ class Registry(OpenShiftCLI): def prepared_registry(self): ''' prepared_registry property ''' if not self.__prepared_registry: - results = self._prepare_registry() + results = self.prepare_registry() if not results: raise RegistryException('Could not perform registry preparation.') self.__prepared_registry = results @@ -100,13 +100,14 @@ class Registry(OpenShiftCLI): def force_prepare_registry(self): '''force a registry prep''' - self._prepare_registry = None + self.__prepared_registry = None def get(self): ''' return the self.registry_parts ''' self.deploymentconfig = None self.service = None + rval = 0 for part in self.registry_parts: result = self._get(part['kind'], rname=part['name']) if result['returncode'] == 0 and part['kind'] == 'dc': @@ -114,7 +115,11 @@ class Registry(OpenShiftCLI): elif result['returncode'] == 0 and part['kind'] == 'svc': self.service = Yedit(content=result['results'][0]) - return (self.deploymentconfig, self.service) + if result['returncode'] != 0: + rval = result['returncode'] + + + return {'returncode': rval, 'deploymentconfig': self.deploymentconfig, 'service': self.service} def exists(self): '''does the object exist?''' @@ -132,9 +137,16 @@ class Registry(OpenShiftCLI): continue parts.append(self._delete(part['kind'], part['name'])) - return parts + # Clean up returned results + rval = 0 + for part in parts: + # pylint: disable=invalid-sequence-index + if 'returncode' in part and part['returncode'] != 0: + rval = part['returncode'] + + return {'returncode': rval, 'results': parts} - def _prepare_registry(self): + def prepare_registry(self): ''' prepare a registry for instantiation ''' options = self.config.to_option_list() @@ -191,10 +203,10 @@ class Registry(OpenShiftCLI): # Clean up returned results rval = 0 for result in results: - if result['returncode'] != 0: + # pylint: disable=invalid-sequence-index + if 'returncode' in result and result['returncode'] != 0: rval = result['returncode'] - return {'returncode': rval, 'results': results} def update(self): @@ -311,6 +323,8 @@ class Registry(OpenShiftCLI): return self.prepared_registry['deployment_update'] or self.prepared_registry['service_update'] or False + # In the future, we would like to break out each ansible state into a function. + # pylint: disable=too-many-branches,too-many-return-statements @staticmethod def run_ansible(params, check_mode): '''run idempotent ansible code''' @@ -360,6 +374,8 @@ class Registry(OpenShiftCLI): if check_mode: return {'changed': True, 'msg': 'CHECK_MODE: Would have performed a delete.'} + # Unsure as to why this is angry with the return type. + # pylint: disable=redefined-variable-type api_rval = ocregistry.delete() if api_rval['returncode'] != 0: diff --git a/roles/lib_openshift/src/class/oc_adm_router.py b/roles/lib_openshift/src/class/oc_adm_router.py index 336232b0f..9d61cfdf2 100644 --- a/roles/lib_openshift/src/class/oc_adm_router.py +++ b/roles/lib_openshift/src/class/oc_adm_router.py @@ -1,16 +1,18 @@ # pylint: skip-file +# flake8: noqa -import time class RouterException(Exception): ''' Router exception''' pass + class RouterConfig(OpenShiftCLIConfig): ''' RouterConfig is a DTO for the router. ''' def __init__(self, rname, namespace, kubeconfig, router_options): super(RouterConfig, self).__init__(rname, namespace, kubeconfig, router_options) + class Router(OpenShiftCLI): ''' Class to wrap the oc command line tools ''' def __init__(self, @@ -45,7 +47,7 @@ class Router(OpenShiftCLI): @property def prepared_router(self): ''' property for the prepared router''' - if self.__prepared_router == None: + if self.__prepared_router is None: results = self._prepare_router() if not results: raise RouterException('Could not perform router preparation') @@ -148,7 +150,12 @@ class Router(OpenShiftCLI): for part in self.router_parts: parts.append(self._delete(part['kind'], part['name'])) - return parts + rval = 0 + for part in parts: + if part['returncode'] != 0 and not 'already exist' in part['stderr']: + rval = part['returncode'] + + return {'returncode': rval, 'results': parts} def add_modifications(self, deploymentconfig): '''modify the deployment config''' @@ -176,16 +183,17 @@ class Router(OpenShiftCLI): def _prepare_router(self): '''prepare router for instantiation''' # We need to create the pem file - router_pem = '/tmp/router.pem' - with open(router_pem, 'w') as rfd: - rfd.write(open(self.config.config_options['cert_file']['value']).read()) - rfd.write(open(self.config.config_options['key_file']['value']).read()) - if self.config.config_options['cacert_file']['value'] and \ - os.path.exists(self.config.config_options['cacert_file']['value']): - rfd.write(open(self.config.config_options['cacert_file']['value']).read()) - - atexit.register(Utils.cleanup, [router_pem]) - self.config.config_options['default_cert']['value'] = router_pem + if self.config.config_options['default_cert']['value'] is None: + router_pem = '/tmp/router.pem' + with open(router_pem, 'w') as rfd: + rfd.write(open(self.config.config_options['cert_file']['value']).read()) + rfd.write(open(self.config.config_options['key_file']['value']).read()) + if self.config.config_options['cacert_file']['value'] and \ + os.path.exists(self.config.config_options['cacert_file']['value']): + rfd.write(open(self.config.config_options['cacert_file']['value']).read()) + + atexit.register(Utils.cleanup, [router_pem]) + self.config.config_options['default_cert']['value'] = router_pem options = self.config.to_option_list() @@ -196,7 +204,7 @@ class Router(OpenShiftCLI): results = self.openshift_cmd(cmd, oadm=True, output=True, output_type='json') # pylint: disable=no-member - if results['returncode'] != 0 and results['results'].has_key('items'): + if results['returncode'] != 0 and 'items' in results['results']: return results oc_objects = {'DeploymentConfig': {'obj': None, 'path': None, 'update': False}, @@ -226,14 +234,16 @@ class Router(OpenShiftCLI): # add modifications added oc_objects['DeploymentConfig']['obj'] = self.add_modifications(oc_objects['DeploymentConfig']['obj']) - for oc_type in oc_objects.keys(): - oc_objects[oc_type]['path'] = Utils.create_tmp_file_from_contents(oc_type, oc_objects[oc_type]['obj'].yaml_dict) + for oc_type, oc_data in oc_objects.items(): + oc_data['path'] = Utils.create_tmp_file_from_contents(oc_type, oc_data['obj'].yaml_dict) return oc_objects def create(self): '''Create a deploymentconfig ''' results = [] + + # pylint: disable=no-member for _, oc_data in self.prepared_router.items(): results.append(self._create(oc_data['path'])) @@ -247,6 +257,8 @@ class Router(OpenShiftCLI): def update(self): '''run update for the router. This performs a replace''' results = [] + + # pylint: disable=no-member for _, oc_data in self.prepared_router.items(): if oc_data['update']: results.append(self._replace(oc_data['path'])) @@ -312,7 +324,7 @@ class Router(OpenShiftCLI): # dry-run doesn't add the protocol to the ports section. We will manually do that. for idx, port in enumerate(self.prepared_router['DeploymentConfig']['obj'].get(\ 'spec.template.spec.containers[0].ports') or []): - if not port.has_key('protocol'): + if not 'protocol' in port: port['protocol'] = 'TCP' # These are different when generating @@ -325,13 +337,14 @@ class Router(OpenShiftCLI): ] if not Utils.check_def_equal(self.prepared_router['DeploymentConfig']['obj'].yaml_dict, - self.deploymentconfig.yaml_dict, - skip_keys=skip, - debug=self.verbose): + self.deploymentconfig.yaml_dict, + skip_keys=skip, + debug=self.verbose): self.prepared_router['DeploymentConfig']['update'] = True # Check if any of the parts need updating, if so, return True # else, no need to update + # pylint: disable=no-member return any([self.prepared_router[oc_type]['update'] for oc_type in self.prepared_router.keys()]) @staticmethod @@ -341,7 +354,7 @@ class Router(OpenShiftCLI): rconfig = RouterConfig(params['name'], params['namespace'], params['kubeconfig'], - {'default_cert': {'value': None, 'include': True}, + {'default_cert': {'value': params['default_cert'], 'include': True}, 'cert_file': {'value': params['cert_file'], 'include': False}, 'key_file': {'value': params['key_file'], 'include': False}, 'images': {'value': params['images'], 'include': True}, @@ -400,6 +413,9 @@ class Router(OpenShiftCLI): if check_mode: return {'changed': True, 'msg': 'CHECK_MODE: Would have performed a delete.'} + # In case of delete we return a list of each object + # that represents a router and its result in a list + # pylint: disable=redefined-variable-type api_rval = ocrouter.delete() return {'changed': True, 'results': api_rval, 'state': state} |