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
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])
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, 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
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
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)
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
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
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
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
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 {}