def run(self):
        try:
            ansible_facts, options = {}, None

            if self.module.params.get('options'):
                options = transform_list_to_dict(self.module.params.get('options'))

            if self.module.params.get('name'):
                server_hardwares = self.oneview_client.server_hardware.get_by("name", self.module.params['name'])

                if self.module.params.get('options') and server_hardwares:
                    ansible_facts = self.gather_option_facts(options, server_hardwares[0])

            else:
                params = self.module.params.get('params') or {}
                server_hardwares = self.oneview_client.server_hardware.get_all(**params)

                if options and options.get('firmwares'):
                    ansible_facts['server_hardware_firmwares'] = self.get_all_firmwares(options)

            ansible_facts["server_hardwares"] = server_hardwares

            self.module.exit_json(changed=False,
                                  ansible_facts=ansible_facts)

        except HPOneViewException as exception:
            self.module.fail_json(msg='; '.join(str(e) for e in exception.args))
    def __get_options(self, interconnects, facts):

        options = transform_list_to_dict(self.module.params['options'])

        interconnect_uri = interconnects[0]['uri']

        if options.get('nameServers'):
            name_servers = self.oneview_client.interconnects.get_name_servers(
                interconnect_uri)
            facts['interconnect_name_servers'] = name_servers

        if options.get('statistics'):
            facts[
                'interconnect_statistics'] = self.oneview_client.interconnects.get_statistics(
                    interconnect_uri)

        if options.get('portStatistics'):
            port_name = options['portStatistics']
            port_statistics = self.oneview_client.interconnects.get_statistics(
                interconnect_uri, port_name)
            facts['interconnect_port_statistics'] = port_statistics

        if options.get('subPortStatistics'):
            facts['interconnect_subport_statistics'] = None
            sub_options = options['subPortStatistics']
            if type(sub_options) is dict and sub_options.get(
                    'portName') and sub_options.get('subportNumber'):
                facts[
                    'interconnect_subport_statistics'] = self.oneview_client.interconnects.get_subport_statistics(
                        interconnect_uri, sub_options['portName'],
                        sub_options['subportNumber'])
    def run(self):
        try:
            facts = {}
            client = self.oneview_client.storage_volume_attachments
            params = self.module.params
            options = {}

            if params.get('options'):
                options = transform_list_to_dict(params['options'])

            param_specific_attachment = [
                entry for entry in SPECIFIC_ATTACHMENT_OPTIONS
                if params.get(entry)
            ]

            if param_specific_attachment:
                attachments = self.__get_specific_attachment(params)
                self.__get_paths(attachments, options, facts)
            else:
                attachments = client.get_all()

            facts['storage_volume_attachments'] = attachments

            if options.get('extraUnmanagedStorageVolumes'):
                volumes_options = self.__get_sub_options(
                    options['extraUnmanagedStorageVolumes'])
                facts[
                    'extra_unmanaged_storage_volumes'] = client.get_extra_unmanaged_storage_volumes(
                        **volumes_options)

            self.module.exit_json(changed=False, ansible_facts=facts)

        except Exception as exception:
            self.module.fail_json(msg='; '.join(
                str(e) for e in exception.args))
    def gather_option_facts(self, options, server_hardware):

        options = transform_list_to_dict(options)

        srv_hw_client = self.oneview_client.server_hardware
        ansible_facts = {}

        if options.get('bios'):
            ansible_facts['server_hardware_bios'] = srv_hw_client.get_bios(
                server_hardware['uri'])
        if options.get('environmentalConfig'):
            ansible_facts[
                'server_hardware_env_config'] = srv_hw_client.get_environmental_configuration(
                    server_hardware['uri'])
        if options.get('javaRemoteConsoleUrl'):
            ansible_facts[
                'server_hardware_java_remote_console_url'] = srv_hw_client.get_java_remote_console_url(
                    server_hardware['uri'])
        if options.get('iloSsoUrl'):
            ansible_facts[
                'server_hardware_ilo_sso_url'] = srv_hw_client.get_ilo_sso_url(
                    server_hardware['uri'])
        if options.get('remoteConsoleUrl'):
            ansible_facts[
                'server_hardware_remote_console_url'] = srv_hw_client.get_remote_console_url(
                    server_hardware['uri'])
        if options.get('utilization'):
            ansible_facts[
                'server_hardware_utilization'] = self.get_utilization(
                    server_hardware, options['utilization'])

        return ansible_facts
