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
Beispiel #5
0
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
Beispiel #6
0
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())
Beispiel #8
0
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
Beispiel #9
0
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())
Beispiel #10
0
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
Beispiel #11
0
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())
Beispiel #12
0
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
Beispiel #13
0
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
Beispiel #15
0
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
Beispiel #16
0
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
Beispiel #17
0
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
Beispiel #18
0
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
Beispiel #19
0
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
Beispiel #20
0
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
Beispiel #24
0
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())
Beispiel #25
0
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
Beispiel #26
0
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