| Index: tools/telemetry/third_party/gsutilz/third_party/boto/boto/ec2containerservice/layer1.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/ec2containerservice/layer1.py b/tools/telemetry/third_party/gsutilz/third_party/boto/boto/ec2containerservice/layer1.py
|
| deleted file mode 100644
|
| index 4168bdd01769203fdd6e5fbe8f413cc61d5fdc46..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/ec2containerservice/layer1.py
|
| +++ /dev/null
|
| @@ -1,748 +0,0 @@
|
| -# Copyright (c) 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -#
|
| -
|
| -import boto
|
| -from boto.compat import json
|
| -from boto.connection import AWSQueryConnection
|
| -from boto.regioninfo import RegionInfo
|
| -from boto.exception import JSONResponseError
|
| -from boto.ec2containerservice import exceptions
|
| -
|
| -
|
| -class EC2ContainerServiceConnection(AWSQueryConnection):
|
| - """
|
| - Amazon EC2 Container Service (Amazon ECS) is a highly scalable,
|
| - fast, container management service that makes it easy to run,
|
| - stop, and manage Docker containers on a cluster of Amazon EC2
|
| - instances. Amazon ECS lets you launch and stop container-enabled
|
| - applications with simple API calls, allows you to get the state of
|
| - your cluster from a centralized service, and gives you access to
|
| - many familiar Amazon EC2 features like security groups, Amazon EBS
|
| - volumes, and IAM roles.
|
| -
|
| - You can use Amazon ECS to schedule the placement of containers
|
| - across your cluster based on your resource needs, isolation
|
| - policies, and availability requirements. Amazon EC2 Container
|
| - Service eliminates the need for you to operate your own cluster
|
| - management and configuration management systems or worry about
|
| - scaling your management infrastructure.
|
| - """
|
| - APIVersion = "2014-11-13"
|
| - DefaultRegionName = "us-east-1"
|
| - DefaultRegionEndpoint = "ecs.us-east-1.amazonaws.com"
|
| - ResponseError = JSONResponseError
|
| -
|
| - _faults = {
|
| - "ServerException": exceptions.ServerException,
|
| - "ClientException": exceptions.ClientException,
|
| - }
|
| -
|
| -
|
| - def __init__(self, **kwargs):
|
| - region = kwargs.pop('region', None)
|
| - if not region:
|
| - region = RegionInfo(self, self.DefaultRegionName,
|
| - self.DefaultRegionEndpoint)
|
| -
|
| - if 'host' not in kwargs or kwargs['host'] is None:
|
| - kwargs['host'] = region.endpoint
|
| -
|
| - super(EC2ContainerServiceConnection, self).__init__(**kwargs)
|
| - self.region = region
|
| -
|
| - def _required_auth_capability(self):
|
| - return ['hmac-v4']
|
| -
|
| - def create_cluster(self, cluster_name=None):
|
| - """
|
| - Creates a new Amazon ECS cluster. By default, your account
|
| - will receive a `default` cluster when you launch your first
|
| - container instance. However, you can create your own cluster
|
| - with a unique name with the `CreateCluster` action.
|
| -
|
| - During the preview, each account is limited to two clusters.
|
| -
|
| - :type cluster_name: string
|
| - :param cluster_name: The name of your cluster. If you do not specify a
|
| - name for your cluster, you will create a cluster named `default`.
|
| -
|
| - """
|
| - params = {}
|
| - if cluster_name is not None:
|
| - params['clusterName'] = cluster_name
|
| - return self._make_request(
|
| - action='CreateCluster',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def delete_cluster(self, cluster):
|
| - """
|
| - Deletes the specified cluster. You must deregister all
|
| - container instances from this cluster before you may delete
|
| - it. You can list the container instances in a cluster with
|
| - ListContainerInstances and deregister them with
|
| - DeregisterContainerInstance.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The cluster you want to delete.
|
| -
|
| - """
|
| - params = {'cluster': cluster, }
|
| - return self._make_request(
|
| - action='DeleteCluster',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def deregister_container_instance(self, container_instance, cluster=None,
|
| - force=None):
|
| - """
|
| - Deregisters an Amazon ECS container instance from the
|
| - specified cluster. This instance will no longer be available
|
| - to run tasks.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the container instance you want to
|
| - deregister. If you do not specify a cluster, the default cluster is
|
| - assumed.
|
| -
|
| - :type container_instance: string
|
| - :param container_instance: The container instance UUID or full Amazon
|
| - Resource Name (ARN) of the container instance you want to
|
| - deregister. The ARN contains the `arn:aws:ecs` namespace, followed
|
| - by the region of the container instance, the AWS account ID of the
|
| - container instance owner, the `container-instance` namespace, and
|
| - then the container instance UUID. For example, arn:aws:ecs: region
|
| - : aws_account_id :container-instance/ container_instance_UUID .
|
| -
|
| - :type force: boolean
|
| - :param force: Force the deregistration of the container instance. You
|
| - can use the `force` parameter if you have several tasks running on
|
| - a container instance and you don't want to run `StopTask` for each
|
| - task before deregistering the container instance.
|
| -
|
| - """
|
| - params = {'containerInstance': container_instance, }
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if force is not None:
|
| - params['force'] = str(
|
| - force).lower()
|
| - return self._make_request(
|
| - action='DeregisterContainerInstance',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def deregister_task_definition(self, task_definition):
|
| - """
|
| - Deregisters the specified task definition. You will no longer
|
| - be able to run tasks from this definition after
|
| - deregistration.
|
| -
|
| - :type task_definition: string
|
| - :param task_definition: The `family` and `revision` (
|
| - `family:revision`) or full Amazon Resource Name (ARN) of the task
|
| - definition that you want to deregister.
|
| -
|
| - """
|
| - params = {'taskDefinition': task_definition, }
|
| - return self._make_request(
|
| - action='DeregisterTaskDefinition',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def describe_clusters(self, clusters=None):
|
| - """
|
| - Describes one or more of your clusters.
|
| -
|
| - :type clusters: list
|
| - :param clusters: A space-separated list of cluster names or full
|
| - cluster Amazon Resource Name (ARN) entries. If you do not specify a
|
| - cluster, the default cluster is assumed.
|
| -
|
| - """
|
| - params = {}
|
| - if clusters is not None:
|
| - self.build_list_params(params,
|
| - clusters,
|
| - 'clusters.member')
|
| - return self._make_request(
|
| - action='DescribeClusters',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def describe_container_instances(self, container_instances, cluster=None):
|
| - """
|
| - Describes Amazon EC2 Container Service container instances.
|
| - Returns metadata about registered and remaining resources on
|
| - each container instance requested.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the container instances you want to
|
| - describe. If you do not specify a cluster, the default cluster is
|
| - assumed.
|
| -
|
| - :type container_instances: list
|
| - :param container_instances: A space-separated list of container
|
| - instance UUIDs or full Amazon Resource Name (ARN) entries.
|
| -
|
| - """
|
| - params = {}
|
| - self.build_list_params(params,
|
| - container_instances,
|
| - 'containerInstances.member')
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - return self._make_request(
|
| - action='DescribeContainerInstances',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def describe_task_definition(self, task_definition):
|
| - """
|
| - Describes a task definition.
|
| -
|
| - :type task_definition: string
|
| - :param task_definition: The `family` and `revision` (
|
| - `family:revision`) or full Amazon Resource Name (ARN) of the task
|
| - definition that you want to describe.
|
| -
|
| - """
|
| - params = {'taskDefinition': task_definition, }
|
| - return self._make_request(
|
| - action='DescribeTaskDefinition',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def describe_tasks(self, tasks, cluster=None):
|
| - """
|
| - Describes a specified task or tasks.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the task you want to describe. If you do not
|
| - specify a cluster, the default cluster is assumed.
|
| -
|
| - :type tasks: list
|
| - :param tasks: A space-separated list of task UUIDs or full Amazon
|
| - Resource Name (ARN) entries.
|
| -
|
| - """
|
| - params = {}
|
| - self.build_list_params(params,
|
| - tasks,
|
| - 'tasks.member')
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - return self._make_request(
|
| - action='DescribeTasks',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def discover_poll_endpoint(self, container_instance=None):
|
| - """
|
| - This action is only used by the Amazon EC2 Container Service
|
| - agent, and it is not intended for use outside of the agent.
|
| -
|
| -
|
| - Returns an endpoint for the Amazon EC2 Container Service agent
|
| - to poll for updates.
|
| -
|
| - :type container_instance: string
|
| - :param container_instance: The container instance UUID or full Amazon
|
| - Resource Name (ARN) of the container instance. The ARN contains the
|
| - `arn:aws:ecs` namespace, followed by the region of the container
|
| - instance, the AWS account ID of the container instance owner, the
|
| - `container-instance` namespace, and then the container instance
|
| - UUID. For example, arn:aws:ecs: region : aws_account_id :container-
|
| - instance/ container_instance_UUID .
|
| -
|
| - """
|
| - params = {}
|
| - if container_instance is not None:
|
| - params['containerInstance'] = container_instance
|
| - return self._make_request(
|
| - action='DiscoverPollEndpoint',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def list_clusters(self, next_token=None, max_results=None):
|
| - """
|
| - Returns a list of existing clusters.
|
| -
|
| - :type next_token: string
|
| - :param next_token: The `nextToken` value returned from a previous
|
| - paginated `ListClusters` request where `maxResults` was used and
|
| - the results exceeded the value of that parameter. Pagination
|
| - continues from the end of the previous results that returned the
|
| - `nextToken` value. This value is `null` when there are no more
|
| - results to return.
|
| -
|
| - :type max_results: integer
|
| - :param max_results: The maximum number of cluster results returned by
|
| - `ListClusters` in paginated output. When this parameter is used,
|
| - `ListClusters` only returns `maxResults` results in a single page
|
| - along with a `nextToken` response element. The remaining results of
|
| - the initial request can be seen by sending another `ListClusters`
|
| - request with the returned `nextToken` value. This value can be
|
| - between 1 and 100. If this parameter is not used, then
|
| - `ListClusters` returns up to 100 results and a `nextToken` value if
|
| - applicable.
|
| -
|
| - """
|
| - params = {}
|
| - if next_token is not None:
|
| - params['nextToken'] = next_token
|
| - if max_results is not None:
|
| - params['maxResults'] = max_results
|
| - return self._make_request(
|
| - action='ListClusters',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def list_container_instances(self, cluster=None, next_token=None,
|
| - max_results=None):
|
| - """
|
| - Returns a list of container instances in a specified cluster.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the container instances you want to list. If
|
| - you do not specify a cluster, the default cluster is assumed..
|
| -
|
| - :type next_token: string
|
| - :param next_token: The `nextToken` value returned from a previous
|
| - paginated `ListContainerInstances` request where `maxResults` was
|
| - used and the results exceeded the value of that parameter.
|
| - Pagination continues from the end of the previous results that
|
| - returned the `nextToken` value. This value is `null` when there are
|
| - no more results to return.
|
| -
|
| - :type max_results: integer
|
| - :param max_results: The maximum number of container instance results
|
| - returned by `ListContainerInstances` in paginated output. When this
|
| - parameter is used, `ListContainerInstances` only returns
|
| - `maxResults` results in a single page along with a `nextToken`
|
| - response element. The remaining results of the initial request can
|
| - be seen by sending another `ListContainerInstances` request with
|
| - the returned `nextToken` value. This value can be between 1 and
|
| - 100. If this parameter is not used, then `ListContainerInstances`
|
| - returns up to 100 results and a `nextToken` value if applicable.
|
| -
|
| - """
|
| - params = {}
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if next_token is not None:
|
| - params['nextToken'] = next_token
|
| - if max_results is not None:
|
| - params['maxResults'] = max_results
|
| - return self._make_request(
|
| - action='ListContainerInstances',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def list_task_definitions(self, family_prefix=None, next_token=None,
|
| - max_results=None):
|
| - """
|
| - Returns a list of task definitions that are registered to your
|
| - account. You can filter the results by family name with the
|
| - `familyPrefix` parameter.
|
| -
|
| - :type family_prefix: string
|
| - :param family_prefix: The name of the family that you want to filter
|
| - the `ListTaskDefinitions` results with. Specifying a `familyPrefix`
|
| - will limit the listed task definitions to definitions that belong
|
| - to that family.
|
| -
|
| - :type next_token: string
|
| - :param next_token: The `nextToken` value returned from a previous
|
| - paginated `ListTaskDefinitions` request where `maxResults` was used
|
| - and the results exceeded the value of that parameter. Pagination
|
| - continues from the end of the previous results that returned the
|
| - `nextToken` value. This value is `null` when there are no more
|
| - results to return.
|
| -
|
| - :type max_results: integer
|
| - :param max_results: The maximum number of task definition results
|
| - returned by `ListTaskDefinitions` in paginated output. When this
|
| - parameter is used, `ListTaskDefinitions` only returns `maxResults`
|
| - results in a single page along with a `nextToken` response element.
|
| - The remaining results of the initial request can be seen by sending
|
| - another `ListTaskDefinitions` request with the returned `nextToken`
|
| - value. This value can be between 1 and 100. If this parameter is
|
| - not used, then `ListTaskDefinitions` returns up to 100 results and
|
| - a `nextToken` value if applicable.
|
| -
|
| - """
|
| - params = {}
|
| - if family_prefix is not None:
|
| - params['familyPrefix'] = family_prefix
|
| - if next_token is not None:
|
| - params['nextToken'] = next_token
|
| - if max_results is not None:
|
| - params['maxResults'] = max_results
|
| - return self._make_request(
|
| - action='ListTaskDefinitions',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def list_tasks(self, cluster=None, container_instance=None, family=None,
|
| - next_token=None, max_results=None):
|
| - """
|
| - Returns a list of tasks for a specified cluster. You can
|
| - filter the results by family name or by a particular container
|
| - instance with the `family` and `containerInstance` parameters.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the tasks you want to list. If you do not
|
| - specify a cluster, the default cluster is assumed..
|
| -
|
| - :type container_instance: string
|
| - :param container_instance: The container instance UUID or full Amazon
|
| - Resource Name (ARN) of the container instance that you want to
|
| - filter the `ListTasks` results with. Specifying a
|
| - `containerInstance` will limit the results to tasks that belong to
|
| - that container instance.
|
| -
|
| - :type family: string
|
| - :param family: The name of the family that you want to filter the
|
| - `ListTasks` results with. Specifying a `family` will limit the
|
| - results to tasks that belong to that family.
|
| -
|
| - :type next_token: string
|
| - :param next_token: The `nextToken` value returned from a previous
|
| - paginated `ListTasks` request where `maxResults` was used and the
|
| - results exceeded the value of that parameter. Pagination continues
|
| - from the end of the previous results that returned the `nextToken`
|
| - value. This value is `null` when there are no more results to
|
| - return.
|
| -
|
| - :type max_results: integer
|
| - :param max_results: The maximum number of task results returned by
|
| - `ListTasks` in paginated output. When this parameter is used,
|
| - `ListTasks` only returns `maxResults` results in a single page
|
| - along with a `nextToken` response element. The remaining results of
|
| - the initial request can be seen by sending another `ListTasks`
|
| - request with the returned `nextToken` value. This value can be
|
| - between 1 and 100. If this parameter is not used, then `ListTasks`
|
| - returns up to 100 results and a `nextToken` value if applicable.
|
| -
|
| - """
|
| - params = {}
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if container_instance is not None:
|
| - params['containerInstance'] = container_instance
|
| - if family is not None:
|
| - params['family'] = family
|
| - if next_token is not None:
|
| - params['nextToken'] = next_token
|
| - if max_results is not None:
|
| - params['maxResults'] = max_results
|
| - return self._make_request(
|
| - action='ListTasks',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def register_container_instance(self, cluster=None,
|
| - instance_identity_document=None,
|
| - instance_identity_document_signature=None,
|
| - total_resources=None):
|
| - """
|
| - This action is only used by the Amazon EC2 Container Service
|
| - agent, and it is not intended for use outside of the agent.
|
| -
|
| -
|
| - Registers an Amazon EC2 instance into the specified cluster.
|
| - This instance will become available to place containers on.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that you want to register your container instance with.
|
| - If you do not specify a cluster, the default cluster is assumed..
|
| -
|
| - :type instance_identity_document: string
|
| - :param instance_identity_document:
|
| -
|
| - :type instance_identity_document_signature: string
|
| - :param instance_identity_document_signature:
|
| -
|
| - :type total_resources: list
|
| - :param total_resources:
|
| -
|
| - """
|
| - params = {}
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if instance_identity_document is not None:
|
| - params['instanceIdentityDocument'] = instance_identity_document
|
| - if instance_identity_document_signature is not None:
|
| - params['instanceIdentityDocumentSignature'] = instance_identity_document_signature
|
| - if total_resources is not None:
|
| - self.build_complex_list_params(
|
| - params, total_resources,
|
| - 'totalResources.member',
|
| - ('name', 'type', 'doubleValue', 'longValue', 'integerValue', 'stringSetValue'))
|
| - return self._make_request(
|
| - action='RegisterContainerInstance',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def register_task_definition(self, family, container_definitions):
|
| - """
|
| - Registers a new task definition from the supplied `family` and
|
| - `containerDefinitions`.
|
| -
|
| - :type family: string
|
| - :param family: You can specify a `family` for a task definition, which
|
| - allows you to track multiple versions of the same task definition.
|
| - You can think of the `family` as a name for your task definition.
|
| -
|
| - :type container_definitions: list
|
| - :param container_definitions: A list of container definitions in JSON
|
| - format that describe the different containers that make up your
|
| - task.
|
| -
|
| - """
|
| - params = {'family': family, }
|
| - self.build_complex_list_params(
|
| - params, container_definitions,
|
| - 'containerDefinitions.member',
|
| - ('name', 'image', 'cpu', 'memory', 'links', 'portMappings', 'essential', 'entryPoint', 'command', 'environment'))
|
| - return self._make_request(
|
| - action='RegisterTaskDefinition',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def run_task(self, task_definition, cluster=None, overrides=None,
|
| - count=None):
|
| - """
|
| - Start a task using random placement and the default Amazon ECS
|
| - scheduler. If you want to use your own scheduler or place a
|
| - task on a specific container instance, use `StartTask`
|
| - instead.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that you want to run your task on. If you do not
|
| - specify a cluster, the default cluster is assumed..
|
| -
|
| - :type task_definition: string
|
| - :param task_definition: The `family` and `revision` (
|
| - `family:revision`) or full Amazon Resource Name (ARN) of the task
|
| - definition that you want to run.
|
| -
|
| - :type overrides: dict
|
| - :param overrides:
|
| -
|
| - :type count: integer
|
| - :param count: The number of instances of the specified task that you
|
| - would like to place on your cluster.
|
| -
|
| - """
|
| - params = {'taskDefinition': task_definition, }
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if overrides is not None:
|
| - params['overrides'] = overrides
|
| - if count is not None:
|
| - params['count'] = count
|
| - return self._make_request(
|
| - action='RunTask',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def start_task(self, task_definition, container_instances, cluster=None,
|
| - overrides=None):
|
| - """
|
| - Starts a new task from the specified task definition on the
|
| - specified container instance or instances. If you want to use
|
| - the default Amazon ECS scheduler to place your task, use
|
| - `RunTask` instead.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that you want to start your task on. If you do not
|
| - specify a cluster, the default cluster is assumed..
|
| -
|
| - :type task_definition: string
|
| - :param task_definition: The `family` and `revision` (
|
| - `family:revision`) or full Amazon Resource Name (ARN) of the task
|
| - definition that you want to start.
|
| -
|
| - :type overrides: dict
|
| - :param overrides:
|
| -
|
| - :type container_instances: list
|
| - :param container_instances: The container instance UUIDs or full Amazon
|
| - Resource Name (ARN) entries for the container instances on which
|
| - you would like to place your task.
|
| -
|
| - """
|
| - params = {'taskDefinition': task_definition, }
|
| - self.build_list_params(params,
|
| - container_instances,
|
| - 'containerInstances.member')
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if overrides is not None:
|
| - params['overrides'] = overrides
|
| - return self._make_request(
|
| - action='StartTask',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def stop_task(self, task, cluster=None):
|
| - """
|
| - Stops a running task.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the task you want to stop. If you do not
|
| - specify a cluster, the default cluster is assumed..
|
| -
|
| - :type task: string
|
| - :param task: The task UUIDs or full Amazon Resource Name (ARN) entry of
|
| - the task you would like to stop.
|
| -
|
| - """
|
| - params = {'task': task, }
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - return self._make_request(
|
| - action='StopTask',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def submit_container_state_change(self, cluster=None, task=None,
|
| - container_name=None, status=None,
|
| - exit_code=None, reason=None,
|
| - network_bindings=None):
|
| - """
|
| - This action is only used by the Amazon EC2 Container Service
|
| - agent, and it is not intended for use outside of the agent.
|
| -
|
| -
|
| - Sent to acknowledge that a container changed states.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the container.
|
| -
|
| - :type task: string
|
| - :param task: The task UUID or full Amazon Resource Name (ARN) of the
|
| - task that hosts the container.
|
| -
|
| - :type container_name: string
|
| - :param container_name: The name of the container.
|
| -
|
| - :type status: string
|
| - :param status: The status of the state change request.
|
| -
|
| - :type exit_code: integer
|
| - :param exit_code: The exit code returned for the state change request.
|
| -
|
| - :type reason: string
|
| - :param reason: The reason for the state change request.
|
| -
|
| - :type network_bindings: list
|
| - :param network_bindings: The network bindings of the container.
|
| -
|
| - """
|
| - params = {}
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if task is not None:
|
| - params['task'] = task
|
| - if container_name is not None:
|
| - params['containerName'] = container_name
|
| - if status is not None:
|
| - params['status'] = status
|
| - if exit_code is not None:
|
| - params['exitCode'] = exit_code
|
| - if reason is not None:
|
| - params['reason'] = reason
|
| - if network_bindings is not None:
|
| - self.build_complex_list_params(
|
| - params, network_bindings,
|
| - 'networkBindings.member',
|
| - ('bindIP', 'containerPort', 'hostPort'))
|
| - return self._make_request(
|
| - action='SubmitContainerStateChange',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def submit_task_state_change(self, cluster=None, task=None, status=None,
|
| - reason=None):
|
| - """
|
| - This action is only used by the Amazon EC2 Container Service
|
| - agent, and it is not intended for use outside of the agent.
|
| -
|
| -
|
| - Sent to acknowledge that a task changed states.
|
| -
|
| - :type cluster: string
|
| - :param cluster: The short name or full Amazon Resource Name (ARN) of
|
| - the cluster that hosts the task.
|
| -
|
| - :type task: string
|
| - :param task: The task UUID or full Amazon Resource Name (ARN) of the
|
| - task in the state change request.
|
| -
|
| - :type status: string
|
| - :param status: The status of the state change request.
|
| -
|
| - :type reason: string
|
| - :param reason: The reason for the state change request.
|
| -
|
| - """
|
| - params = {}
|
| - if cluster is not None:
|
| - params['cluster'] = cluster
|
| - if task is not None:
|
| - params['task'] = task
|
| - if status is not None:
|
| - params['status'] = status
|
| - if reason is not None:
|
| - params['reason'] = reason
|
| - return self._make_request(
|
| - action='SubmitTaskStateChange',
|
| - verb='POST',
|
| - path='/', params=params)
|
| -
|
| - def _make_request(self, action, verb, path, params):
|
| - params['ContentType'] = 'JSON'
|
| - response = self.make_request(action=action, verb='POST',
|
| - path='/', params=params)
|
| - body = response.read().decode('utf-8')
|
| - boto.log.debug(body)
|
| - if response.status == 200:
|
| - return json.loads(body)
|
| - else:
|
| - json_body = json.loads(body)
|
| - fault_name = json_body.get('Error', {}).get('Code', None)
|
| - exception_class = self._faults.get(fault_name, self.ResponseError)
|
| - raise exception_class(response.status, response.reason,
|
| - body=json_body)
|
|
|