Skip to content

Commit

Permalink
Merge pull request #200 from oracle/release_2019-12-18
Browse files Browse the repository at this point in the history
Releasing version 2.8.0
  • Loading branch information
pelliu authored Dec 18, 2019
2 parents 26f6325 + 5e0c164 commit aa281ff
Show file tree
Hide file tree
Showing 143 changed files with 37,710 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/oci/apigateway/__init__.py
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"]
628 changes: 628 additions & 0 deletions src/oci/apigateway/deployment_client.py

Large diffs are not rendered by default.

189 changes: 189 additions & 0 deletions src/oci/apigateway/deployment_client_composite_operations.py
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)
Loading

0 comments on commit aa281ff

Please sign in to comment.