ruạṛ
a O��fM � @ s( d dl Z d dlmZ G dd� de�ZdS )� N)�WAIT_RESOURCE_NOT_FOUNDc @ s� e Zd ZdZdd� Zg i i fdd�Zg i i fdd�Zg i i fdd �Zg i i fd d�Zg i i fdd �Z g i i fdd�Z g i i fdd�ZdS )�"OptimizerClientCompositeOperationsa� This class provides a wrapper around :py:class:`~oci.optimizer.OptimizerClient` 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 c K s || _ dS )z� Creates a new OptimizerClientCompositeOperations object :param OptimizerClient client: The service client which will be wrapped by this object N)�client)�selfr �kwargs� r ��/sparta/input/_build_configuration/image_build+validate/lib/bmcenv/lib64/python3.9/site-packages/oci/optimizer/optimizer_client_composite_operations.py�__init__ s z+OptimizerClientCompositeOperations.__init__c s� | j j||fi |��}|s|S dd� |D �� |jd }z4tj| j | j �|�fd� fdd�i|��}|} | W S ty� } ztjj|g| d��W Y d} ~ n d} ~ 0 0 dS ) a� Calls :py:func:`~oci.optimizer.OptimizerClient.bulk_apply_recommendations` and waits for the :py:class:`~oci.optimizer.models.WorkRequest` to enter the given state(s). :param str recommendation_id: (required) The unique OCID associated with the recommendation. :param oci.optimizer.models.BulkApplyRecommendationsDetails bulk_apply_recommendations_details: (required) Details about bulk recommendation actions. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.optimizer.models.WorkRequest.status` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.optimizer.OptimizerClient.bulk_apply_recommendations` :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>3 � zdOptimizerClientCompositeOperations.bulk_apply_recommendations_and_wait_for_state.<locals>.<listcomp>zopc-work-request-id�evaluate_responsec s t | jd�ot | jd��� � v S )N�status��getattr�datar ��r��lowered_wait_for_statesr r �<lambda>: r zbOptimizerClientCompositeOperations.bulk_apply_recommendations_and_wait_for_state.<locals>.<lambda>��partial_results�causeN) r �bulk_apply_recommendations�headers�oci� wait_until�get_work_request� Exception� exceptions�CompositeOperationError)r �recommendation_id�"bulk_apply_recommendations_details�wait_for_states�operation_kwargs� waiter_kwargs�operation_result�wait_for_resource_id� waiter_result�result_to_return�er r r �-bulk_apply_recommendations_and_wait_for_state s$ � ��zPOptimizerClientCompositeOperations.bulk_apply_recommendations_and_wait_for_statec 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.optimizer.OptimizerClient.create_profile` and waits for the :py:class:`~oci.optimizer.models.Profile` acted upon to enter the given state(s). :param oci.optimizer.models.CreateProfileDetails create_profile_details: (required) Details for creating the profile. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.optimizer.models.Profile.lifecycle_state` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.optimizer.OptimizerClient.create_profile` :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 Y r zXOptimizerClientCompositeOperations.create_profile_and_wait_for_state.<locals>.<listcomp>r c s t | jd�ot | jd��� � v S �N�lifecycle_stater r r r r r ` r zVOptimizerClientCompositeOperations.create_profile_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 �create_profiler �idr r! �get_profile� NameError� TypeError�argsr$ r% r# ) r �create_profile_detailsr( r) r* r+ � profile_idr- r. r/ r r r �!create_profile_and_wait_for_stateC s. � ��&zDOptimizerClientCompositeOperations.create_profile_and_wait_for_statec sD | j �|�}d}z| j j|fi |��}W nF tjjyn } z*|jdkrVtW Y d}~S |�W Y d}~n d}~0 0 |sx|S dd� |D �� z.tj| j |f� fdd�dd�|��}|} | W S t t f�y } z6|js�d |_|jd |_tjj|g|d��W Y d}~n@d}~0 t �y> } ztjj|g|d��W Y d}~n d}~0 0 dS )a� Calls :py:func:`~oci.optimizer.OptimizerClient.delete_profile` and waits for the :py:class:`~oci.optimizer.models.Profile` acted upon to enter the given state(s). :param str profile_id: (required) The unique OCID of the profile. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.optimizer.models.Profile.lifecycle_state` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.optimizer.OptimizerClient.delete_profile` :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 Ni� c S s g | ]}|� � �qS r r r r r r r � r zXOptimizerClientCompositeOperations.delete_profile_and_wait_for_state.<locals>.<listcomp>c s t | jd�ot | jd��� � v S r1 r r r r r r � r zVOptimizerClientCompositeOperations.delete_profile_and_wait_for_state.<locals>.<lambda>T)r �succeed_on_not_foundr3 r5 r )r r8 �delete_profiler r$ �ServiceErrorr r r! r9 r: r; r% r# ) r r= r( r) r* �initial_get_resultr+ r/ r- r. r r r �!delete_profile_and_wait_for_staten s<