ruạṛ
a N��f�� � @ s( d dl Z d dlmZ G dd� de�ZdS )� N)�WAIT_RESOURCE_NOT_FOUNDc @ s� e Zd ZdZd3dd�Zg i i fdd�Zg i i fdd�Zg i i fd d �Zg i i fdd�Zg i i fd d�Z g i i fdd�Z g i i fdd�Zg i i fdd�Zg i i fdd�Z g i i fdd�Zg i i fdd�Zg i i fdd�Zg i i fdd�Zg i i fdd �Zg i i fd!d"�Zg i i fd#d$�Zg i i fd%d&�Zg i i fd'd(�Zg i i fd)d*�Zg i i fd+d,�Zg i i fd-d.�Zg i i fd/d0�Zg i i fd1d2�ZdS )4�%BlockstorageClientCompositeOperationsa� This class provides a wrapper around :py:class:`~oci.core.BlockstorageClient` and offers convenience methods for operations that would otherwise need to be chained together. For example, instead of performing an action on a resource (e.g. launching an instance, creating a load balancer) and then using a waiter to wait for the resource to enter a given state, you can call a single method in this class to accomplish the same functionality Nc K s0 || _ |r|ntjj| j jfi | j j��| _dS )a� Creates a new BlockstorageClientCompositeOperations object :param BlockstorageClient client: The service client which will be wrapped by this object :param oci.work_requests.WorkRequestClient work_request_client: (optional) The work request service client which will be used to wait for work request states. Default is None. N)�client�oci� work_requests�WorkRequestClient�_config�_kwargs�_work_request_client)�selfr �work_request_client�kwargs� r ��/sparta/input/_build_configuration/image_build+validate/lib/bmcenv/lib64/python3.9/site-packages/oci/core/blockstorage_client_composite_operations.py�__init__ s z.BlockstorageClientCompositeOperations.__init__c s� | j j||fi |��}|r|ntjj}dd� |D �� |jd }z0tj| j| j�|�fd� fdd�i|��}|W S t y� } ztj j|g| d��W Y d} ~ n d} ~ 0 0 dS ) a Calls :py:func:`~oci.core.BlockstorageClient.copy_boot_volume_backup` and waits for the oci.work_requests.models.WorkRequest to enter the given state(s). :param str boot_volume_backup_id: (required) The OCID of the boot volume backup. :param oci.core.models.CopyBootVolumeBackupDetails copy_boot_volume_backup_details: (required) Request to create a cross-region copy of given boot volume backup. :param list[str] work_request_states: (optional) An array of work requests states to wait on. These should be valid values for :py:attr:`~oci.work_requests.models.WorkRequest.status` Default values are termination states: [STATUS_SUCCEEDED, STATUS_FAILED, STATUS_CANCELED] :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.core.BlockstorageClient.copy_boot_volume_backup` :param dict waiter_kwargs: A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait c S s g | ]}|� � �qS r ��lower��.0�wr r r � <listcomp>6 � zkBlockstorageClientCompositeOperations.copy_boot_volume_backup_and_wait_for_work_request.<locals>.<listcomp>�opc-work-request-id�evaluate_responsec s t | jd�ot | jd��� � v S �N�status��getattr�datar ��r��lowered_work_request_statesr r �<lambda>= r ziBlockstorageClientCompositeOperations.copy_boot_volume_backup_and_wait_for_work_request.<locals>.<lambda>��partial_results�causeN)r �copy_boot_volume_backupr �waiter� _WORK_REQUEST_TERMINATION_STATES�headers� wait_untilr �get_work_request� Exception� exceptions�CompositeOperationError) r �boot_volume_backup_id�copy_boot_volume_backup_details�work_request_states�operation_kwargs� waiter_kwargs�operation_result�work_request_id� waiter_result�er r! r �1copy_boot_volume_backup_and_wait_for_work_request s � ��zWBlockstorageClientCompositeOperations.copy_boot_volume_backup_and_wait_for_work_requestc s� | j j||fi |��}|s|S dd� |D �� |jj}z4tj| j | j �|�fd� fdd�i|��}|}|W S ttfy� } z6| j s�d| _ | j d | _ tj j|g| d��W Y d } ~ n>d } ~ 0 ty� } ztj j|g| d��W Y d } ~ n d } ~ 0 0 d S ) a� Calls :py:func:`~oci.core.BlockstorageClient.copy_boot_volume_backup` and waits for the :py:class:`~oci.core.models.BootVolumeBackup` acted upon to enter the given state(s). :param str boot_volume_backup_id: (required) The OCID of the boot volume backup. :param oci.core.models.CopyBootVolumeBackupDetails copy_boot_volume_backup_details: (required) Request to create a cross-region copy of given boot volume backup. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.core.models.BootVolumeBackup.lifecycle_state` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.core.BlockstorageClient.copy_boot_volume_backup` :param dict waiter_kwargs: A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait c S s g | ]}|� � �qS r r r r r r r ] r zdBlockstorageClientCompositeOperations.copy_boot_volume_backup_and_wait_for_state.<locals>.<listcomp>r c s t | jd�ot | jd��� � v S �N�lifecycle_stater r ��lowered_wait_for_statesr r r# d r zbBlockstorageClientCompositeOperations.copy_boot_volume_backup_and_wait_for_state.<locals>.<lambda>�� �a This composite operation is currently not supported in the SDK. Please use the operation from the service client and use waiters as an alternative. For more information on waiters, visit: "https://docs.oracle.com/en-us/iaas/tools/python/latest/api/waiters.html"r$ N) r r'