def update_export_set(file_storage_client, module): result = dict(changed=False, export_set="") try: result = oci_utils.check_and_update_resource( resource_type="export_set", get_fn=file_storage_client.get_export_set, kwargs_get={"export_set_id": module.params["export_set_id"]}, update_fn=file_storage_client.update_export_set, client=file_storage_client, primitive_params_update=["export_set_id"], kwargs_non_primitive_update={ UpdateExportSetDetails: "update_export_set_details" }, module=module, update_attributes=UpdateExportSetDetails().attribute_map, ) except ServiceError as ex: get_logger().error("Unable to update Export Set due to: %s", ex.message) module.fail_json(msg=ex.message) except ClientError as ex: get_logger().error("Unable to update Export Set due to: %s", str(ex)) module.fail_json(msg=str(ex)) return result
def update_public_ip(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="public_ip", client=virtual_network_client, get_fn=virtual_network_client.get_public_ip, kwargs_get={"public_ip_id": module.params["public_ip_id"]}, update_fn=virtual_network_client.update_public_ip, primitive_params_update=["public_ip_id"], kwargs_non_primitive_update={ UpdatePublicIpDetails: "update_public_ip_details" }, module=module, update_attributes=UpdatePublicIpDetails().attribute_map.keys(), ) # Since assigning, moving, and unassigning a reserved public IP are asynchronous operation, wait for the operation # to complete based on module invocation paramters. if result["changed"]: if module.params.get("wait", None): response_get = oci_utils.call_with_backoff( virtual_network_client.get_public_ip, public_ip_id=module.params["public_ip_id"], ) # After the update operation, the public IP can have "ASSIGNED" or "AVAILABLE" steady lifecycle state. states = module.params.get("wait_until") or [ "ASSIGNED", "AVAILABLE" ] result["public_ip"] = to_dict( wait_until( virtual_network_client, response_get, evaluate_response=lambda r: r.data.lifecycle_state in states, max_wait_seconds=module.params.get("wait_timeout", 1200), ).data) return result
def handle_update_boot_volume(block_storage_client, module): return oci_utils.check_and_update_resource(resource_type="boot_volume", get_fn=block_storage_client.get_boot_volume, kwargs_get={"boot_volume_id": module.params["boot_volume_id"]}, update_fn=block_storage_client.update_boot_volume, primitive_params_update=['boot_volume_id'], kwargs_non_primitive_update={ UpdateBootVolumeDetails: "update_boot_volume_details"}, module=module, update_attributes=UpdateBootVolumeDetails().attribute_map.keys() )
def update_zone(dns_client, module): result = oci_utils.check_and_update_resource( resource_type="zone", get_fn=dns_client.get_zone, kwargs_get={"zone_name_or_id": get_zone_name_or_id(module)}, update_fn=dns_client.update_zone, primitive_params_update=['zone_name_or_id'], kwargs_non_primitive_update={UpdateZoneDetails: "update_zone_details"}, module=module, update_attributes=UpdateZoneDetails().attribute_map.keys()) return result
def update_cpe(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="cpe", get_fn=virtual_network_client.get_cpe, kwargs_get={"cpe_id": module.params["cpe_id"]}, update_fn=virtual_network_client.update_cpe, primitive_params_update=['cpe_id'], kwargs_non_primitive_update={UpdateCpeDetails: "update_cpe_details"}, module=module, update_attributes=UpdateCpeDetails().attribute_map.keys()) return result
def update_instance_pool(compute_management_client, module): # XXX support update of placement configurations return oci_utils.check_and_update_resource(resource_type=RESOURCE_NAME, get_fn=compute_management_client.get_instance_pool, kwargs_get={"instance_pool_id": module.params['instance_pool_id']}, update_fn=compute_management_client.update_instance_pool, primitive_params_update=['instance_pool_id'], kwargs_non_primitive_update={ UpdateInstancePoolDetails: "update_instance_pool_details" }, module=module, update_attributes=UpdateInstancePoolDetails().attribute_map.keys())
def update_subnet(virtual_network_client, module): return oci_utils.check_and_update_resource( resource_type="subnet", get_fn=virtual_network_client.get_subnet, kwargs_get={"subnet_id": module.params["subnet_id"]}, update_fn=virtual_network_client.update_subnet, primitive_params_update=['subnet_id'], kwargs_non_primitive_update={ UpdateSubnetDetails: "update_subnet_details" }, module=module, update_attributes=UpdateSubnetDetails().attribute_map.keys())
def update_drg_attachment(virtual_network_client, module): result = oci_utils.check_and_update_resource(resource_type="drg_attachment", get_fn=virtual_network_client.get_drg_attachment, kwargs_get={"drg_attachment_id": module.params["drg_attachment_id"]}, update_fn=virtual_network_client.update_drg_attachment, primitive_params_update=['drg_attachment_id'], kwargs_non_primitive_update={ UpdateDrgAttachmentDetails: "update_drg_attachment_details"}, module=module, update_attributes=UpdateDrgAttachmentDetails().attribute_map.keys() ) return result
def update_internet_gateway(virtual_network_client, module): return oci_utils.check_and_update_resource( resource_type='internet_gateway', get_fn=virtual_network_client.get_internet_gateway, kwargs_get={'ig_id': module.params['ig_id']}, update_fn=virtual_network_client.update_internet_gateway, primitive_params_update=['ig_id'], kwargs_non_primitive_update={ UpdateInternetGatewayDetails: "update_internet_gateway_details" }, module=module, update_attributes=UpdateInternetGatewayDetails().attribute_map.keys())
def update_compartment(identity_client, module): result = oci_utils.check_and_update_resource(resource_type="compartment", get_fn=identity_client.get_compartment, kwargs_get={"compartment_id": module.params["compartment_id"]}, update_fn=identity_client.update_compartment, primitive_params_update=['compartment_id'], kwargs_non_primitive_update={ UpdateCompartmentDetails: "update_compartment_details"}, module=module, update_attributes=UpdateCompartmentDetails().attribute_map.keys() ) return result
def handle_update_volume_group(block_storage_client, module): return oci_utils.check_and_update_resource( resource_type="volume_group", get_fn=block_storage_client.get_volume_group, kwargs_get={"volume_group_id": module.params["volume_group_id"]}, update_fn=block_storage_client.update_volume_group, primitive_params_update=['volume_group_id'], kwargs_non_primitive_update={ UpdateVolumeGroupDetails: "update_volume_group_details" }, module=module, update_attributes=UpdateVolumeGroupDetails().attribute_map.keys())
def update_snapshot(file_storage_client, module): result = oci_utils.check_and_update_resource( resource_type="snapshot", get_fn=file_storage_client.get_snapshot, kwargs_get={"snapshot_id": module.params["snapshot_id"]}, update_fn=file_storage_client.update_snapshot, client=file_storage_client, primitive_params_update=["snapshot_id"], kwargs_non_primitive_update={UpdateSnapshotDetails: "update_snapshot_details"}, module=module, update_attributes=UpdateSnapshotDetails().attribute_map, ) return result
def update_vcn(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="vcn", client=virtual_network_client, get_fn=virtual_network_client.get_vcn, kwargs_get={"vcn_id": module.params["vcn_id"]}, update_fn=virtual_network_client.update_vcn, primitive_params_update=["vcn_id"], kwargs_non_primitive_update={UpdateVcnDetails: "update_vcn_details"}, module=module, update_attributes=UpdateVcnDetails().attribute_map.keys(), ) return result
def update_ip_sec_connection(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="ip_sec_connection", get_fn=virtual_network_client.get_ip_sec_connection, kwargs_get={"ipsc_id": module.params["ipsc_id"]}, update_fn=virtual_network_client.update_ip_sec_connection, primitive_params_update=['ipsc_id'], kwargs_non_primitive_update={ UpdateIPSecConnectionDetails: "update_ip_sec_connection_details" }, module=module, update_attributes=UpdateIPSecConnectionDetails().attribute_map.keys()) return result
def update_mount_target(file_storage_client, module): result = oci_utils.check_and_update_resource( resource_type="mount_target", get_fn=file_storage_client.get_mount_target, kwargs_get={"mount_target_id": module.params["mount_target_id"]}, update_fn=file_storage_client.update_mount_target, client=file_storage_client, primitive_params_update=['mount_target_id'], kwargs_non_primitive_update={ UpdateMountTargetDetails: "update_mount_target_details" }, module=module, update_attributes=UpdateMountTargetDetails().attribute_map) return result
def update_dynamic_group(identity_client, module): result = oci_utils.check_and_update_resource( resource_type="dynamic_group", get_fn=identity_client.get_dynamic_group, kwargs_get={"dynamic_group_id": module.params["dynamic_group_id"]}, update_fn=identity_client.update_dynamic_group, primitive_params_update=['dynamic_group_id'], kwargs_non_primitive_update={ UpdateDynamicGroupDetails: "update_dynamic_group_details" }, module=module, update_attributes=UpdateDynamicGroupDetails().attribute_map.keys()) return result
def update_certificate(waas_client, module): result = oci_utils.check_and_update_resource( resource_type=RESOURCE_TYPE, client=waas_client, get_fn=waas_client.get_certificate, kwargs_get={"certificate_id": module.params["certificate_id"]}, update_fn=waas_client.update_certificate, primitive_params_update=["certificate_id"], kwargs_non_primitive_update={ UpdateCertificateDetails: "update_certificate_details" }, module=module, update_attributes=UpdateCertificateDetails().attribute_map.keys(), ) return result
def update_nat_gateway(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="nat_gateway", get_fn=virtual_network_client.get_nat_gateway, client=virtual_network_client, kwargs_get={"nat_gateway_id": module.params["nat_gateway_id"]}, update_fn=virtual_network_client.update_nat_gateway, primitive_params_update=["nat_gateway_id"], kwargs_non_primitive_update={ UpdateNatGatewayDetails: "update_nat_gateway_details" }, module=module, update_attributes=UpdateNatGatewayDetails().attribute_map.keys(), ) return result
def update_identity_provider(identity_client, module): result = oci_utils.check_and_update_resource( resource_type=RESOURCE_TYPE, client=identity_client, get_fn=identity_client.get_identity_provider, kwargs_get={"identity_provider_id": module.params["identity_provider_id"]}, update_fn=identity_client.update_identity_provider, primitive_params_update=["identity_provider_id"], kwargs_non_primitive_update={ UpdateSaml2IdentityProviderDetails: "update_identity_provider_details" }, module=module, update_attributes=UpdateSaml2IdentityProviderDetails().attribute_map.keys(), ) return result
def update_file_system(file_storage_client, module): result = oci_utils.check_and_update_resource( resource_type="file_system", get_fn=file_storage_client.get_file_system, kwargs_get={"file_system_id": module.params["file_system_id"]}, update_fn=file_storage_client.update_file_system, client=file_storage_client, primitive_params_update=["file_system_id"], kwargs_non_primitive_update={ UpdateFileSystemDetails: "update_file_system_details" }, module=module, update_attributes=UpdateFileSystemDetails().attribute_map, ) return result
def update_autonomous_data_warehouse(db_client, module): result = oci_utils.check_and_update_resource(resource_type="autonomous_data_warehouse", get_fn=db_client.get_autonomous_data_warehouse, kwargs_get={ "autonomous_data_warehouse_id": module.params["autonomous_data_warehouse_id"]}, update_fn=db_client.update_autonomous_data_warehouse, primitive_params_update=['autonomous_data_warehouse_id'], kwargs_non_primitive_update={ UpdateAutonomousDataWarehouseDetails: "update_autonomous_data_warehouse_details"}, client=db_client, module=module, update_attributes=UpdateAutonomousDataWarehouseDetails().attribute_map ) return result
def update_cross_connect(virtual_network_client, existing_cross_connect, module): result = oci_utils.check_and_update_resource( resource_type="cross_connect", get_fn=virtual_network_client.get_cross_connect, kwargs_get={"cross_connect_id": module.params["cross_connect_id"]}, update_fn=virtual_network_client.update_cross_connect, primitive_params_update=["cross_connect_id"], kwargs_non_primitive_update={ UpdateCrossConnectDetails: "update_cross_connect_details" }, module=module, update_attributes=UpdateCrossConnectDetails().attribute_map.keys(), states=["PENDING_CUSTOMER", "PENDING_PROVIDER", "PROVISIONED"], ) return result
def update_private_ip(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="private_ip", get_fn=virtual_network_client.get_private_ip, kwargs_get={"private_ip_id": module.params["private_ip_id"]}, update_fn=virtual_network_client.update_private_ip, primitive_params_update=["private_ip_id"], kwargs_non_primitive_update={ UpdatePrivateIpDetails: "update_private_ip_details" }, module=module, wait_applicable=False, update_attributes=UpdatePrivateIpDetails().attribute_map.keys(), ) return result
def handle_update_auth_token(identity_client, module): return oci_utils.check_and_update_resource( resource_type=RESOURCE_NAME, get_fn=oci_utils.get_target_resource_from_list, kwargs_get={ 'module': module, 'list_resource_fn': identity_client.list_auth_tokens, 'target_resource_id': module.params.get('auth_token_id'), 'user_id': module.params.get('user_id') }, update_fn=identity_client.update_auth_token, primitive_params_update=['user_id', 'auth_token_id'], kwargs_non_primitive_update={ UpdateAuthTokenDetails: "update_auth_token_details" }, module=module, update_attributes=UpdateAuthTokenDetails().attribute_map.keys())
def update_console_history(compute_client, module): result = oci_utils.check_and_update_resource( resource_type="console_history", client=compute_client, get_fn=compute_client.get_console_history, kwargs_get={ "instance_console_history_id": module.params["instance_console_history_id"] }, update_fn=compute_client.update_console_history, primitive_params_update=["instance_console_history_id"], kwargs_non_primitive_update={ UpdateConsoleHistoryDetails: "update_console_history_details" }, module=module, update_attributes=UpdateConsoleHistoryDetails().attribute_map.keys(), ) return result
def update_local_peering_gateway(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="local_peering_gateway", get_fn=virtual_network_client.get_local_peering_gateway, kwargs_get={ "local_peering_gateway_id": module.params["local_peering_gateway_id"] }, update_fn=virtual_network_client.update_local_peering_gateway, primitive_params_update=['local_peering_gateway_id'], kwargs_non_primitive_update={ UpdateLocalPeeringGatewayDetails: "update_local_peering_gateway_details" }, module=module, update_attributes=UpdateLocalPeeringGatewayDetails( ).attribute_map.keys()) return result
def update_smtp_credential(identity_client, module): result = oci_utils.check_and_update_resource(resource_type=RESOURCE_NAME, get_fn=oci_utils.get_target_resource_from_list, kwargs_get={'module': module, 'list_resource_fn': identity_client.list_smtp_credentials, 'target_resource_id': module.params.get('smtp_credential_id'), 'user_id': module.params.get('user_id')}, update_fn=identity_client.update_smtp_credential, client=identity_client, primitive_params_update=['user_id', 'smtp_credential_id'], kwargs_non_primitive_update={ UpdateSmtpCredentialDetails: "update_smtp_credential_details"}, module=module, update_attributes=UpdateSmtpCredentialDetails().attribute_map, wait_applicable=False ) return result
def update_smtp_credential(identity_client, module): result = oci_utils.check_and_update_resource( resource_type=RESOURCE_NAME, get_fn=oci_utils.get_target_resource_from_list, kwargs_get={ "module": module, "list_resource_fn": identity_client.list_smtp_credentials, "target_resource_id": module.params.get("smtp_credential_id"), "user_id": module.params.get("user_id"), }, update_fn=identity_client.update_smtp_credential, primitive_params_update=["user_id", "smtp_credential_id"], kwargs_non_primitive_update={ UpdateSmtpCredentialDetails: "update_smtp_credential_details" }, module=module, update_attributes=UpdateSmtpCredentialDetails().attribute_map, wait_applicable=False, ) return result
def update_remote_peering_connection(virtual_network_client, module): result = oci_utils.check_and_update_resource( resource_type="remote_peering_connection", get_fn=virtual_network_client.get_remote_peering_connection, client=virtual_network_client, kwargs_get={ "remote_peering_connection_id": module.params["remote_peering_connection_id"] }, update_fn=virtual_network_client.update_remote_peering_connection, primitive_params_update=["remote_peering_connection_id"], kwargs_non_primitive_update={ UpdateRemotePeeringConnectionDetails: "update_remote_peering_connection_details" }, module=module, update_attributes=UpdateRemotePeeringConnectionDetails().attribute_map. keys(), ) return result
def update_service_gateway(virtual_network_client, module): serviceid_requests = None if module.params['services'] is not None: serviceid_requests = [] for service in module.params['services']: req = ServiceIdRequestDetails() req.service_id = service['service_id'] serviceid_requests.append(req) result = oci_utils.check_and_update_resource( resource_type="service_gateway", get_fn=virtual_network_client.get_service_gateway, kwargs_get={"service_gateway_id": module.params["service_gateway_id"]}, update_fn=virtual_network_client.update_service_gateway, primitive_params_update=['service_gateway_id'], kwargs_non_primitive_update={ UpdateServiceGatewayDetails: "update_service_gateway_details" }, module=module, update_attributes=UpdateServiceGatewayDetails().attribute_map.keys(), sub_attributes_of_update_model={'services': serviceid_requests}) return result