summaryrefslogtreecommitdiffstats
path: root/roles/lib_openshift/src
diff options
context:
space:
mode:
authorJoel Diaz <jdiaz@redhat.com>2017-02-28 16:22:08 +0000
committerJoel Diaz <jdiaz@redhat.com>2017-03-21 17:33:27 -0400
commita11970d30c88d188392ec217c055b6b8169b3769 (patch)
tree8c32341fde26780aa24332f9ff6aff09db6110dc /roles/lib_openshift/src
parent45fbfdad1b80c50276a9da3841d6e4089b109e35 (diff)
downloadopenshift-a11970d30c88d188392ec217c055b6b8169b3769.tar.gz
openshift-a11970d30c88d188392ec217c055b6b8169b3769.tar.bz2
openshift-a11970d30c88d188392ec217c055b6b8169b3769.tar.xz
openshift-a11970d30c88d188392ec217c055b6b8169b3769.zip
clean up and clarify docs/comments
update unit tests
Diffstat (limited to 'roles/lib_openshift/src')
-rw-r--r--roles/lib_openshift/src/class/oc_user.py4
-rw-r--r--roles/lib_openshift/src/doc/user66
-rwxr-xr-xroles/lib_openshift/src/test/integration/oc_user.yml4
-rwxr-xr-xroles/lib_openshift/src/test/unit/test_oc_user.py (renamed from roles/lib_openshift/src/test/unit/oc_user.py)16
4 files changed, 81 insertions, 9 deletions
diff --git a/roles/lib_openshift/src/class/oc_user.py b/roles/lib_openshift/src/class/oc_user.py
index 17b679289..d9e4eac13 100644
--- a/roles/lib_openshift/src/class/oc_user.py
+++ b/roles/lib_openshift/src/class/oc_user.py
@@ -19,14 +19,14 @@ class OCUser(OpenShiftCLI):
@property
def user(self):
- ''' property function service'''
+ ''' property function user'''
if not self._user:
self.get()
return self._user
@user.setter
def user(self, data):
- ''' setter function for yedit var '''
+ ''' setter function for user '''
self._user = data
def exists(self):
diff --git a/roles/lib_openshift/src/doc/user b/roles/lib_openshift/src/doc/user
index cae108415..65ee01eb7 100644
--- a/roles/lib_openshift/src/doc/user
+++ b/roles/lib_openshift/src/doc/user
@@ -37,13 +37,13 @@ options:
aliases: []
full_name:
description:
- - String with the full name/description of th user.
+ - String with the full name/description of the user.
required: false
default: None
aliases: []
groups:
description:
- - List of groups the user should be a member of.
+ - List of groups the user should be a member of. This does not add/update the legacy 'groups' field in the OpenShift user object, but makes user entries into the appropriate OpenShift group object for the given user.
required: false
default: []
aliases: []
@@ -58,9 +58,71 @@ EXAMPLES = '''
state: present
username: johndoe
full_name "John Doe"
+ groups:
+ - dedicated-admins
+ register: user_johndoe
+
+user_johndoe variable will have contents like:
+ok: [ded-int-aws-master-61034] => {
+ "user_johndoe": {
+ "changed": true,
+ "results": {
+ "cmd": "oc -n default get users johndoe -o json",
+ "results": [
+ {
+ "apiVersion": "v1",
+ "fullName": "John DOe",
+ "groups": null,
+ "identities": null,
+ "kind": "User",
+ "metadata": {
+ "creationTimestamp": "2017-02-28T15:09:21Z",
+ "name": "johndoe",
+ "resourceVersion": "848781",
+ "selfLink": "/oapi/v1/users/johndoe",
+ "uid": "e23d3300-fdc7-11e6-9e3e-12822d6b7656"
+ }
+ }
+ ],
+ "returncode": 0
+ },
+ "state": "present"
+ }
+}
+'groups' is empty because this field is the OpenShift user object's 'group' field.
- name: Ensure user does not exist
oc_user:
state: absent
username: johndoe
+
+- name: List user's info
+ oc_user:
+ state: list
+ username: johndoe
+ register: user_johndoe
+
+user_johndoe will have contents similar to:
+ok: [ded-int-aws-master-61034] => {
+ "user_johndoe": {
+ "changed": false,
+ "results": [
+ {
+ "apiVersion": "v1",
+ "fullName": "John Doe",
+ "groups": null,
+ "identities": null,
+ "kind": "User",
+ "metadata": {
+ "creationTimestamp": "2017-02-28T15:04:44Z",
+ "name": "johndoe",
+ "resourceVersion": "848280",
+ "selfLink": "/oapi/v1/users/johndoe",
+ "uid": "3d479ad2-fdc7-11e6-9e3e-12822d6b7656"
+ }
+ }
+ ],
+ "state": "list"
+ }
+}
'''
diff --git a/roles/lib_openshift/src/test/integration/oc_user.yml b/roles/lib_openshift/src/test/integration/oc_user.yml
index 7d6221e64..ad1f9d188 100755
--- a/roles/lib_openshift/src/test/integration/oc_user.yml
+++ b/roles/lib_openshift/src/test/integration/oc_user.yml
@@ -142,8 +142,8 @@
register: user_out
- name: assert test group created
assert:
- that: user_out['results'][0]['metadata']['name'] == "integration-test-group" and
- user_out['results'][0]['users'] is not defined
+ that: user_out['results']['results'][0]['metadata']['name'] == "integration-test-group"
+ msg: "{{ user_out }}"
- name: create user with group membership
oc_user:
diff --git a/roles/lib_openshift/src/test/unit/oc_user.py b/roles/lib_openshift/src/test/unit/test_oc_user.py
index 920b06d0e..933e96ae2 100755
--- a/roles/lib_openshift/src/test/unit/oc_user.py
+++ b/roles/lib_openshift/src/test/unit/test_oc_user.py
@@ -24,7 +24,7 @@ import mock
# place class in our python path
module_path = os.path.join('/'.join(os.path.realpath(__file__).split('/')[:-4]), 'library') # noqa: E501
sys.path.insert(0, module_path)
-from oc_user import OCUser # noqa: E402
+from oc_user import OCUser, locate_oc_binary # noqa: E402
class OCUserTest(unittest.TestCase):
@@ -36,8 +36,9 @@ class OCUserTest(unittest.TestCase):
''' setup method will create a file and set to known configuration '''
pass
+ @mock.patch('oc_user.Utils.create_tmpfile_copy')
@mock.patch('oc_user.OCUser._run')
- def test_state_list(self, mock_cmd):
+ def test_state_list(self, mock_cmd, mock_tmpfile_copy):
''' Testing a user list '''
params = {'username': 'testuser@email.com',
'state': 'list',
@@ -65,13 +66,18 @@ class OCUserTest(unittest.TestCase):
(0, user, ''),
]
+ mock_tmpfile_copy.side_effect = [
+ '/tmp/mocked_kubeconfig',
+ ]
+
results = OCUser.run_ansible(params, False)
self.assertFalse(results['changed'])
self.assertTrue(results['results'][0]['metadata']['name'] == "testuser@email.com")
+ @mock.patch('oc_user.Utils.create_tmpfile_copy')
@mock.patch('oc_user.OCUser._run')
- def test_state_present(self, mock_cmd):
+ def test_state_present(self, mock_cmd, mock_tmpfile_copy):
''' Testing a user list '''
params = {'username': 'testuser@email.com',
'state': 'present',
@@ -102,6 +108,10 @@ class OCUserTest(unittest.TestCase):
(0, created_user, ''), # get
]
+ mock_tmpfile_copy.side_effect = [
+ '/tmp/mocked_kubeconfig',
+ ]
+
results = OCUser.run_ansible(params, False)
self.assertTrue(results['changed'])