Exemple #5
0
    def run(self):
        try:
            name = self.module.params['name']
            options = self.module.params.get('options')
            facts = {}

            if name:
                drive_enclosures = self.oneview_client.drive_enclosures.get_by('name', name)
                if drive_enclosures:
                    drive_enclosures_uri = drive_enclosures[0]['uri']
                    if options:
                        options = transform_list_to_dict(options)
                        if options.get('portMap'):
                            facts['drive_enclosure_port_map'] = \
                                self.oneview_client.drive_enclosures.get_port_map(drive_enclosures_uri)
            else:
                params = self.module.params.get('params') or {}

                drive_enclosures = self.oneview_client.drive_enclosures.get_all(**params)

            facts['drive_enclosures'] = drive_enclosures

            self.module.exit_json(changed=False, ansible_facts=facts)

        except HPOneViewException as exception:
            self.module.fail_json(msg=exception.args[0])
Exemple #6
0
    def __gather_optional_facts(self, options, logical_enclosure):
        options = transform_list_to_dict(options)

        logical_enclosure_client = self.oneview_client.logical_enclosures
        ansible_facts = {}

        if options.get('script'):
            ansible_facts['logical_enclosure_script'] = logical_enclosure_client.get_script(logical_enclosure['uri'])

        return ansible_facts
    def __gather_optional_facts(self, options, logical_enclosure):
        options = transform_list_to_dict(options)

        logical_enclosure_client = self.oneview_client.logical_enclosures
        ansible_facts = {}

        if options.get('script'):
            ansible_facts['logical_enclosure_script'] = logical_enclosure_client.get_script(logical_enclosure['uri'])

        return ansible_facts
Exemple #8
0
    def __gather_optional_facts(self, options, sas_logical_jbod):
        options = transform_list_to_dict(options)
        ansible_facts = {}
        sas_logical_jbods_client = self.oneview_client.sas_logical_jbods

        if options.get('drives'):
            ansible_facts[
                'sas_logical_jbod_drives'] = sas_logical_jbods_client.get_drives(
                    sas_logical_jbod['uri'])

        return ansible_facts
    def __gather_optional_facts(self, options, artifact_bundle):
        options = transform_list_to_dict(options)

        ansible_facts = {}

        if options.get('allBackups'):
            ansible_facts['artifact_bundle_backups'] = self.__get_backups()
        if options.get('backupForAnArtifactBundle'):
            ansible_facts['backup_for_artifact_bundle'] = self.__get_backup_for_an_artifact_bundle(artifact_bundle)

        return ansible_facts
Exemple #10
0
    def __gather_option_facts(self, options, resource):
        ansible_facts = {}

        options = transform_list_to_dict(options)

        if options.get('firmware'):
            ansible_facts[
                'sas_logical_interconnect_firmware'] = self.resource_client.get_firmware(
                    resource['uri'])

        return ansible_facts
Exemple #11
0
    def __gather_optional_facts(self, options, ethernet_network):
        options = transform_list_to_dict(options)

        ansible_facts = {}

        if options.get('associatedProfiles'):
            ansible_facts['enet_associated_profiles'] = self.__get_associated_profiles(ethernet_network)
        if options.get('associatedUplinkGroups'):
            ansible_facts['enet_associated_uplink_groups'] = self.__get_associated_uplink_groups(ethernet_network)

        return ansible_facts
    def __get_options(self, facts, storage_system, is_specific_storage_system):

        if self.module.params.get('options'):
            options = transform_list_to_dict(self.module.params['options'])

            if options.get('hostTypes'):
                facts['storage_system_host_types'] = self.oneview_client.storage_systems.get_host_types()

            if storage_system and is_specific_storage_system:
                storage_uri = storage_system['uri']
                if options.get('storagePools'):
                    facts['storage_system_pools'] = self.oneview_client.storage_systems.get_storage_pools(storage_uri)
