1 from ansible.module_utils.basic import AnsibleModule
3 ANSIBLE_METADATA = {'metadata_version': '1.0', 'status': ['preview'],
4 'supported_by': 'community'}
10 short_description: Manipulate ODL users
12 - Use this module to add, delete and list ODL users
14 author: "Taseer Ahmed (@Taseer)"
23 description: Add/remove/list OpenDaylight users
31 - name: create odl user
37 - name: delete odl user
42 - name: list odl users
48 def build_cmd(module, *args):
50 module.get_bin_path('java', True),
52 '/opt/opendaylight/bin/aaa-cli-jar.jar',
54 '/opt/opendaylight/data'
62 module = AnsibleModule(
64 username=dict(type='str'),
65 password=dict(type='str'),
66 state=dict(type='str')
70 username = module.params['username']
71 password = module.params['password']
72 state = module.params['state']
75 ls_users_cmd = build_cmd(module, "-l")
76 (rc, out, err) = module.run_command(ls_users_cmd)
78 cmd = build_cmd(module, '--deleteUser', username)
79 (rc, out, err) = module.run_command(cmd)
80 if rc is not None and rc != 0:
81 return module.fail_json(msg=err)
82 module.exit_json(changed=True, msg="User deleted")
84 module.exit_json(changed=False, msg="No such user exists")
85 elif state == 'present':
86 ls_users_cmd = build_cmd(module, "-l")
87 (rc, out, err) = module.run_command(ls_users_cmd)
88 if rc is not None and rc != 0:
89 return module.fail_json(msg=err)
92 module.exit_json(changed=False, msg="User already exists")
94 cmd = build_cmd(module, '--newUser', username, '-p', password)
95 (rc, out, err) = module.run_command(cmd)
96 if rc is not None and rc != 0:
97 return module.fail_json(msg=err)
98 module.exit_json(changed=True, msg="User added")
100 ls_users_cmd = build_cmd(module, "-l")
101 (rc, out, err) = module.run_command(ls_users_cmd)
102 if rc is not None and rc != 0:
103 return module.fail_json(msg=err)
104 users = out.split('\n')
105 if users[0] == 'User names:':
107 module.exit_json(changed=False, msg=users)
109 module.exit_json(changed=False, msg="No state specified")
112 if __name__ == '__main__':