summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/lib_openshift/library/oc_scale.py2
-rw-r--r--roles/lib_openshift/src/class/oc_scale.py2
-rwxr-xr-xroles/lib_openshift/src/test/integration/oc_scale.yml19
-rwxr-xr-xroles/lib_openshift/src/test/unit/oc_scale.py24
4 files changed, 47 insertions, 0 deletions
diff --git a/roles/lib_openshift/library/oc_scale.py b/roles/lib_openshift/library/oc_scale.py
index 6ae85e220..1259c5711 100644
--- a/roles/lib_openshift/library/oc_scale.py
+++ b/roles/lib_openshift/library/oc_scale.py
@@ -1644,6 +1644,8 @@ class OCScale(OpenShiftCLI):
state = params['state']
api_rval = oc_scale.get()
+ if api_rval['returncode'] != 0:
+ return {'failed': True, 'msg': api_rval}
#####
# Get
diff --git a/roles/lib_openshift/src/class/oc_scale.py b/roles/lib_openshift/src/class/oc_scale.py
index 19fba3af5..16255688b 100644
--- a/roles/lib_openshift/src/class/oc_scale.py
+++ b/roles/lib_openshift/src/class/oc_scale.py
@@ -77,6 +77,8 @@ class OCScale(OpenShiftCLI):
state = params['state']
api_rval = oc_scale.get()
+ if api_rval['returncode'] != 0:
+ return {'failed': True, 'msg': api_rval}
#####
# Get
diff --git a/roles/lib_openshift/src/test/integration/oc_scale.yml b/roles/lib_openshift/src/test/integration/oc_scale.yml
index e96e16820..43a42c589 100755
--- a/roles/lib_openshift/src/test/integration/oc_scale.yml
+++ b/roles/lib_openshift/src/test/integration/oc_scale.yml
@@ -90,3 +90,22 @@
- "'results' in pods and 'results' in pods.results"
- "{{ pods.results.results[0]['items']|length }} == 2"
msg: "Did not find 1 replica in scale results."
+
+
+ # Test scale on non-existent dc
+ - name: scale non-existent dc
+ oc_scale:
+ name: not_there
+ kind: dc
+ replicas: 2
+ register: scaleout
+ ignore_errors: True
+
+ - debug: var=scaleout
+
+ - assert:
+ that:
+ - scaleout.changed == False
+ - scaleout.msg.returncode == 1
+ - "'msg' in scaleout and 'stderr' in scaleout.msg"
+ msg: "Deploymentconfig exists. This should error."
diff --git a/roles/lib_openshift/src/test/unit/oc_scale.py b/roles/lib_openshift/src/test/unit/oc_scale.py
index c523592de..d8d5a231f 100755
--- a/roles/lib_openshift/src/test/unit/oc_scale.py
+++ b/roles/lib_openshift/src/test/unit/oc_scale.py
@@ -119,6 +119,30 @@ class OCScaleTest(unittest.TestCase):
self.assertFalse(results['changed'])
self.assertEqual(results['result'][0], 3)
+ @mock.patch('oc_scale.OCScale.openshift_cmd')
+ def test_no_dc_scale(self, mock_openshift_cmd):
+ ''' Testing a get '''
+ params = {'name': 'not_there',
+ 'namespace': 'default',
+ 'replicas': 3,
+ 'state': 'present',
+ 'kind': 'dc',
+ 'kubeconfig': '/etc/origin/master/admin.kubeconfig',
+ 'debug': False}
+
+ mock_openshift_cmd.side_effect = [
+ {"cmd": '/usr/bin/oc -n default get dc not_there -o json',
+ 'results': [{}],
+ 'returncode': 1,
+ 'stderr': "Error from server: deploymentconfigs \"not_there\" not found\n",
+ 'stdout': ""},
+ ]
+
+ results = OCScale.run_ansible(params, False)
+
+ self.assertTrue(results['failed'])
+ self.assertEqual(results['msg']['returncode'], 1)
+
def tearDown(self):
'''TearDown method'''
pass