Exemple #13
0
    def __gather_optional_facts(self, options, fabric):
        options = transform_list_to_dict(options)

        fabric_client = self.oneview_client.fabrics
        ansible_facts = {}

        if options.get('reservedVlanRange'):
            ansible_facts[
                'fabric_reserved_vlan_range'] = fabric_client.get_reserved_vlan_range(
                    fabric['uri'])

        return ansible_facts
    def gather_option_facts(self, options, power_device):

        options = transform_list_to_dict(options)

        srv_hw_client = self.oneview_client.power_devices
        ansible_facts = {}

        if options.get("powerState"):
            ansible_facts["power_device_power_state"] = srv_hw_client.get_power_state(power_device["uri"])
        if options.get("uidState"):
            ansible_facts["power_device_uid_state"] = srv_hw_client.get_uid_state(power_device["uri"])
        if options.get("utilization"):
            ansible_facts["power_device_utilization"] = self.get_utilization(power_device, options["utilization"])

        return ansible_facts
    def __get_options(self, facts, storage_system, is_specific_storage_system):

        if self.module.params.get('options'):
            options = transform_list_to_dict(self.module.params['options'])

            if options.get('hostTypes'):
                facts[
                    'storage_system_host_types'] = self.oneview_client.storage_systems.get_host_types(
                    )

            if storage_system and is_specific_storage_system:
                storage_uri = storage_system['uri']
                if options.get('storagePools'):
                    facts[
                        'storage_system_pools'] = self.oneview_client.storage_systems.get_storage_pools(
                            storage_uri)
    def __gather_optional_facts(self, options, enclosure):

        options = transform_list_to_dict(options)

        enclosure_client = self.oneview_client.enclosures
        ansible_facts = {}

        if options.get('script'):
            ansible_facts['enclosure_script'] = enclosure_client.get_script(enclosure['uri'])
        if options.get('environmentalConfiguration'):
            env_config = enclosure_client.get_environmental_configuration(enclosure['uri'])
            ansible_facts['enclosure_environmental_configuration'] = env_config
        if options.get('utilization'):
            ansible_facts['enclosure_utilization'] = self.__get_utilization(enclosure, options['utilization'])

        return ansible_facts
Exemple #17
0
    def _gather_option_facts(self, options, resource):
        options = transform_list_to_dict(options)

        ansible_facts = {}
        custom_attributes = []

        nic_names = []
        expected_attr_for_nic = {
            "connectionid": "",
            "dhcp": False,
            "ipv4disable": False,
            "networkuri": "",
            "constraint": "auto",
        }

        # It's just a cache to avoid iterate custom_attributes
        names_added_to_ca = {}

        if options.get('osCustomAttributesForServerProfile'):
            for item in resource['additionalParameters']:
                if item.get("caType") == "nic":
                    nic_names.append(item.get('name'))
                    continue

                if item.get("caEditable"):
                    custom_attributes.append({
                        "name": item.get('name'),
                        "value": item.get('value')
                    })
                    names_added_to_ca[item.get('name')] = item.get('value')

        for nic_name in nic_names:
            expected_attr_for_nic.pop("parameters", None)
            for ckey, cvalue in expected_attr_for_nic.iteritems():

                if ckey not in names_added_to_ca:
                    custom_attributes.append({
                        "name": nic_name + "." + ckey,
                        "value": cvalue
                    })

        ansible_facts['os_deployment_plan_custom_attributes'] = {
            "os_custom_attributes_for_server_profile": custom_attributes
        }

        return ansible_facts
    def __gather_option_facts(self, options, profile_uri):

        options = transform_list_to_dict(options)

        client = self.oneview_client.server_profiles
        facts = {}

        if profile_uri:
            if options.get('messages'):
                facts['server_profile_messages'] = client.get_messages(profile_uri)

            if options.get('transformation'):
                transform_options = self.__get_sub_options(options['transformation'])
                facts['server_profile_transformation'] = client.get_transformation(profile_uri, **transform_options)

            if options.get('compliancePreview'):
                facts['server_profile_compliance_preview'] = client.get_compliance_preview(profile_uri)

        if options.get('schema'):
            facts['server_profile_schema'] = client.get_schema()

        if options.get('profilePorts'):
            ports_options = self.__get_sub_options(options['profilePorts'])
            facts['server_profile_profile_ports'] = client.get_profile_ports(**ports_options)

        if options.get('availableNetworks'):
            enets_options = self.__get_sub_options(options['availableNetworks'])
            facts['server_profile_available_networks'] = client.get_available_networks(**enets_options)

        if options.get('availableServers'):
            servers_options = self.__get_sub_options(options['availableServers'])
            facts['server_profile_available_servers'] = client.get_available_servers(**servers_options)

        if options.get('availableStorageSystem'):
            storage_options = self.__get_sub_options(options['availableStorageSystem'])
            facts['server_profile_available_storage_system'] = client.get_available_storage_system(**storage_options)

        if options.get('availableStorageSystems'):
            storage_options = self.__get_sub_options(options['availableStorageSystems'])
            facts['server_profile_available_storage_systems'] = client.get_available_storage_systems(**storage_options)

        if options.get('availableTargets'):
            target_options = self.__get_sub_options(options['availableTargets'])
            facts['server_profile_available_targets'] = client.get_available_targets(**target_options)

        return facts
