mirror of
https://github.com/saltstack/salt.git
synced 2025-04-16 09:40:20 +00:00

Since "pchanges" was never supported in the state compiler, and "changes" is what these reqs always used, replacing "pchanges" with "changes" will allow those requisites to work in test mode. Conflicts: - salt/states/file.py - salt/states/linux_acl.py - salt/utils/napalm.py - tests/integration/modules/test_state.py - tests/unit/states/test_file.py
106 lines
2.5 KiB
Python
106 lines
2.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
Management of OpenStack Keystone Roles
|
|
======================================
|
|
|
|
.. versionadded:: 2018.3.0
|
|
|
|
:depends: shade
|
|
:configuration: see :py:mod:`salt.modules.keystoneng` for setup instructions
|
|
|
|
Example States
|
|
|
|
.. code-block:: yaml
|
|
|
|
create role:
|
|
keystone_role.present:
|
|
- name: role1
|
|
|
|
delete role:
|
|
keystone_role.absent:
|
|
- name: role1
|
|
|
|
create role with optional params:
|
|
keystone_role.present:
|
|
- name: role1
|
|
- description: 'my group'
|
|
'''
|
|
|
|
from __future__ import absolute_import, unicode_literals, print_function
|
|
|
|
__virtualname__ = 'keystone_role'
|
|
|
|
|
|
def __virtual__():
|
|
if 'keystoneng.role_get' in __salt__:
|
|
return __virtualname__
|
|
return (False, 'The keystoneng execution module failed to load: shade python module is not available')
|
|
|
|
|
|
def present(name, auth=None, **kwargs):
|
|
'''
|
|
Ensure an role exists
|
|
|
|
name
|
|
Name of the role
|
|
|
|
description
|
|
An arbitrary description of the role
|
|
'''
|
|
ret = {'name': name,
|
|
'changes': {},
|
|
'result': True,
|
|
'comment': ''}
|
|
|
|
kwargs = __utils__['args.clean_kwargs'](**kwargs)
|
|
|
|
__salt__['keystoneng.setup_clouds'](auth)
|
|
|
|
kwargs['name'] = name
|
|
role = __salt__['keystoneng.role_get'](**kwargs)
|
|
|
|
if not role:
|
|
if __opts__['test'] is True:
|
|
ret['result'] = None
|
|
ret['changes'] = kwargs
|
|
ret['comment'] = 'Role will be created.'
|
|
return ret
|
|
|
|
role = __salt__['keystoneng.role_create'](**kwargs)
|
|
ret['changes']['id'] = role.id
|
|
ret['changes']['name'] = role.name
|
|
ret['comment'] = 'Created role'
|
|
return ret
|
|
# NOTE(SamYaple): Update support pending https://review.openstack.org/#/c/496992/
|
|
return ret
|
|
|
|
|
|
def absent(name, auth=None, **kwargs):
|
|
'''
|
|
Ensure role does not exist
|
|
|
|
name
|
|
Name of the role
|
|
'''
|
|
ret = {'name': name,
|
|
'changes': {},
|
|
'result': True,
|
|
'comment': ''}
|
|
|
|
__salt__['keystoneng.setup_clouds'](auth)
|
|
|
|
kwargs['name'] = name
|
|
role = __salt__['keystoneng.role_get'](**kwargs)
|
|
|
|
if role:
|
|
if __opts__['test'] is True:
|
|
ret['result'] = None
|
|
ret['changes'] = {'id': role.id}
|
|
ret['comment'] = 'Role will be deleted.'
|
|
return ret
|
|
|
|
__salt__['keystoneng.role_delete'](name=role)
|
|
ret['changes']['id'] = role.id
|
|
ret['comment'] = 'Deleted role'
|
|
|
|
return ret
|