diff options
author | Russell Teague <rteague@redhat.com> | 2017-02-23 07:35:28 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-23 07:35:28 -0500 |
commit | a395b2b4d6cfd65e1a2fb45a75d72a0c1d9c65bc (patch) | |
tree | 9e75faf82e244ba47ea2d0b1ba1c474d4dfa40e9 | |
parent | f0a32af0548eb309b9bb3bb2c366d35bdfab1847 (diff) | |
parent | 8bae101397360cdcc5e1d66d241c98b59f377633 (diff) | |
download | openshift-a395b2b4d6cfd65e1a2fb45a75d72a0c1d9c65bc.tar.gz openshift-a395b2b4d6cfd65e1a2fb45a75d72a0c1d9c65bc.tar.bz2 openshift-a395b2b4d6cfd65e1a2fb45a75d72a0c1d9c65bc.tar.xz openshift-a395b2b4d6cfd65e1a2fb45a75d72a0c1d9c65bc.zip |
Merge pull request #3460 from kwoodson/handle_router_prep
Handle router preparation errors. Also added a second sleep timer for creating openshift objects.
-rw-r--r-- | roles/lib_openshift/library/oc_adm_router.py | 27 | ||||
-rw-r--r-- | roles/lib_openshift/src/class/oc_adm_router.py | 27 |
2 files changed, 40 insertions, 14 deletions
diff --git a/roles/lib_openshift/library/oc_adm_router.py b/roles/lib_openshift/library/oc_adm_router.py index 324b87f84..445279ed1 100644 --- a/roles/lib_openshift/library/oc_adm_router.py +++ b/roles/lib_openshift/library/oc_adm_router.py @@ -2501,8 +2501,11 @@ class Router(OpenShiftCLI): ''' property for the prepared router''' if self.__prepared_router is None: results = self._prepare_router() - if not results: - raise RouterException('Could not perform router preparation') + if not results or 'returncode' in results and results['returncode'] != 0: + if 'stderr' in results: + raise RouterException('Could not perform router preparation: %s' % results['stderr']) + + raise RouterException('Could not perform router preparation.') self.__prepared_router = results return self.__prepared_router @@ -2664,8 +2667,8 @@ class Router(OpenShiftCLI): results = self.openshift_cmd(cmd, oadm=True, output=True, output_type='json') - # pylint: disable=no-member - if results['returncode'] != 0 and 'items' in results['results']: + # pylint: disable=maybe-no-member + if results['returncode'] != 0 or 'items' not in results['results']: return results oc_objects = {'DeploymentConfig': {'obj': None, 'path': None, 'update': False}, @@ -2702,12 +2705,22 @@ class Router(OpenShiftCLI): return oc_objects def create(self): - '''Create a deploymentconfig ''' + '''Create a router + + This includes the different parts: + - deploymentconfig + - service + - serviceaccount + - secrets + - clusterrolebinding + ''' results = [] - # pylint: disable=no-member + import time + # pylint: disable=maybe-no-member for _, oc_data in self.prepared_router.items(): if oc_data['obj'] is not None: + time.sleep(1) results.append(self._create(oc_data['path'])) rval = 0 @@ -2721,7 +2734,7 @@ class Router(OpenShiftCLI): '''run update for the router. This performs a replace''' results = [] - # pylint: disable=no-member + # pylint: disable=maybe-no-member for _, oc_data in self.prepared_router.items(): if oc_data['update']: results.append(self._replace(oc_data['path'])) diff --git a/roles/lib_openshift/src/class/oc_adm_router.py b/roles/lib_openshift/src/class/oc_adm_router.py index ab7c96927..66769e73b 100644 --- a/roles/lib_openshift/src/class/oc_adm_router.py +++ b/roles/lib_openshift/src/class/oc_adm_router.py @@ -49,8 +49,11 @@ class Router(OpenShiftCLI): ''' property for the prepared router''' if self.__prepared_router is None: results = self._prepare_router() - if not results: - raise RouterException('Could not perform router preparation') + if not results or 'returncode' in results and results['returncode'] != 0: + if 'stderr' in results: + raise RouterException('Could not perform router preparation: %s' % results['stderr']) + + raise RouterException('Could not perform router preparation.') self.__prepared_router = results return self.__prepared_router @@ -212,8 +215,8 @@ class Router(OpenShiftCLI): results = self.openshift_cmd(cmd, oadm=True, output=True, output_type='json') - # pylint: disable=no-member - if results['returncode'] != 0 and 'items' in results['results']: + # pylint: disable=maybe-no-member + if results['returncode'] != 0 or 'items' not in results['results']: return results oc_objects = {'DeploymentConfig': {'obj': None, 'path': None, 'update': False}, @@ -250,12 +253,22 @@ class Router(OpenShiftCLI): return oc_objects def create(self): - '''Create a deploymentconfig ''' + '''Create a router + + This includes the different parts: + - deploymentconfig + - service + - serviceaccount + - secrets + - clusterrolebinding + ''' results = [] - # pylint: disable=no-member + import time + # pylint: disable=maybe-no-member for _, oc_data in self.prepared_router.items(): if oc_data['obj'] is not None: + time.sleep(1) results.append(self._create(oc_data['path'])) rval = 0 @@ -269,7 +282,7 @@ class Router(OpenShiftCLI): '''run update for the router. This performs a replace''' results = [] - # pylint: disable=no-member + # pylint: disable=maybe-no-member for _, oc_data in self.prepared_router.items(): if oc_data['update']: results.append(self._replace(oc_data['path'])) |