Exemple #19
0
    def __gather_optional_facts(self, options, enclosure):

        options = transform_list_to_dict(options)

        enclosure_client = self.oneview_client.enclosures
        ansible_facts = {}

        if options.get('script'):
            ansible_facts['enclosure_script'] = enclosure_client.get_script(
                enclosure['uri'])
        if options.get('environmentalConfiguration'):
            env_config = enclosure_client.get_environmental_configuration(
                enclosure['uri'])
            ansible_facts['enclosure_environmental_configuration'] = env_config
        if options.get('utilization'):
            ansible_facts['enclosure_utilization'] = self.__get_utilization(
                enclosure, options['utilization'])

        return ansible_facts
Exemple #20
0
    def __gather_optional_facts(self, options):

        options = transform_list_to_dict(options)

        facts = {}

        if options.get('networks'):
            facts[
                'os_deployment_server_networks'] = self.oneview_client.os_deployment_servers.get_networks(
                )
        if options.get('appliances'):
            facts[
                'os_deployment_server_appliances'] = self.oneview_client.os_deployment_servers.get_appliances(
                )
        if options.get('appliance'):
            facts[
                'os_deployment_server_appliance'] = self.oneview_client.os_deployment_servers.get_appliance_by_name(
                    options.get('appliance'))

        return facts
    def gather_option_facts(self, options, power_device):

        options = transform_list_to_dict(options)

        srv_hw_client = self.oneview_client.power_devices
        ansible_facts = {}

        if options.get('powerState'):
            ansible_facts[
                'power_device_power_state'] = srv_hw_client.get_power_state(
                    power_device['uri'])
        if options.get('uidState'):
            ansible_facts[
                'power_device_uid_state'] = srv_hw_client.get_uid_state(
                    power_device['uri'])
        if options.get('utilization'):
            ansible_facts['power_device_utilization'] = self.get_utilization(
                power_device, options['utilization'])

        return ansible_facts
    def __get_by_name(self, name):
        template = self.resource_client.get_by_name(name=name)
        if not template:
            return dict(server_profile_templates=[])

        facts = dict(server_profile_templates=[template])

        options = self.module.params.get("options")

        if options:
            options = transform_list_to_dict(options)

            if "new_profile" in options:
                facts["new_profile"] = self.resource_client.get_new_profile(id_or_uri=template["uri"])

            if "transformation" in options:
                tranformation_data = options.get('transformation')
                facts["transformation"] = self.resource_client.get_transformation(
                    id_or_uri=template["uri"],
                    **tranformation_data
                )

        return facts
    def run(self):
        try:
            facts = dict()

            name = self.module.params['name']
            options = self.module.params.get('options') or []

            if name:
                facts['managed_sans'] = [
                    self.resource_client.get_by_name(name)
                ]

                if facts['managed_sans'] and 'endpoints' in options:
                    managed_san = facts['managed_sans'][0]
                    if managed_san:
                        environmental_configuration = self.resource_client.get_endpoints(
                            managed_san['uri'])
                        facts[
                            'managed_san_endpoints'] = environmental_configuration

            else:
                params = self.module.params.get('params') or {}
                facts['managed_sans'] = self.resource_client.get_all(**params)

            if options:
                option = transform_list_to_dict(options)
                if option.get('wwn'):
                    wwn = self.__get_sub_options(option['wwn'])
                    facts[
                        'wwn_associated_sans'] = self.resource_client.get_wwn(
                            wwn['locate'])

            self.module.exit_json(changed=False, ansible_facts=facts)

        except HPOneViewException as exception:
            self.module.fail_json(msg='; '.join(
                str(e) for e in exception.args))
    def __get_options(self, interconnects, facts):

        options = transform_list_to_dict(self.module.params['options'])

        interconnect_uri = interconnects[0]['uri']

        if options.get('nameServers'):
            name_servers = self.oneview_client.interconnects.get_name_servers(interconnect_uri)
            facts['interconnect_name_servers'] = name_servers

        if options.get('statistics'):
            facts['interconnect_statistics'] = self.oneview_client.interconnects.get_statistics(interconnect_uri)

        if options.get('portStatistics'):
            port_name = options['portStatistics']
            port_statistics = self.oneview_client.interconnects.get_statistics(interconnect_uri, port_name)
            facts['interconnect_port_statistics'] = port_statistics

        if options.get('subPortStatistics'):
            facts['interconnect_subport_statistics'] = None
            sub_options = options['subPortStatistics']
            if type(sub_options) is dict and sub_options.get('portName') and sub_options.get('subportNumber'):
                facts['interconnect_subport_statistics'] = self.oneview_client.interconnects.get_subport_statistics(
                    interconnect_uri, sub_options['portName'], sub_options['subportNumber'])
    def gather_option_facts(self, options, server_hardware):

        options = transform_list_to_dict(options)

        srv_hw_client = self.oneview_client.server_hardware
        ansible_facts = {}

        if options.get('bios'):
            ansible_facts['server_hardware_bios'] = srv_hw_client.get_bios(server_hardware['uri'])
        if options.get('environmentalConfig'):
            ansible_facts['server_hardware_env_config'] = srv_hw_client.get_environmental_configuration(
                server_hardware['uri'])
        if options.get('javaRemoteConsoleUrl'):
            ansible_facts['server_hardware_java_remote_console_url'] = srv_hw_client.get_java_remote_console_url(
                server_hardware['uri'])
        if options.get('iloSsoUrl'):
            ansible_facts['server_hardware_ilo_sso_url'] = srv_hw_client.get_ilo_sso_url(server_hardware['uri'])
        if options.get('remoteConsoleUrl'):
            ansible_facts['server_hardware_remote_console_url'] = srv_hw_client.get_remote_console_url(
                server_hardware['uri'])
        if options.get('utilization'):
            ansible_facts['server_hardware_utilization'] = self.get_utilization(server_hardware, options['utilization'])

        return ansible_facts
