def __present(self, data): ethernet_network = self.__get_by_name(data) changed = False if "newName" in data: data["name"] = data.pop("newName") bandwidth = data.pop('bandwidth', None) if not ethernet_network: ethernet_network = self.oneview_client.ethernet_networks.create( data) changed = True msg = ETHERNET_NETWORK_CREATED else: merged_data = ethernet_network.copy() merged_data.update(data) if not resource_compare(ethernet_network, merged_data): ethernet_network = self.oneview_client.ethernet_networks.update( merged_data) changed = True msg = ETHERNET_NETWORK_UPDATED else: msg = ETHERNET_NETWORK_ALREADY_EXIST if bandwidth: if self.__update_connection_template(ethernet_network, bandwidth)[0]: if not changed: changed = True msg = ETHERNET_NETWORK_UPDATED return changed, msg, dict(ethernet_network=ethernet_network)
def __present(self, data, resource): changed = False msg = '' if "newName" in data: data["name"] = data.pop("newName") self.__replace_name_by_uris(data) if not resource: resource = self.oneview_client.logical_switch_groups.create(data) changed = True msg = LOGICAL_SWITCH_GROUP_CREATED else: merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.logical_switch_groups.update(merged_data) msg = LOGICAL_SWITCH_GROUP_UPDATED else: msg = LOGICAL_SWITCH_GROUP_ALREADY_UPDATED return changed, msg, dict(logical_switch_group=resource)
def __present(self, data, resource): changed = False msg = '' if not resource: resource = self.oneview_client.storage_volume_templates.create( data) changed = True msg = STORAGE_VOLUME_TEMPLATE_CREATED else: merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.storage_volume_templates.update( merged_data) msg = STORAGE_VOLUME_TEMPLATE_UPDATED else: msg = STORAGE_VOLUME_TEMPLATE_ALREADY_UPDATED return changed, msg, dict(storage_volume_template=resource)
def __present(self, data, resource): changed = False if "newName" in data: data["name"] = data.pop("newName") if not resource: resource = self.oneview_client.power_devices.add(data) changed = True msg = POWER_DEVICE_ADDED else: merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.power_devices.update( merged_data) msg = POWER_DEVICE_UPDATED else: msg = POWER_DEVICE_ALREADY_PRESENT return changed, msg, dict(power_device=resource)
def __present(self, data): resource = self.__get_resource(data) changed = False msg = '' if not resource: if 'credentials' not in data: raise Exception(STORAGE_SYSTEM_CREDENTIALS_MANDATORY) resource = self.oneview_client.storage_systems.add(data['credentials']) changed = True msg = STORAGE_SYSTEM_ADDED merged_data = resource.copy() merged_data.update(data) if 'credentials' in merged_data and 'password' in merged_data['credentials']: # remove password, it cannot be used in comparison del merged_data['credentials']['password'] if not resource_compare(resource, merged_data): # update the resource resource = self.oneview_client.storage_systems.update(merged_data) if not changed: changed = True msg = STORAGE_SYSTEM_UPDATED else: msg = STORAGE_SYSTEM_ALREADY_UPDATED return changed, msg, dict(storage_system=resource)
def __present(self, data): ethernet_network = self.__get_by_name(data) changed = False if "newName" in data: data["name"] = data.pop("newName") bandwidth = data.pop('bandwidth', None) if not ethernet_network: ethernet_network = self.oneview_client.ethernet_networks.create(data) changed = True msg = ETHERNET_NETWORK_CREATED else: merged_data = ethernet_network.copy() merged_data.update(data) if not resource_compare(ethernet_network, merged_data): ethernet_network = self.oneview_client.ethernet_networks.update(merged_data) changed = True msg = ETHERNET_NETWORK_UPDATED else: msg = ETHERNET_NETWORK_ALREADY_EXIST if bandwidth: if self.__update_connection_template(ethernet_network, bandwidth)[0]: if not changed: changed = True msg = ETHERNET_NETWORK_UPDATED return changed, msg, dict(ethernet_network=ethernet_network)
def __present(self, data, resource): changed = False msg = '' if "newName" in data: data["name"] = data.pop("newName") self.__replace_name_by_uris(data) if not resource: resource = self.oneview_client.datacenters.add(data) changed = True msg = DATACENTER_ADDED else: merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.datacenters.update(merged_data) msg = DATACENTER_UPDATED else: msg = DATACENTER_ALREADY_UPDATED return changed, msg, dict(datacenter=resource)
def __update_settings(self, resource, data): self.__validate_settings(data) ethernet_settings_merged = self.__merge_network_settings('ethernetSettings', resource, data) fcoe_settings_merged = self.__merge_network_settings('fcoeSettings', resource, data) if resource_compare(resource['ethernetSettings'], ethernet_settings_merged) and \ resource_compare(resource['fcoeSettings'], fcoe_settings_merged): self.module.exit_json(changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED) else: settings = { 'ethernetSettings': ethernet_settings_merged, 'fcoeSettings': fcoe_settings_merged } li = self.oneview_client.logical_interconnects.update_settings(resource['uri'], settings) return True, LOGICAL_INTERCONNECT_SETTINGS_UPDATED, dict(logical_interconnect=li)
def __update(self, data, existent_resource): if 'newName' in data: data['name'] = data.pop('newName') resource_to_update = existent_resource.copy() resource_to_update.update(data) if resource_compare(existent_resource, resource_to_update): return False, UPLINK_SET_ALREADY_EXIST, existent_resource else: updated_uplink = self.oneview_client.uplink_sets.update(resource_to_update) return True, UPLINK_SET_UPDATED, updated_uplink
def __update_ethernet_settings(self, resource, data): self.__validate_options('ethernetSettings', data) ethernet_settings_merged = resource['ethernetSettings'].copy() ethernet_settings_merged.update(data['ethernetSettings']) if resource_compare(resource['ethernetSettings'], ethernet_settings_merged): self.module.exit_json(changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED) else: li = self.oneview_client.logical_interconnects.update_ethernet_settings(resource['uri'], ethernet_settings_merged) return True, LOGICAL_INTERCONNECT_ETH_SETTINGS_UPDATED, dict(logical_interconnect=li)
def __update(self, data, resource): if "newName" in data: data['name'] = data.pop('newName') merged_data = resource.copy() merged_data.update(data) is_equal = resource_compare(resource, merged_data) if not is_equal: return True, UNMANAGED_DEVICE_UPDATED, self.resource_client.update(merged_data) else: return False, NOTHING_TO_DO, resource
def __update_port_monitor(self, uri, data): self.__validate_options('portMonitor', data) monitor_config = self.__get_port_monitor_configuration(uri) monitor_config_merged = self.__merge_options(data['portMonitor'], monitor_config) if resource_compare(monitor_config_merged, monitor_config): return False, LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED, None else: monitor_config_updated = self.oneview_client.logical_interconnects.update_port_monitor( uri, monitor_config_merged) result = dict(port_monitor=monitor_config_updated) return True, LOGICAL_INTERCONNECT_PORT_MONITOR_UPDATED, result
def __update(self, data, resource): merged_data = resource.copy() merged_data.update(data) changed = False msg = RACK_ALREADY_EXIST if not resource_compare(resource, merged_data): resource = self.oneview_client.racks.update(merged_data) changed = True msg = RACK_UPDATED return changed, msg, resource
def __update(self, data, existent_resource): if 'newName' in data: data['name'] = data.pop('newName') resource_to_update = existent_resource.copy() resource_to_update.update(data) if resource_compare(existent_resource, resource_to_update): return False, UPLINK_SET_ALREADY_EXIST, existent_resource else: updated_uplink = self.oneview_client.uplink_sets.update( resource_to_update) return True, UPLINK_SET_UPDATED, updated_uplink
def __update(self, data, resource): if "newName" in data: data['name'] = data.pop('newName') merged_data = resource.copy() merged_data.update(data) is_equal = resource_compare(resource, merged_data) if not is_equal: return True, UNMANAGED_DEVICE_UPDATED, self.resource_client.update( merged_data) else: return False, NOTHING_TO_DO, resource
def __update_snmp_configuration(self, uri, data): self.__validate_options('snmpConfiguration', data) snmp_config = self.__get_snmp_configuration(uri) snmp_config_merged = self.__merge_options(data['snmpConfiguration'], snmp_config) if resource_compare(snmp_config_merged, snmp_config): return False, LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED, None else: snmp_config_updated = self.oneview_client.logical_interconnects.update_snmp_configuration( uri, snmp_config_merged) return True, LOGICAL_INTERCONNECT_SNMP_UPDATED, dict(snmp_configuration=snmp_config_updated)
def __update_connection_template(self, ethernet_network, bandwidth): if 'connectionTemplateUri' not in ethernet_network: return False, None connection_template = self.oneview_client.connection_templates.get(ethernet_network['connectionTemplateUri']) merged_data = connection_template.copy() merged_data.update({'bandwidth': bandwidth}) if not resource_compare(connection_template, merged_data): connection_template = self.oneview_client.connection_templates.update(merged_data) return True, connection_template else: return False, None
def __update(self, data, template): resource = template.copy() resource.update(data) equal = resource_compare(template, resource) if equal: msg = TEMPLATE_ALREADY_EXIST else: resource = self.resource_client.update(resource=resource, id_or_uri=resource["uri"]) msg = TEMPLATE_UPDATED changed = not equal return changed, msg, resource
def __update_qos_configuration(self, uri, data): self.__validate_options('qosConfiguration', data) qos_config = self.__get_qos_aggregated_configuration(uri) qos_config_merged = self.__merge_options(data['qosConfiguration'], qos_config) if resource_compare(qos_config_merged, qos_config): self.module.exit_json(changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED) else: qos_config_updated = self.oneview_client.logical_interconnects.update_qos_aggregated_configuration( uri, qos_config_merged) return True, LOGICAL_INTERCONNECT_QOS_UPDATED, dict(qos_configuration=qos_config_updated)
def __update(self, new_data, existent_resource): merged_data = existent_resource.copy() merged_data.update(new_data) changed = False if "configurationScript" in merged_data: changed = self.__update_script(merged_data) if not resource_compare(existent_resource, merged_data): # update resource changed = True existent_resource = self.oneview_client.enclosure_groups.update(merged_data) self.module.exit_json(changed=changed, msg=ENCLOSURE_GROUP_UPDATED if changed else ENCLOSURE_GROUP_ALREADY_EXIST, ansible_facts=dict(enclosure_group=existent_resource))
def __update(self, new_data, existent_resource): merged_data = existent_resource.copy() merged_data.update(new_data) if resource_compare(existent_resource, merged_data): self.module.exit_json(changed=False, msg=FCOE_NETWORK_ALREADY_EXIST, ansible_facts=dict(fcoe_network=existent_resource)) else: updated_fcoe_network = self.oneview_client.fcoe_networks.update(merged_data) self.module.exit_json(changed=True, msg=FCOE_NETWORK_UPDATED, ansible_facts=dict(fcoe_network=updated_fcoe_network))
def __update(self, data, resource): merged_data = resource.copy() merged_data.update(data) changed = False if resource_compare(resource, merged_data): changed = False msg = MANAGED_SAN_NO_CHANGES_PROVIDED else: changed = True resource = self.oneview_client.managed_sans.update(resource['uri'], data) msg = MANAGED_SAN_UPDATED return dict(changed=changed, msg=msg, ansible_facts=dict(managed_san=resource))
def __update_connection_template(self, ethernet_network, bandwidth): if 'connectionTemplateUri' not in ethernet_network: return False, None connection_template = self.oneview_client.connection_templates.get( ethernet_network['connectionTemplateUri']) merged_data = connection_template.copy() merged_data.update({'bandwidth': bandwidth}) if not resource_compare(connection_template, merged_data): connection_template = self.oneview_client.connection_templates.update( merged_data) return True, connection_template else: return False, None
def __update(self, data, resource): merged_data = resource.copy() merged_data.update(data) changed = False if resource_compare(resource, merged_data): changed = False msg = MANAGED_SAN_NO_CHANGES_PROVIDED else: changed = True resource = self.oneview_client.managed_sans.update( resource['uri'], data) msg = MANAGED_SAN_UPDATED return dict(changed=changed, msg=msg, ansible_facts=dict(managed_san=resource))
def __update(self, new_data, existent_resource): if "newName" in new_data: new_data["name"] = new_data["newName"] del new_data["newName"] merged_data = existent_resource.copy() merged_data.update(new_data) if not resource_compare(existent_resource, merged_data): # update resource existent_resource = self.oneview_client.logical_enclosures.update( merged_data) return True, LOGICAL_ENCLOSURE_UPDATED, dict( logical_enclosure=existent_resource) else: return False, LOGICAL_ENCLOSURE_ALREADY_UPDATED, dict( logical_enclosure=existent_resource)
def __update(self, data, resource): merged_data = resource.copy() merged_data.update(data) if resource_compare(resource, merged_data): self.module.exit_json(changed=False, msg=FC_NETWORK_ALREADY_EXIST, ansible_facts=dict(fc_network=resource)) else: updated_fc_network = self.oneview_client.fc_networks.update( merged_data) self.module.exit_json( changed=True, msg=FC_NETWORK_UPDATED, ansible_facts=dict(fc_network=updated_fc_network))
def __update(self, new_data, existent_resource): merged_data = existent_resource.copy() merged_data.update(new_data) changed = False if "configurationScript" in merged_data: changed = self.__update_script(merged_data) if not resource_compare(existent_resource, merged_data): # update resource changed = True existent_resource = self.oneview_client.enclosure_groups.update( merged_data) self.module.exit_json( changed=changed, msg=ENCLOSURE_GROUP_UPDATED if changed else ENCLOSURE_GROUP_ALREADY_EXIST, ansible_facts=dict(enclosure_group=existent_resource))
def __update(self, data, resource): merged_data = resource.copy() merged_data.update(data) if resource_compare(resource, merged_data): self.module.exit_json( changed=False, msg=LIG_ALREADY_EXIST, ansible_facts=dict(logical_interconnect_group=resource)) else: updated_lig = self.oneview_client.logical_interconnect_groups.update( merged_data) self.module.exit_json( changed=True, msg=LIG_UPDATED, ansible_facts=dict(logical_interconnect_group=updated_lig))
def __update(self, provider_uri, resource, data): merged_data = resource.copy() merged_data.update(data) # If connectionInfo is not provided, its removed because the password is required for update. if 'connectionInfo' not in data: merged_data.pop('connectionInfo') if resource_compare(resource, merged_data): self.module.exit_json(changed=False, msg=SAN_MANAGER_ALREADY_EXIST, ansible_facts=dict(san_manager=resource)) else: san_manager = self.oneview_client.san_managers.update(resource=merged_data, id_or_uri=resource['uri']) self.module.exit_json(changed=True, msg=SAN_MANAGER_UPDATED, ansible_facts=dict(san_manager=san_manager))
def __update(self, data, resource): if 'newName' in data: if self.__get_by_name(data['newName']): raise Exception(NETWORK_SET_NEW_NAME_INVALID) data['name'] = data.pop('newName') merged_data = resource.copy() merged_data.update(data) if resource_compare(resource, merged_data): self.module.exit_json(changed=False, msg=NETWORK_SET_ALREADY_EXIST, ansible_facts=dict(network_set=resource)) else: updated_network_set = self.oneview_client.network_sets.update(merged_data) self.module.exit_json(changed=True, msg=NETWORK_SET_UPDATED, ansible_facts=dict(network_set=updated_network_set))
def __present(self, data, resource): server_template_name = data.pop('server_template', '') server_hardware_name = data.pop('server_hardware', '') server_template = None changed = False created = False if server_hardware_name: selected_server_hardware = self.__get_server_hardware_by_name(server_hardware_name) if not selected_server_hardware: raise ValueError(HARDWARE_NOT_FOUND.format(server_hardware_name)) data['serverHardwareUri'] = selected_server_hardware['uri'] if server_template_name: server_template = self.oneview_client.server_profile_templates.get_by_name(server_template_name) if not server_template: raise ValueError(TEMPLATE_NOT_FOUND.format(server_template_name)) data['serverProfileTemplateUri'] = server_template['uri'] elif data.get('serverProfileTemplateUri'): server_template = self.oneview_client.server_profile_templates.get(data['serverProfileTemplateUri']) if not resource: resource = self.__create_profile(data, server_template) changed = True created = True msg = SERVER_PROFILE_CREATED else: merged_data = deepcopy(resource) merged_data.update(data) if not resource_compare(resource, merged_data): resource = self.__update_server_profile(merged_data) changed = True msg = SERVER_PROFILE_UPDATED else: msg = SERVER_ALREADY_UPDATED return created, changed, msg, resource
def __update(self, data, resource): if 'newName' in data: if self.__get_by_name(data['newName']): raise Exception(NETWORK_SET_NEW_NAME_INVALID) data['name'] = data.pop('newName') merged_data = resource.copy() merged_data.update(data) if resource_compare(resource, merged_data): self.module.exit_json(changed=False, msg=NETWORK_SET_ALREADY_EXIST, ansible_facts=dict(network_set=resource)) else: updated_network_set = self.oneview_client.network_sets.update( merged_data) self.module.exit_json( changed=True, msg=NETWORK_SET_UPDATED, ansible_facts=dict(network_set=updated_network_set))
def __present(self, data, resource): changed = False msg = '' if not resource: raise Exception(CONNECTION_TEMPLATE_NOT_FOUND) else: if 'newName' in data: data['name'] = data.pop('newName') merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.connection_templates.update( merged_data) msg = CONNECTION_TEMPLATE_UPDATED else: msg = CONNECTION_TEMPLATE_ALREADY_UPDATED return changed, msg, dict(connection_template=resource)
def __present(self, data, resource): changed = False if "newName" in data: data["name"] = data.pop("newName") if not resource: resource = self.oneview_client.power_devices.add(data) changed = True msg = POWER_DEVICE_ADDED else: merged_data = resource.copy() merged_data.update(data) if not resource_compare(resource, merged_data): # update resource changed = True resource = self.oneview_client.power_devices.update(merged_data) msg = POWER_DEVICE_UPDATED else: msg = POWER_DEVICE_ALREADY_PRESENT return changed, msg, dict(power_device=resource)