Пример #1
0
def main():
    actions = {'present': 'assign', 'absent': 'unassign', 'list': 'list'}
    argument_spec = dict(
        policy_profiles=dict(type='list'),
        resource_name=dict(required=True, type='str'),
        resource_type=dict(required=True,
                           type='str',
                           choices=manageiq_entities().keys()),
        state=dict(required=False,
                   type='str',
                   choices=['present', 'absent', 'list'],
                   default='present'),
    )
    # add the manageiq connection arguments to the arguments
    argument_spec.update(manageiq_argument_spec())

    module = AnsibleModule(
        argument_spec=argument_spec,
        required_if=[('state', 'present', ['policy_profiles']),
                     ('state', 'absent', ['policy_profiles'])],
    )

    policy_profiles = module.params['policy_profiles']
    resource_type_key = module.params['resource_type']
    resource_name = module.params['resource_name']
    state = module.params['state']

    # get the action and resource type
    action = actions[state]
    resource_type = manageiq_entities()[resource_type_key]

    manageiq = ManageIQ(module)

    # query resource id, fail if resource does not exist
    resource_id = manageiq.find_collection_resource_or_fail(
        resource_type, name=resource_name)['id']

    manageiq_policies = ManageIQPolicies(manageiq, resource_type, resource_id)

    if action == 'list':
        # return a list of current profiles for this object
        current_profiles = manageiq_policies.query_resource_profiles()
        res_args = dict(changed=False, profiles=current_profiles)
    else:
        # assign or unassign the profiles
        res_args = manageiq_policies.assign_or_unassign_profiles(
            policy_profiles, action)

    module.exit_json(**res_args)
Пример #2
0
def main():
    actions = {'present': 'assign', 'absent': 'unassign', 'list': 'list'}

    module = AnsibleModule(
        argument_spec=dict(
            manageiq_connection=dict(required=True,
                                     type='dict',
                                     options=manageiq_argument_spec()),
            tags=dict(type='list'),
            resource_name=dict(required=True, type='str'),
            resource_type=dict(required=True,
                               type='str',
                               choices=manageiq_entities().keys()),
            state=dict(required=False,
                       type='str',
                       choices=['present', 'absent', 'list'],
                       default='present'),
        ),
        required_if=[('state', 'present', ['tags']),
                     ('state', 'absent', ['tags'])],
    )

    tags = module.params['tags']
    resource_type_key = module.params['resource_type']
    resource_name = module.params['resource_name']
    state = module.params['state']

    # get the action and resource type
    action = actions[state]
    resource_type = manageiq_entities()[resource_type_key]

    manageiq = ManageIQ(module)

    # query resource id, fail if resource does not exist
    resource_id = query_resource_id(manageiq, resource_type, resource_name)

    manageiq_tags = ManageIQTags(manageiq, resource_type, resource_id)

    if action == 'list':
        # return a list of current tags for this object
        current_tags = manageiq_tags.query_resource_tags()
        res_args = dict(changed=False, tags=current_tags)
    else:
        # assign or unassign the tags
        res_args = manageiq_tags.assign_or_unassign_tags(tags, action)

    module.exit_json(**res_args)
Пример #3
0
def main():
    actions = {'present': 'assign', 'absent': 'unassign', 'list': 'list'}
    argument_spec = dict(
        policy_profiles=dict(type='list'),
        resource_name=dict(required=True, type='str'),
        resource_type=dict(required=True, type='str',
                           choices=manageiq_entities().keys()),
        state=dict(required=False, type='str',
                   choices=['present', 'absent', 'list'], default='present'),
    )
    # add the manageiq connection arguments to the arguments
    argument_spec.update(manageiq_argument_spec())

    module = AnsibleModule(
        argument_spec=argument_spec,
        required_if=[
            ('state', 'present', ['policy_profiles']),
            ('state', 'absent', ['policy_profiles'])
        ],
    )

    policy_profiles = module.params['policy_profiles']
    resource_type_key = module.params['resource_type']
    resource_name = module.params['resource_name']
    state = module.params['state']

    # get the action and resource type
    action = actions[state]
    resource_type = manageiq_entities()[resource_type_key]

    manageiq = ManageIQ(module)

    # query resource id, fail if resource does not exist
    resource_id = manageiq.find_collection_resource_or_fail(resource_type, name=resource_name)['id']

    manageiq_policies = ManageIQPolicies(manageiq, resource_type, resource_id)

    if action == 'list':
        # return a list of current profiles for this object
        current_profiles = manageiq_policies.query_resource_profiles()
        res_args = dict(changed=False, profiles=current_profiles)
    else:
        # assign or unassign the profiles
        res_args = manageiq_policies.assign_or_unassign_profiles(policy_profiles, action)

    module.exit_json(**res_args)