Exemple #26
0
    def __gather_option_facts(self, options, profile_uri):

        options = transform_list_to_dict(options)

        client = self.oneview_client.server_profiles
        facts = {}

        if profile_uri:
            if options.get('messages'):
                facts['server_profile_messages'] = client.get_messages(
                    profile_uri)

            if options.get('transformation'):
                transform_options = self.__get_sub_options(
                    options['transformation'])
                facts[
                    'server_profile_transformation'] = client.get_transformation(
                        profile_uri, **transform_options)

            if options.get('compliancePreview'):
                facts[
                    'server_profile_compliance_preview'] = client.get_compliance_preview(
                        profile_uri)

        if options.get('schema'):
            facts['server_profile_schema'] = client.get_schema()

        if options.get('profilePorts'):
            ports_options = self.__get_sub_options(options['profilePorts'])
            facts['server_profile_profile_ports'] = client.get_profile_ports(
                **ports_options)

        if options.get('availableNetworks'):
            enets_options = self.__get_sub_options(
                options['availableNetworks'])
            facts[
                'server_profile_available_networks'] = client.get_available_networks(
                    **enets_options)

        if options.get('availableServers'):
            servers_options = self.__get_sub_options(
                options['availableServers'])
            facts[
                'server_profile_available_servers'] = client.get_available_servers(
                    **servers_options)

        if options.get('availableStorageSystem'):
            storage_options = self.__get_sub_options(
                options['availableStorageSystem'])
            facts[
                'server_profile_available_storage_system'] = client.get_available_storage_system(
                    **storage_options)

        if options.get('availableStorageSystems'):
            storage_options = self.__get_sub_options(
                options['availableStorageSystems'])
            facts[
                'server_profile_available_storage_systems'] = client.get_available_storage_systems(
                    **storage_options)

        if options.get('availableTargets'):
            target_options = self.__get_sub_options(
                options['availableTargets'])
            facts[
                'server_profile_available_targets'] = client.get_available_targets(
                    **target_options)

        return facts
 def __get_options(self):
     if self.module.params.get('options'):
         return transform_list_to_dict(self.module.params['options'])
     else:
         return {}
 def __get_options(self):
     if self.module.params.get('options'):
         return transform_list_to_dict(self.module.params['options'])
     else:
         return {}