Browse Source

Attempt to handle router preparation errors.

Kenny Woodson 8 years ago
parent
commit
50fa8cd61d

+ 8 - 3
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
@@ -2665,7 +2668,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 'items' in results['results']:
+        if results['returncode'] != 0 or 'items' not in results['results']:
             return results
 
         oc_objects = {'DeploymentConfig': {'obj': None, 'path': None, 'update': False},
@@ -2705,9 +2708,11 @@ class Router(OpenShiftCLI):
         '''Create a deploymentconfig '''
         results = []
 
+        import time
         # pylint: disable=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

+ 8 - 3
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
@@ -213,7 +216,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 'items' in results['results']:
+        if results['returncode'] != 0 or 'items' not in results['results']:
             return results
 
         oc_objects = {'DeploymentConfig': {'obj': None, 'path': None, 'update': False},
@@ -253,9 +256,11 @@ class Router(OpenShiftCLI):
         '''Create a deploymentconfig '''
         results = []
 
+        import time
         # pylint: disable=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