summaryrefslogtreecommitdiffstats
path: root/roles/lib_openshift/src/class
diff options
context:
space:
mode:
authorKenny Woodson <kwoodson@redhat.com>2017-02-20 16:37:06 -0500
committerKenny Woodson <kwoodson@redhat.com>2017-02-20 16:37:06 -0500
commit9979e0702f097f92feb6d64991ec405e0bff86ce (patch)
treea2160df06fc1b675ae87c1d2e2fbed205e1f4db2 /roles/lib_openshift/src/class
parent35583f57c71db5b181d0eaefc0bfc620c3790535 (diff)
downloadopenshift-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.py30
-rw-r--r--roles/lib_openshift/src/class/oc_adm_router.py58
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}