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) |
+ |