-
Notifications
You must be signed in to change notification settings - Fork 286
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #200 from oracle/release_2019-12-18
Releasing version 2.8.0
- Loading branch information
Showing
143 changed files
with
37,710 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# coding: utf-8 | ||
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. | ||
|
||
from __future__ import absolute_import | ||
|
||
|
||
from .deployment_client import DeploymentClient | ||
from .deployment_client_composite_operations import DeploymentClientCompositeOperations | ||
from .gateway_client import GatewayClient | ||
from .gateway_client_composite_operations import GatewayClientCompositeOperations | ||
from .work_requests_client import WorkRequestsClient | ||
from .work_requests_client_composite_operations import WorkRequestsClientCompositeOperations | ||
from . import models | ||
|
||
__all__ = ["DeploymentClient", "DeploymentClientCompositeOperations", "GatewayClient", "GatewayClientCompositeOperations", "WorkRequestsClient", "WorkRequestsClientCompositeOperations", "models"] |
Large diffs are not rendered by default.
Oops, something went wrong.
189 changes: 189 additions & 0 deletions
189
src/oci/apigateway/deployment_client_composite_operations.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
# coding: utf-8 | ||
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. | ||
|
||
import oci # noqa: F401 | ||
from oci.util import WAIT_RESOURCE_NOT_FOUND # noqa: F401 | ||
|
||
|
||
class DeploymentClientCompositeOperations(object): | ||
""" | ||
This class provides a wrapper around :py:class:`~oci.apigateway.DeploymentClient` 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 | ||
""" | ||
|
||
def __init__(self, client, **kwargs): | ||
""" | ||
Creates a new DeploymentClientCompositeOperations object | ||
:param DeploymentClient client: | ||
The service client which will be wrapped by this object | ||
""" | ||
self.client = client | ||
|
||
def change_deployment_compartment_and_wait_for_state(self, deployment_id, change_deployment_compartment_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): | ||
""" | ||
Calls :py:func:`~oci.apigateway.DeploymentClient.change_deployment_compartment` and waits for the :py:class:`~oci.apigateway.models.WorkRequest` | ||
to enter the given state(s). | ||
:param str deployment_id: (required) | ||
The ocid of the deployment. | ||
:param ChangeDeploymentCompartmentDetails change_deployment_compartment_details: (required) | ||
Details of the target compartment. | ||
:param list[str] wait_for_states: | ||
An array of states to wait on. These should be valid values for :py:attr:`~oci.apigateway.models.WorkRequest.status` | ||
:param dict operation_kwargs: | ||
A dictionary of keyword arguments to pass to :py:func:`~oci.apigateway.DeploymentClient.change_deployment_compartment` | ||
: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 | ||
""" | ||
operation_result = self.client.change_deployment_compartment(deployment_id, change_deployment_compartment_details, **operation_kwargs) | ||
if not wait_for_states: | ||
return operation_result | ||
|
||
lowered_wait_for_states = [w.lower() for w in wait_for_states] | ||
wait_for_resource_id = operation_result.headers['opc-work-request-id'] | ||
|
||
try: | ||
waiter_result = oci.wait_until( | ||
self.client, | ||
self.client.get_work_request(wait_for_resource_id), | ||
evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states, | ||
**waiter_kwargs | ||
) | ||
result_to_return = waiter_result | ||
|
||
return result_to_return | ||
except Exception as e: | ||
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) | ||
|
||
def create_deployment_and_wait_for_state(self, create_deployment_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): | ||
""" | ||
Calls :py:func:`~oci.apigateway.DeploymentClient.create_deployment` and waits for the :py:class:`~oci.apigateway.models.WorkRequest` | ||
to enter the given state(s). | ||
:param CreateDeploymentDetails create_deployment_details: (required) | ||
Details for the new deployment | ||
:param list[str] wait_for_states: | ||
An array of states to wait on. These should be valid values for :py:attr:`~oci.apigateway.models.WorkRequest.status` | ||
:param dict operation_kwargs: | ||
A dictionary of keyword arguments to pass to :py:func:`~oci.apigateway.DeploymentClient.create_deployment` | ||
: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 | ||
""" | ||
operation_result = self.client.create_deployment(create_deployment_details, **operation_kwargs) | ||
if not wait_for_states: | ||
return operation_result | ||
|
||
lowered_wait_for_states = [w.lower() for w in wait_for_states] | ||
wait_for_resource_id = operation_result.headers['opc-work-request-id'] | ||
|
||
try: | ||
waiter_result = oci.wait_until( | ||
self.client, | ||
self.client.get_work_request(wait_for_resource_id), | ||
evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states, | ||
**waiter_kwargs | ||
) | ||
result_to_return = waiter_result | ||
|
||
return result_to_return | ||
except Exception as e: | ||
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) | ||
|
||
def delete_deployment_and_wait_for_state(self, deployment_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): | ||
""" | ||
Calls :py:func:`~oci.apigateway.DeploymentClient.delete_deployment` and waits for the :py:class:`~oci.apigateway.models.WorkRequest` | ||
to enter the given state(s). | ||
:param str deployment_id: (required) | ||
The ocid of the deployment. | ||
:param list[str] wait_for_states: | ||
An array of states to wait on. These should be valid values for :py:attr:`~oci.apigateway.models.WorkRequest.status` | ||
:param dict operation_kwargs: | ||
A dictionary of keyword arguments to pass to :py:func:`~oci.apigateway.DeploymentClient.delete_deployment` | ||
: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 | ||
""" | ||
operation_result = None | ||
try: | ||
operation_result = self.client.delete_deployment(deployment_id, **operation_kwargs) | ||
except oci.exceptions.ServiceError as e: | ||
if e.status == 404: | ||
return WAIT_RESOURCE_NOT_FOUND | ||
else: | ||
raise e | ||
|
||
if not wait_for_states: | ||
return operation_result | ||
|
||
lowered_wait_for_states = [w.lower() for w in wait_for_states] | ||
wait_for_resource_id = operation_result.headers['opc-work-request-id'] | ||
|
||
try: | ||
waiter_result = oci.wait_until( | ||
self.client, | ||
self.client.get_work_request(wait_for_resource_id), | ||
evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states, | ||
**waiter_kwargs | ||
) | ||
result_to_return = waiter_result | ||
|
||
return result_to_return | ||
except Exception as e: | ||
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) | ||
|
||
def update_deployment_and_wait_for_state(self, deployment_id, update_deployment_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): | ||
""" | ||
Calls :py:func:`~oci.apigateway.DeploymentClient.update_deployment` and waits for the :py:class:`~oci.apigateway.models.WorkRequest` | ||
to enter the given state(s). | ||
:param str deployment_id: (required) | ||
The ocid of the deployment. | ||
:param UpdateDeploymentDetails update_deployment_details: (required) | ||
The information to be updated. | ||
:param list[str] wait_for_states: | ||
An array of states to wait on. These should be valid values for :py:attr:`~oci.apigateway.models.WorkRequest.status` | ||
:param dict operation_kwargs: | ||
A dictionary of keyword arguments to pass to :py:func:`~oci.apigateway.DeploymentClient.update_deployment` | ||
: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 | ||
""" | ||
operation_result = self.client.update_deployment(deployment_id, update_deployment_details, **operation_kwargs) | ||
if not wait_for_states: | ||
return operation_result | ||
|
||
lowered_wait_for_states = [w.lower() for w in wait_for_states] | ||
wait_for_resource_id = operation_result.headers['opc-work-request-id'] | ||
|
||
try: | ||
waiter_result = oci.wait_until( | ||
self.client, | ||
self.client.get_work_request(wait_for_resource_id), | ||
evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states, | ||
**waiter_kwargs | ||
) | ||
result_to_return = waiter_result | ||
|
||
return result_to_return | ||
except Exception as e: | ||
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) |
Oops, something went wrong.