Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1547)

Unified Diff: third_party/gsutil/third_party/boto/boto/codedeploy/layer1.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/boto/boto/codedeploy/layer1.py
diff --git a/third_party/gsutil/third_party/boto/boto/codedeploy/layer1.py b/third_party/gsutil/third_party/boto/boto/codedeploy/layer1.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c61a08342962bfcfda3538b78b0337f33c3cea7
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/boto/codedeploy/layer1.py
@@ -0,0 +1,899 @@
+# 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.codedeploy import exceptions
+
+
+class CodeDeployConnection(AWSQueryConnection):
+ """
+ AWS CodeDeploy **Overview**
+ This is the AWS CodeDeploy API Reference. This guide provides
+ descriptions of the AWS CodeDeploy APIs. For additional
+ information, see the `AWS CodeDeploy User Guide`_.
+ **Using the APIs**
+ You can use the AWS CodeDeploy APIs to work with the following
+ items:
+
+
+ + Applications , which are unique identifiers that AWS CodeDeploy
+ uses to ensure that the correct combinations of revisions,
+ deployment configurations, and deployment groups are being
+ referenced during deployments. You can work with applications by
+ calling CreateApplication, DeleteApplication, GetApplication,
+ ListApplications, BatchGetApplications, and UpdateApplication to
+ create, delete, and get information about applications, and to
+ change information about an application, respectively.
+ + Deployment configurations , which are sets of deployment rules
+ and deployment success and failure conditions that AWS CodeDeploy
+ uses during deployments. You can work with deployment
+ configurations by calling CreateDeploymentConfig,
+ DeleteDeploymentConfig, GetDeploymentConfig, and
+ ListDeploymentConfigs to create, delete, and get information about
+ deployment configurations, respectively.
+ + Deployment groups , which represent groups of Amazon EC2
+ instances to which application revisions can be deployed. You can
+ work with deployment groups by calling CreateDeploymentGroup,
+ DeleteDeploymentGroup, GetDeploymentGroup, ListDeploymentGroups,
+ and UpdateDeploymentGroup to create, delete, and get information
+ about single and multiple deployment groups, and to change
+ information about a deployment group, respectively.
+ + Deployment instances (also known simply as instances ), which
+ represent Amazon EC2 instances to which application revisions are
+ deployed. Deployment instances are identified by their Amazon EC2
+ tags or Auto Scaling group names. Deployment instances belong to
+ deployment groups. You can work with deployment instances by
+ calling GetDeploymentInstance and ListDeploymentInstances to get
+ information about single and multiple deployment instances,
+ respectively.
+ + Deployments , which represent the process of deploying revisions
+ to deployment groups. You can work with deployments by calling
+ CreateDeployment, GetDeployment, ListDeployments,
+ BatchGetDeployments, and StopDeployment to create and get
+ information about deployments, and to stop a deployment,
+ respectively.
+ + Application revisions (also known simply as revisions ), which
+ are archive files that are stored in Amazon S3 buckets or GitHub
+ repositories. These revisions contain source content (such as
+ source code, web pages, executable files, any deployment scripts,
+ and similar) along with an Application Specification file (AppSpec
+ file). (The AppSpec file is unique to AWS CodeDeploy; it defines a
+ series of deployment actions that you want AWS CodeDeploy to
+ execute.) An application revision is uniquely identified by its
+ Amazon S3 object key and its ETag, version, or both. Application
+ revisions are deployed to deployment groups. You can work with
+ application revisions by calling GetApplicationRevision,
+ ListApplicationRevisions, and RegisterApplicationRevision to get
+ information about application revisions and to inform AWS
+ CodeDeploy about an application revision, respectively.
+ """
+ APIVersion = "2014-10-06"
+ DefaultRegionName = "us-east-1"
+ DefaultRegionEndpoint = "codedeploy.us-east-1.amazonaws.com"
+ ServiceName = "codedeploy"
+ TargetPrefix = "CodeDeploy_20141006"
+ ResponseError = JSONResponseError
+
+ _faults = {
+ "InvalidDeploymentIdException": exceptions.InvalidDeploymentIdException,
+ "InvalidDeploymentGroupNameException": exceptions.InvalidDeploymentGroupNameException,
+ "DeploymentConfigAlreadyExistsException": exceptions.DeploymentConfigAlreadyExistsException,
+ "InvalidRoleException": exceptions.InvalidRoleException,
+ "RoleRequiredException": exceptions.RoleRequiredException,
+ "DeploymentGroupAlreadyExistsException": exceptions.DeploymentGroupAlreadyExistsException,
+ "DeploymentConfigLimitExceededException": exceptions.DeploymentConfigLimitExceededException,
+ "InvalidNextTokenException": exceptions.InvalidNextTokenException,
+ "InvalidDeploymentConfigNameException": exceptions.InvalidDeploymentConfigNameException,
+ "InvalidSortByException": exceptions.InvalidSortByException,
+ "InstanceDoesNotExistException": exceptions.InstanceDoesNotExistException,
+ "InvalidMinimumHealthyHostValueException": exceptions.InvalidMinimumHealthyHostValueException,
+ "ApplicationLimitExceededException": exceptions.ApplicationLimitExceededException,
+ "ApplicationNameRequiredException": exceptions.ApplicationNameRequiredException,
+ "InvalidEC2TagException": exceptions.InvalidEC2TagException,
+ "DeploymentDoesNotExistException": exceptions.DeploymentDoesNotExistException,
+ "DeploymentLimitExceededException": exceptions.DeploymentLimitExceededException,
+ "InvalidInstanceStatusException": exceptions.InvalidInstanceStatusException,
+ "RevisionRequiredException": exceptions.RevisionRequiredException,
+ "InvalidBucketNameFilterException": exceptions.InvalidBucketNameFilterException,
+ "DeploymentGroupLimitExceededException": exceptions.DeploymentGroupLimitExceededException,
+ "DeploymentGroupDoesNotExistException": exceptions.DeploymentGroupDoesNotExistException,
+ "DeploymentConfigNameRequiredException": exceptions.DeploymentConfigNameRequiredException,
+ "DeploymentAlreadyCompletedException": exceptions.DeploymentAlreadyCompletedException,
+ "RevisionDoesNotExistException": exceptions.RevisionDoesNotExistException,
+ "DeploymentGroupNameRequiredException": exceptions.DeploymentGroupNameRequiredException,
+ "DeploymentIdRequiredException": exceptions.DeploymentIdRequiredException,
+ "DeploymentConfigDoesNotExistException": exceptions.DeploymentConfigDoesNotExistException,
+ "BucketNameFilterRequiredException": exceptions.BucketNameFilterRequiredException,
+ "InvalidTimeRangeException": exceptions.InvalidTimeRangeException,
+ "ApplicationDoesNotExistException": exceptions.ApplicationDoesNotExistException,
+ "InvalidRevisionException": exceptions.InvalidRevisionException,
+ "InvalidSortOrderException": exceptions.InvalidSortOrderException,
+ "InvalidOperationException": exceptions.InvalidOperationException,
+ "InvalidAutoScalingGroupException": exceptions.InvalidAutoScalingGroupException,
+ "InvalidApplicationNameException": exceptions.InvalidApplicationNameException,
+ "DescriptionTooLongException": exceptions.DescriptionTooLongException,
+ "ApplicationAlreadyExistsException": exceptions.ApplicationAlreadyExistsException,
+ "InvalidDeployedStateFilterException": exceptions.InvalidDeployedStateFilterException,
+ "DeploymentNotStartedException": exceptions.DeploymentNotStartedException,
+ "DeploymentConfigInUseException": exceptions.DeploymentConfigInUseException,
+ "InstanceIdRequiredException": exceptions.InstanceIdRequiredException,
+ "InvalidKeyPrefixFilterException": exceptions.InvalidKeyPrefixFilterException,
+ "InvalidDeploymentStatusException": exceptions.InvalidDeploymentStatusException,
+ }
+
+
+ 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(CodeDeployConnection, self).__init__(**kwargs)
+ self.region = region
+
+ def _required_auth_capability(self):
+ return ['hmac-v4']
+
+ def batch_get_applications(self, application_names=None):
+ """
+ Gets information about one or more applications.
+
+ :type application_names: list
+ :param application_names: A list of application names, with multiple
+ application names separated by spaces.
+
+ """
+ params = {}
+ if application_names is not None:
+ params['applicationNames'] = application_names
+ return self.make_request(action='BatchGetApplications',
+ body=json.dumps(params))
+
+ def batch_get_deployments(self, deployment_ids=None):
+ """
+ Gets information about one or more deployments.
+
+ :type deployment_ids: list
+ :param deployment_ids: A list of deployment IDs, with multiple
+ deployment IDs separated by spaces.
+
+ """
+ params = {}
+ if deployment_ids is not None:
+ params['deploymentIds'] = deployment_ids
+ return self.make_request(action='BatchGetDeployments',
+ body=json.dumps(params))
+
+ def create_application(self, application_name):
+ """
+ Creates a new application.
+
+ :type application_name: string
+ :param application_name: The name of the application. This name must be
+ unique within the AWS user account.
+
+ """
+ params = {'applicationName': application_name, }
+ return self.make_request(action='CreateApplication',
+ body=json.dumps(params))
+
+ def create_deployment(self, application_name, deployment_group_name=None,
+ revision=None, deployment_config_name=None,
+ description=None,
+ ignore_application_stop_failures=None):
+ """
+ Deploys an application revision to the specified deployment
+ group.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type deployment_group_name: string
+ :param deployment_group_name: The deployment group's name.
+
+ :type revision: dict
+ :param revision: The type of revision to deploy, along with information
+ about the revision's location.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: The name of an existing deployment
+ configuration within the AWS user account.
+ If not specified, the value configured in the deployment group will be
+ used as the default. If the deployment group does not have a
+ deployment configuration associated with it, then
+ CodeDeployDefault.OneAtATime will be used by default.
+
+ :type description: string
+ :param description: A comment about the deployment.
+
+ :type ignore_application_stop_failures: boolean
+ :param ignore_application_stop_failures: If set to true, then if the
+ deployment causes the ApplicationStop deployment lifecycle event to
+ fail to a specific instance, the deployment will not be considered
+ to have failed to that instance at that point and will continue on
+ to the BeforeInstall deployment lifecycle event.
+ If set to false or not specified, then if the deployment causes the
+ ApplicationStop deployment lifecycle event to fail to a specific
+ instance, the deployment will stop to that instance, and the
+ deployment to that instance will be considered to have failed.
+
+ """
+ params = {'applicationName': application_name, }
+ if deployment_group_name is not None:
+ params['deploymentGroupName'] = deployment_group_name
+ if revision is not None:
+ params['revision'] = revision
+ if deployment_config_name is not None:
+ params['deploymentConfigName'] = deployment_config_name
+ if description is not None:
+ params['description'] = description
+ if ignore_application_stop_failures is not None:
+ params['ignoreApplicationStopFailures'] = ignore_application_stop_failures
+ return self.make_request(action='CreateDeployment',
+ body=json.dumps(params))
+
+ def create_deployment_config(self, deployment_config_name,
+ minimum_healthy_hosts=None):
+ """
+ Creates a new deployment configuration.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: The name of the deployment configuration
+ to create.
+
+ :type minimum_healthy_hosts: dict
+ :param minimum_healthy_hosts: The minimum number of healthy instances
+ that should be available at any time during the deployment. There
+ are two parameters expected in the input: type and value.
+ The type parameter takes either of the following values:
+
+
+ + HOST_COUNT: The value parameter represents the minimum number of
+ healthy instances, as an absolute value.
+ + FLEET_PERCENT: The value parameter represents the minimum number of
+ healthy instances, as a percentage of the total number of instances
+ in the deployment. If you specify FLEET_PERCENT, then at the start
+ of the deployment AWS CodeDeploy converts the percentage to the
+ equivalent number of instances and rounds fractional instances up.
+
+
+ The value parameter takes an integer.
+
+ For example, to set a minimum of 95% healthy instances, specify a type
+ of FLEET_PERCENT and a value of 95.
+
+ """
+ params = {'deploymentConfigName': deployment_config_name, }
+ if minimum_healthy_hosts is not None:
+ params['minimumHealthyHosts'] = minimum_healthy_hosts
+ return self.make_request(action='CreateDeploymentConfig',
+ body=json.dumps(params))
+
+ def create_deployment_group(self, application_name,
+ deployment_group_name,
+ deployment_config_name=None,
+ ec_2_tag_filters=None,
+ auto_scaling_groups=None,
+ service_role_arn=None):
+ """
+ Creates a new deployment group for application revisions to be
+ deployed to.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type deployment_group_name: string
+ :param deployment_group_name: The name of an existing deployment group
+ for the specified application.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: If specified, the deployment
+ configuration name must be one of the predefined values, or it can
+ be a custom deployment configuration:
+
+ + CodeDeployDefault.AllAtOnce deploys an application revision to up to
+ all of the Amazon EC2 instances at once. The overall deployment
+ succeeds if the application revision deploys to at least one of the
+ instances. The overall deployment fails after the application
+ revision fails to deploy to all of the instances. For example, for
+ 9 instances, deploy to up to all 9 instances at once. The overall
+ deployment succeeds if any of the 9 instances is successfully
+ deployed to, and it fails if all 9 instances fail to be deployed
+ to.
+ + CodeDeployDefault.HalfAtATime deploys to up to half of the instances
+ at a time (with fractions rounded down). The overall deployment
+ succeeds if the application revision deploys to at least half of
+ the instances (with fractions rounded up); otherwise, the
+ deployment fails. For example, for 9 instances, deploy to up to 4
+ instances at a time. The overall deployment succeeds if 5 or more
+ instances are successfully deployed to; otherwise, the deployment
+ fails. Note that the deployment may successfully deploy to some
+ instances, even if the overall deployment fails.
+ + CodeDeployDefault.OneAtATime deploys the application revision to only
+ one of the instances at a time. The overall deployment succeeds if
+ the application revision deploys to all of the instances. The
+ overall deployment fails after the application revision first fails
+ to deploy to any one instance. For example, for 9 instances, deploy
+ to one instance at a time. The overall deployment succeeds if all 9
+ instances are successfully deployed to, and it fails if any of one
+ of the 9 instances fail to be deployed to. Note that the deployment
+ may successfully deploy to some instances, even if the overall
+ deployment fails. This is the default deployment configuration if a
+ configuration isn't specified for either the deployment or the
+ deployment group.
+
+
+ To create a custom deployment configuration, call the create deployment
+ configuration operation.
+
+ :type ec_2_tag_filters: list
+ :param ec_2_tag_filters: The Amazon EC2 tags to filter on.
+
+ :type auto_scaling_groups: list
+ :param auto_scaling_groups: A list of associated Auto Scaling groups.
+
+ :type service_role_arn: string
+ :param service_role_arn: A service role ARN that allows AWS CodeDeploy
+ to act on the user's behalf when interacting with AWS services.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'deploymentGroupName': deployment_group_name,
+ }
+ if deployment_config_name is not None:
+ params['deploymentConfigName'] = deployment_config_name
+ if ec_2_tag_filters is not None:
+ params['ec2TagFilters'] = ec_2_tag_filters
+ if auto_scaling_groups is not None:
+ params['autoScalingGroups'] = auto_scaling_groups
+ if service_role_arn is not None:
+ params['serviceRoleArn'] = service_role_arn
+ return self.make_request(action='CreateDeploymentGroup',
+ body=json.dumps(params))
+
+ def delete_application(self, application_name):
+ """
+ Deletes an application.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ """
+ params = {'applicationName': application_name, }
+ return self.make_request(action='DeleteApplication',
+ body=json.dumps(params))
+
+ def delete_deployment_config(self, deployment_config_name):
+ """
+ Deletes a deployment configuration.
+
+ A deployment configuration cannot be deleted if it is
+ currently in use. Also, predefined configurations cannot be
+ deleted.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: The name of an existing deployment
+ configuration within the AWS user account.
+
+ """
+ params = {'deploymentConfigName': deployment_config_name, }
+ return self.make_request(action='DeleteDeploymentConfig',
+ body=json.dumps(params))
+
+ def delete_deployment_group(self, application_name,
+ deployment_group_name):
+ """
+ Deletes a deployment group.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type deployment_group_name: string
+ :param deployment_group_name: The name of an existing deployment group
+ for the specified application.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'deploymentGroupName': deployment_group_name,
+ }
+ return self.make_request(action='DeleteDeploymentGroup',
+ body=json.dumps(params))
+
+ def get_application(self, application_name):
+ """
+ Gets information about an application.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ """
+ params = {'applicationName': application_name, }
+ return self.make_request(action='GetApplication',
+ body=json.dumps(params))
+
+ def get_application_revision(self, application_name, revision):
+ """
+ Gets information about an application revision.
+
+ :type application_name: string
+ :param application_name: The name of the application that corresponds
+ to the revision.
+
+ :type revision: dict
+ :param revision: Information about the application revision to get,
+ including the revision's type and its location.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'revision': revision,
+ }
+ return self.make_request(action='GetApplicationRevision',
+ body=json.dumps(params))
+
+ def get_deployment(self, deployment_id):
+ """
+ Gets information about a deployment.
+
+ :type deployment_id: string
+ :param deployment_id: An existing deployment ID within the AWS user
+ account.
+
+ """
+ params = {'deploymentId': deployment_id, }
+ return self.make_request(action='GetDeployment',
+ body=json.dumps(params))
+
+ def get_deployment_config(self, deployment_config_name):
+ """
+ Gets information about a deployment configuration.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: The name of an existing deployment
+ configuration within the AWS user account.
+
+ """
+ params = {'deploymentConfigName': deployment_config_name, }
+ return self.make_request(action='GetDeploymentConfig',
+ body=json.dumps(params))
+
+ def get_deployment_group(self, application_name, deployment_group_name):
+ """
+ Gets information about a deployment group.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type deployment_group_name: string
+ :param deployment_group_name: The name of an existing deployment group
+ for the specified application.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'deploymentGroupName': deployment_group_name,
+ }
+ return self.make_request(action='GetDeploymentGroup',
+ body=json.dumps(params))
+
+ def get_deployment_instance(self, deployment_id, instance_id):
+ """
+ Gets information about an Amazon EC2 instance as part of a
+ deployment.
+
+ :type deployment_id: string
+ :param deployment_id: The unique ID of a deployment.
+
+ :type instance_id: string
+ :param instance_id: The unique ID of an Amazon EC2 instance in the
+ deployment's deployment group.
+
+ """
+ params = {
+ 'deploymentId': deployment_id,
+ 'instanceId': instance_id,
+ }
+ return self.make_request(action='GetDeploymentInstance',
+ body=json.dumps(params))
+
+ def list_application_revisions(self, application_name, sort_by=None,
+ sort_order=None, s_3_bucket=None,
+ s_3_key_prefix=None, deployed=None,
+ next_token=None):
+ """
+ Lists information about revisions for an application.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type sort_by: string
+ :param sort_by: The column name to sort the list results by:
+
+ + registerTime: Sort the list results by when the revisions were
+ registered with AWS CodeDeploy.
+ + firstUsedTime: Sort the list results by when the revisions were first
+ used by in a deployment.
+ + lastUsedTime: Sort the list results by when the revisions were last
+ used in a deployment.
+
+
+ If not specified or set to null, the results will be returned in an
+ arbitrary order.
+
+ :type sort_order: string
+ :param sort_order: The order to sort the list results by:
+
+ + ascending: Sort the list results in ascending order.
+ + descending: Sort the list results in descending order.
+
+
+ If not specified, the results will be sorted in ascending order.
+
+ If set to null, the results will be sorted in an arbitrary order.
+
+ :type s_3_bucket: string
+ :param s_3_bucket: A specific Amazon S3 bucket name to limit the search
+ for revisions.
+ If set to null, then all of the user's buckets will be searched.
+
+ :type s_3_key_prefix: string
+ :param s_3_key_prefix: A specific key prefix for the set of Amazon S3
+ objects to limit the search for revisions.
+
+ :type deployed: string
+ :param deployed:
+ Whether to list revisions based on whether the revision is the target
+ revision of an deployment group:
+
+
+ + include: List revisions that are target revisions of a deployment
+ group.
+ + exclude: Do not list revisions that are target revisions of a
+ deployment group.
+ + ignore: List all revisions, regardless of whether they are target
+ revisions of a deployment group.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list application revisions call, which can be used to return the
+ next set of applications in the list.
+
+ """
+ params = {'applicationName': application_name, }
+ if sort_by is not None:
+ params['sortBy'] = sort_by
+ if sort_order is not None:
+ params['sortOrder'] = sort_order
+ if s_3_bucket is not None:
+ params['s3Bucket'] = s_3_bucket
+ if s_3_key_prefix is not None:
+ params['s3KeyPrefix'] = s_3_key_prefix
+ if deployed is not None:
+ params['deployed'] = deployed
+ if next_token is not None:
+ params['nextToken'] = next_token
+ return self.make_request(action='ListApplicationRevisions',
+ body=json.dumps(params))
+
+ def list_applications(self, next_token=None):
+ """
+ Lists the applications registered within the AWS user account.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list applications call, which can be used to return the next set of
+ applications in the list.
+
+ """
+ params = {}
+ if next_token is not None:
+ params['nextToken'] = next_token
+ return self.make_request(action='ListApplications',
+ body=json.dumps(params))
+
+ def list_deployment_configs(self, next_token=None):
+ """
+ Lists the deployment configurations within the AWS user
+ account.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list deployment configurations call, which can be used to return
+ the next set of deployment configurations in the list.
+
+ """
+ params = {}
+ if next_token is not None:
+ params['nextToken'] = next_token
+ return self.make_request(action='ListDeploymentConfigs',
+ body=json.dumps(params))
+
+ def list_deployment_groups(self, application_name, next_token=None):
+ """
+ Lists the deployment groups for an application registered
+ within the AWS user account.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list deployment groups call, which can be used to return the next
+ set of deployment groups in the list.
+
+ """
+ params = {'applicationName': application_name, }
+ if next_token is not None:
+ params['nextToken'] = next_token
+ return self.make_request(action='ListDeploymentGroups',
+ body=json.dumps(params))
+
+ def list_deployment_instances(self, deployment_id, next_token=None,
+ instance_status_filter=None):
+ """
+ Lists the Amazon EC2 instances for a deployment within the AWS
+ user account.
+
+ :type deployment_id: string
+ :param deployment_id: The unique ID of a deployment.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list deployment instances call, which can be used to return the
+ next set of deployment instances in the list.
+
+ :type instance_status_filter: list
+ :param instance_status_filter:
+ A subset of instances to list, by status:
+
+
+ + Pending: Include in the resulting list those instances with pending
+ deployments.
+ + InProgress: Include in the resulting list those instances with in-
+ progress deployments.
+ + Succeeded: Include in the resulting list those instances with
+ succeeded deployments.
+ + Failed: Include in the resulting list those instances with failed
+ deployments.
+ + Skipped: Include in the resulting list those instances with skipped
+ deployments.
+ + Unknown: Include in the resulting list those instances with
+ deployments in an unknown state.
+
+ """
+ params = {'deploymentId': deployment_id, }
+ if next_token is not None:
+ params['nextToken'] = next_token
+ if instance_status_filter is not None:
+ params['instanceStatusFilter'] = instance_status_filter
+ return self.make_request(action='ListDeploymentInstances',
+ body=json.dumps(params))
+
+ def list_deployments(self, application_name=None,
+ deployment_group_name=None,
+ include_only_statuses=None, create_time_range=None,
+ next_token=None):
+ """
+ Lists the deployments under a deployment group for an
+ application registered within the AWS user account.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type deployment_group_name: string
+ :param deployment_group_name: The name of an existing deployment group
+ for the specified application.
+
+ :type include_only_statuses: list
+ :param include_only_statuses: A subset of deployments to list, by
+ status:
+
+ + Created: Include in the resulting list created deployments.
+ + Queued: Include in the resulting list queued deployments.
+ + In Progress: Include in the resulting list in-progress deployments.
+ + Succeeded: Include in the resulting list succeeded deployments.
+ + Failed: Include in the resulting list failed deployments.
+ + Aborted: Include in the resulting list aborted deployments.
+
+ :type create_time_range: dict
+ :param create_time_range: A deployment creation start- and end-time
+ range for returning a subset of the list of deployments.
+
+ :type next_token: string
+ :param next_token: An identifier that was returned from the previous
+ list deployments call, which can be used to return the next set of
+ deployments in the list.
+
+ """
+ params = {}
+ if application_name is not None:
+ params['applicationName'] = application_name
+ if deployment_group_name is not None:
+ params['deploymentGroupName'] = deployment_group_name
+ if include_only_statuses is not None:
+ params['includeOnlyStatuses'] = include_only_statuses
+ if create_time_range is not None:
+ params['createTimeRange'] = create_time_range
+ if next_token is not None:
+ params['nextToken'] = next_token
+ return self.make_request(action='ListDeployments',
+ body=json.dumps(params))
+
+ def register_application_revision(self, application_name, revision,
+ description=None):
+ """
+ Registers with AWS CodeDeploy a revision for the specified
+ application.
+
+ :type application_name: string
+ :param application_name: The name of an existing AWS CodeDeploy
+ application within the AWS user account.
+
+ :type description: string
+ :param description: A comment about the revision.
+
+ :type revision: dict
+ :param revision: Information about the application revision to
+ register, including the revision's type and its location.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'revision': revision,
+ }
+ if description is not None:
+ params['description'] = description
+ return self.make_request(action='RegisterApplicationRevision',
+ body=json.dumps(params))
+
+ def stop_deployment(self, deployment_id):
+ """
+ Attempts to stop an ongoing deployment.
+
+ :type deployment_id: string
+ :param deployment_id: The unique ID of a deployment.
+
+ """
+ params = {'deploymentId': deployment_id, }
+ return self.make_request(action='StopDeployment',
+ body=json.dumps(params))
+
+ def update_application(self, application_name=None,
+ new_application_name=None):
+ """
+ Changes an existing application's name.
+
+ :type application_name: string
+ :param application_name: The current name of the application that you
+ want to change.
+
+ :type new_application_name: string
+ :param new_application_name: The new name that you want to change the
+ application to.
+
+ """
+ params = {}
+ if application_name is not None:
+ params['applicationName'] = application_name
+ if new_application_name is not None:
+ params['newApplicationName'] = new_application_name
+ return self.make_request(action='UpdateApplication',
+ body=json.dumps(params))
+
+ def update_deployment_group(self, application_name,
+ current_deployment_group_name,
+ new_deployment_group_name=None,
+ deployment_config_name=None,
+ ec_2_tag_filters=None,
+ auto_scaling_groups=None,
+ service_role_arn=None):
+ """
+ Changes information about an existing deployment group.
+
+ :type application_name: string
+ :param application_name: The application name corresponding to the
+ deployment group to update.
+
+ :type current_deployment_group_name: string
+ :param current_deployment_group_name: The current name of the existing
+ deployment group.
+
+ :type new_deployment_group_name: string
+ :param new_deployment_group_name: The new name of the deployment group,
+ if you want to change it.
+
+ :type deployment_config_name: string
+ :param deployment_config_name: The replacement deployment configuration
+ name to use, if you want to change it.
+
+ :type ec_2_tag_filters: list
+ :param ec_2_tag_filters: The replacement set of Amazon EC2 tags to
+ filter on, if you want to change them.
+
+ :type auto_scaling_groups: list
+ :param auto_scaling_groups: The replacement list of Auto Scaling groups
+ to be included in the deployment group, if you want to change them.
+
+ :type service_role_arn: string
+ :param service_role_arn: A replacement service role's ARN, if you want
+ to change it.
+
+ """
+ params = {
+ 'applicationName': application_name,
+ 'currentDeploymentGroupName': current_deployment_group_name,
+ }
+ if new_deployment_group_name is not None:
+ params['newDeploymentGroupName'] = new_deployment_group_name
+ if deployment_config_name is not None:
+ params['deploymentConfigName'] = deployment_config_name
+ if ec_2_tag_filters is not None:
+ params['ec2TagFilters'] = ec_2_tag_filters
+ if auto_scaling_groups is not None:
+ params['autoScalingGroups'] = auto_scaling_groups
+ if service_role_arn is not None:
+ params['serviceRoleArn'] = service_role_arn
+ return self.make_request(action='UpdateDeploymentGroup',
+ body=json.dumps(params))
+
+ def make_request(self, action, body):
+ headers = {
+ 'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action),
+ 'Host': self.region.endpoint,
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'Content-Length': str(len(body)),
+ }
+ http_request = self.build_base_http_request(
+ method='POST', path='/', auth_path='/', params={},
+ headers=headers, data=body)
+ response = self._mexe(http_request, sender=None,
+ override_num_retries=10)
+ response_body = response.read().decode('utf-8')
+ boto.log.debug(response_body)
+ if response.status == 200:
+ if response_body:
+ return json.loads(response_body)
+ else:
+ json_body = json.loads(response_body)
+ fault_name = json_body.get('__type', None)
+ exception_class = self._faults.get(fault_name, self.ResponseError)
+ raise exception_class(response.status, response.reason,
+ body=json_body)
+

Powered by Google App Engine
This is Rietveld 408576698