Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/boto/codedeploy/layer1.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:18:57 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d30785e31577 |
---|---|
1 # Copyright (c) 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved | |
2 # | |
3 # Permission is hereby granted, free of charge, to any person obtaining a | |
4 # copy of this software and associated documentation files (the | |
5 # "Software"), to deal in the Software without restriction, including | |
6 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
7 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
8 # persons to whom the Software is furnished to do so, subject to the fol- | |
9 # lowing conditions: | |
10 # | |
11 # The above copyright notice and this permission notice shall be included | |
12 # in all copies or substantial portions of the Software. | |
13 # | |
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
20 # IN THE SOFTWARE. | |
21 # | |
22 | |
23 import boto | |
24 from boto.compat import json | |
25 from boto.connection import AWSQueryConnection | |
26 from boto.regioninfo import RegionInfo | |
27 from boto.exception import JSONResponseError | |
28 from boto.codedeploy import exceptions | |
29 | |
30 | |
31 class CodeDeployConnection(AWSQueryConnection): | |
32 """ | |
33 AWS CodeDeploy **Overview** | |
34 This is the AWS CodeDeploy API Reference. This guide provides | |
35 descriptions of the AWS CodeDeploy APIs. For additional | |
36 information, see the `AWS CodeDeploy User Guide`_. | |
37 **Using the APIs** | |
38 You can use the AWS CodeDeploy APIs to work with the following | |
39 items: | |
40 | |
41 | |
42 + Applications , which are unique identifiers that AWS CodeDeploy | |
43 uses to ensure that the correct combinations of revisions, | |
44 deployment configurations, and deployment groups are being | |
45 referenced during deployments. You can work with applications by | |
46 calling CreateApplication, DeleteApplication, GetApplication, | |
47 ListApplications, BatchGetApplications, and UpdateApplication to | |
48 create, delete, and get information about applications, and to | |
49 change information about an application, respectively. | |
50 + Deployment configurations , which are sets of deployment rules | |
51 and deployment success and failure conditions that AWS CodeDeploy | |
52 uses during deployments. You can work with deployment | |
53 configurations by calling CreateDeploymentConfig, | |
54 DeleteDeploymentConfig, GetDeploymentConfig, and | |
55 ListDeploymentConfigs to create, delete, and get information about | |
56 deployment configurations, respectively. | |
57 + Deployment groups , which represent groups of Amazon EC2 | |
58 instances to which application revisions can be deployed. You can | |
59 work with deployment groups by calling CreateDeploymentGroup, | |
60 DeleteDeploymentGroup, GetDeploymentGroup, ListDeploymentGroups, | |
61 and UpdateDeploymentGroup to create, delete, and get information | |
62 about single and multiple deployment groups, and to change | |
63 information about a deployment group, respectively. | |
64 + Deployment instances (also known simply as instances ), which | |
65 represent Amazon EC2 instances to which application revisions are | |
66 deployed. Deployment instances are identified by their Amazon EC2 | |
67 tags or Auto Scaling group names. Deployment instances belong to | |
68 deployment groups. You can work with deployment instances by | |
69 calling GetDeploymentInstance and ListDeploymentInstances to get | |
70 information about single and multiple deployment instances, | |
71 respectively. | |
72 + Deployments , which represent the process of deploying revisions | |
73 to deployment groups. You can work with deployments by calling | |
74 CreateDeployment, GetDeployment, ListDeployments, | |
75 BatchGetDeployments, and StopDeployment to create and get | |
76 information about deployments, and to stop a deployment, | |
77 respectively. | |
78 + Application revisions (also known simply as revisions ), which | |
79 are archive files that are stored in Amazon S3 buckets or GitHub | |
80 repositories. These revisions contain source content (such as | |
81 source code, web pages, executable files, any deployment scripts, | |
82 and similar) along with an Application Specification file (AppSpec | |
83 file). (The AppSpec file is unique to AWS CodeDeploy; it defines a | |
84 series of deployment actions that you want AWS CodeDeploy to | |
85 execute.) An application revision is uniquely identified by its | |
86 Amazon S3 object key and its ETag, version, or both. Application | |
87 revisions are deployed to deployment groups. You can work with | |
88 application revisions by calling GetApplicationRevision, | |
89 ListApplicationRevisions, and RegisterApplicationRevision to get | |
90 information about application revisions and to inform AWS | |
91 CodeDeploy about an application revision, respectively. | |
92 """ | |
93 APIVersion = "2014-10-06" | |
94 DefaultRegionName = "us-east-1" | |
95 DefaultRegionEndpoint = "codedeploy.us-east-1.amazonaws.com" | |
96 ServiceName = "codedeploy" | |
97 TargetPrefix = "CodeDeploy_20141006" | |
98 ResponseError = JSONResponseError | |
99 | |
100 _faults = { | |
101 "InvalidDeploymentIdException": exceptions.InvalidDeploymentIdException, | |
102 "InvalidDeploymentGroupNameException": exceptions.InvalidDeploymentGroupNameException, | |
103 "DeploymentConfigAlreadyExistsException": exceptions.DeploymentConfigAlreadyExistsException, | |
104 "InvalidRoleException": exceptions.InvalidRoleException, | |
105 "RoleRequiredException": exceptions.RoleRequiredException, | |
106 "DeploymentGroupAlreadyExistsException": exceptions.DeploymentGroupAlreadyExistsException, | |
107 "DeploymentConfigLimitExceededException": exceptions.DeploymentConfigLimitExceededException, | |
108 "InvalidNextTokenException": exceptions.InvalidNextTokenException, | |
109 "InvalidDeploymentConfigNameException": exceptions.InvalidDeploymentConfigNameException, | |
110 "InvalidSortByException": exceptions.InvalidSortByException, | |
111 "InstanceDoesNotExistException": exceptions.InstanceDoesNotExistException, | |
112 "InvalidMinimumHealthyHostValueException": exceptions.InvalidMinimumHealthyHostValueException, | |
113 "ApplicationLimitExceededException": exceptions.ApplicationLimitExceededException, | |
114 "ApplicationNameRequiredException": exceptions.ApplicationNameRequiredException, | |
115 "InvalidEC2TagException": exceptions.InvalidEC2TagException, | |
116 "DeploymentDoesNotExistException": exceptions.DeploymentDoesNotExistException, | |
117 "DeploymentLimitExceededException": exceptions.DeploymentLimitExceededException, | |
118 "InvalidInstanceStatusException": exceptions.InvalidInstanceStatusException, | |
119 "RevisionRequiredException": exceptions.RevisionRequiredException, | |
120 "InvalidBucketNameFilterException": exceptions.InvalidBucketNameFilterException, | |
121 "DeploymentGroupLimitExceededException": exceptions.DeploymentGroupLimitExceededException, | |
122 "DeploymentGroupDoesNotExistException": exceptions.DeploymentGroupDoesNotExistException, | |
123 "DeploymentConfigNameRequiredException": exceptions.DeploymentConfigNameRequiredException, | |
124 "DeploymentAlreadyCompletedException": exceptions.DeploymentAlreadyCompletedException, | |
125 "RevisionDoesNotExistException": exceptions.RevisionDoesNotExistException, | |
126 "DeploymentGroupNameRequiredException": exceptions.DeploymentGroupNameRequiredException, | |
127 "DeploymentIdRequiredException": exceptions.DeploymentIdRequiredException, | |
128 "DeploymentConfigDoesNotExistException": exceptions.DeploymentConfigDoesNotExistException, | |
129 "BucketNameFilterRequiredException": exceptions.BucketNameFilterRequiredException, | |
130 "InvalidTimeRangeException": exceptions.InvalidTimeRangeException, | |
131 "ApplicationDoesNotExistException": exceptions.ApplicationDoesNotExistException, | |
132 "InvalidRevisionException": exceptions.InvalidRevisionException, | |
133 "InvalidSortOrderException": exceptions.InvalidSortOrderException, | |
134 "InvalidOperationException": exceptions.InvalidOperationException, | |
135 "InvalidAutoScalingGroupException": exceptions.InvalidAutoScalingGroupException, | |
136 "InvalidApplicationNameException": exceptions.InvalidApplicationNameException, | |
137 "DescriptionTooLongException": exceptions.DescriptionTooLongException, | |
138 "ApplicationAlreadyExistsException": exceptions.ApplicationAlreadyExistsException, | |
139 "InvalidDeployedStateFilterException": exceptions.InvalidDeployedStateFilterException, | |
140 "DeploymentNotStartedException": exceptions.DeploymentNotStartedException, | |
141 "DeploymentConfigInUseException": exceptions.DeploymentConfigInUseException, | |
142 "InstanceIdRequiredException": exceptions.InstanceIdRequiredException, | |
143 "InvalidKeyPrefixFilterException": exceptions.InvalidKeyPrefixFilterException, | |
144 "InvalidDeploymentStatusException": exceptions.InvalidDeploymentStatusException, | |
145 } | |
146 | |
147 | |
148 def __init__(self, **kwargs): | |
149 region = kwargs.pop('region', None) | |
150 if not region: | |
151 region = RegionInfo(self, self.DefaultRegionName, | |
152 self.DefaultRegionEndpoint) | |
153 | |
154 if 'host' not in kwargs or kwargs['host'] is None: | |
155 kwargs['host'] = region.endpoint | |
156 | |
157 super(CodeDeployConnection, self).__init__(**kwargs) | |
158 self.region = region | |
159 | |
160 def _required_auth_capability(self): | |
161 return ['hmac-v4'] | |
162 | |
163 def batch_get_applications(self, application_names=None): | |
164 """ | |
165 Gets information about one or more applications. | |
166 | |
167 :type application_names: list | |
168 :param application_names: A list of application names, with multiple | |
169 application names separated by spaces. | |
170 | |
171 """ | |
172 params = {} | |
173 if application_names is not None: | |
174 params['applicationNames'] = application_names | |
175 return self.make_request(action='BatchGetApplications', | |
176 body=json.dumps(params)) | |
177 | |
178 def batch_get_deployments(self, deployment_ids=None): | |
179 """ | |
180 Gets information about one or more deployments. | |
181 | |
182 :type deployment_ids: list | |
183 :param deployment_ids: A list of deployment IDs, with multiple | |
184 deployment IDs separated by spaces. | |
185 | |
186 """ | |
187 params = {} | |
188 if deployment_ids is not None: | |
189 params['deploymentIds'] = deployment_ids | |
190 return self.make_request(action='BatchGetDeployments', | |
191 body=json.dumps(params)) | |
192 | |
193 def create_application(self, application_name): | |
194 """ | |
195 Creates a new application. | |
196 | |
197 :type application_name: string | |
198 :param application_name: The name of the application. This name must be | |
199 unique within the AWS user account. | |
200 | |
201 """ | |
202 params = {'applicationName': application_name, } | |
203 return self.make_request(action='CreateApplication', | |
204 body=json.dumps(params)) | |
205 | |
206 def create_deployment(self, application_name, deployment_group_name=None, | |
207 revision=None, deployment_config_name=None, | |
208 description=None, | |
209 ignore_application_stop_failures=None): | |
210 """ | |
211 Deploys an application revision to the specified deployment | |
212 group. | |
213 | |
214 :type application_name: string | |
215 :param application_name: The name of an existing AWS CodeDeploy | |
216 application within the AWS user account. | |
217 | |
218 :type deployment_group_name: string | |
219 :param deployment_group_name: The deployment group's name. | |
220 | |
221 :type revision: dict | |
222 :param revision: The type of revision to deploy, along with information | |
223 about the revision's location. | |
224 | |
225 :type deployment_config_name: string | |
226 :param deployment_config_name: The name of an existing deployment | |
227 configuration within the AWS user account. | |
228 If not specified, the value configured in the deployment group will be | |
229 used as the default. If the deployment group does not have a | |
230 deployment configuration associated with it, then | |
231 CodeDeployDefault.OneAtATime will be used by default. | |
232 | |
233 :type description: string | |
234 :param description: A comment about the deployment. | |
235 | |
236 :type ignore_application_stop_failures: boolean | |
237 :param ignore_application_stop_failures: If set to true, then if the | |
238 deployment causes the ApplicationStop deployment lifecycle event to | |
239 fail to a specific instance, the deployment will not be considered | |
240 to have failed to that instance at that point and will continue on | |
241 to the BeforeInstall deployment lifecycle event. | |
242 If set to false or not specified, then if the deployment causes the | |
243 ApplicationStop deployment lifecycle event to fail to a specific | |
244 instance, the deployment will stop to that instance, and the | |
245 deployment to that instance will be considered to have failed. | |
246 | |
247 """ | |
248 params = {'applicationName': application_name, } | |
249 if deployment_group_name is not None: | |
250 params['deploymentGroupName'] = deployment_group_name | |
251 if revision is not None: | |
252 params['revision'] = revision | |
253 if deployment_config_name is not None: | |
254 params['deploymentConfigName'] = deployment_config_name | |
255 if description is not None: | |
256 params['description'] = description | |
257 if ignore_application_stop_failures is not None: | |
258 params['ignoreApplicationStopFailures'] = ignore_application_stop_failures | |
259 return self.make_request(action='CreateDeployment', | |
260 body=json.dumps(params)) | |
261 | |
262 def create_deployment_config(self, deployment_config_name, | |
263 minimum_healthy_hosts=None): | |
264 """ | |
265 Creates a new deployment configuration. | |
266 | |
267 :type deployment_config_name: string | |
268 :param deployment_config_name: The name of the deployment configuration | |
269 to create. | |
270 | |
271 :type minimum_healthy_hosts: dict | |
272 :param minimum_healthy_hosts: The minimum number of healthy instances | |
273 that should be available at any time during the deployment. There | |
274 are two parameters expected in the input: type and value. | |
275 The type parameter takes either of the following values: | |
276 | |
277 | |
278 + HOST_COUNT: The value parameter represents the minimum number of | |
279 healthy instances, as an absolute value. | |
280 + FLEET_PERCENT: The value parameter represents the minimum number of | |
281 healthy instances, as a percentage of the total number of instances | |
282 in the deployment. If you specify FLEET_PERCENT, then at the start | |
283 of the deployment AWS CodeDeploy converts the percentage to the | |
284 equivalent number of instances and rounds fractional instances up. | |
285 | |
286 | |
287 The value parameter takes an integer. | |
288 | |
289 For example, to set a minimum of 95% healthy instances, specify a type | |
290 of FLEET_PERCENT and a value of 95. | |
291 | |
292 """ | |
293 params = {'deploymentConfigName': deployment_config_name, } | |
294 if minimum_healthy_hosts is not None: | |
295 params['minimumHealthyHosts'] = minimum_healthy_hosts | |
296 return self.make_request(action='CreateDeploymentConfig', | |
297 body=json.dumps(params)) | |
298 | |
299 def create_deployment_group(self, application_name, | |
300 deployment_group_name, | |
301 deployment_config_name=None, | |
302 ec_2_tag_filters=None, | |
303 auto_scaling_groups=None, | |
304 service_role_arn=None): | |
305 """ | |
306 Creates a new deployment group for application revisions to be | |
307 deployed to. | |
308 | |
309 :type application_name: string | |
310 :param application_name: The name of an existing AWS CodeDeploy | |
311 application within the AWS user account. | |
312 | |
313 :type deployment_group_name: string | |
314 :param deployment_group_name: The name of an existing deployment group | |
315 for the specified application. | |
316 | |
317 :type deployment_config_name: string | |
318 :param deployment_config_name: If specified, the deployment | |
319 configuration name must be one of the predefined values, or it can | |
320 be a custom deployment configuration: | |
321 | |
322 + CodeDeployDefault.AllAtOnce deploys an application revision to up to | |
323 all of the Amazon EC2 instances at once. The overall deployment | |
324 succeeds if the application revision deploys to at least one of the | |
325 instances. The overall deployment fails after the application | |
326 revision fails to deploy to all of the instances. For example, for | |
327 9 instances, deploy to up to all 9 instances at once. The overall | |
328 deployment succeeds if any of the 9 instances is successfully | |
329 deployed to, and it fails if all 9 instances fail to be deployed | |
330 to. | |
331 + CodeDeployDefault.HalfAtATime deploys to up to half of the instances | |
332 at a time (with fractions rounded down). The overall deployment | |
333 succeeds if the application revision deploys to at least half of | |
334 the instances (with fractions rounded up); otherwise, the | |
335 deployment fails. For example, for 9 instances, deploy to up to 4 | |
336 instances at a time. The overall deployment succeeds if 5 or more | |
337 instances are successfully deployed to; otherwise, the deployment | |
338 fails. Note that the deployment may successfully deploy to some | |
339 instances, even if the overall deployment fails. | |
340 + CodeDeployDefault.OneAtATime deploys the application revision to only | |
341 one of the instances at a time. The overall deployment succeeds if | |
342 the application revision deploys to all of the instances. The | |
343 overall deployment fails after the application revision first fails | |
344 to deploy to any one instance. For example, for 9 instances, deploy | |
345 to one instance at a time. The overall deployment succeeds if all 9 | |
346 instances are successfully deployed to, and it fails if any of one | |
347 of the 9 instances fail to be deployed to. Note that the deployment | |
348 may successfully deploy to some instances, even if the overall | |
349 deployment fails. This is the default deployment configuration if a | |
350 configuration isn't specified for either the deployment or the | |
351 deployment group. | |
352 | |
353 | |
354 To create a custom deployment configuration, call the create deployment | |
355 configuration operation. | |
356 | |
357 :type ec_2_tag_filters: list | |
358 :param ec_2_tag_filters: The Amazon EC2 tags to filter on. | |
359 | |
360 :type auto_scaling_groups: list | |
361 :param auto_scaling_groups: A list of associated Auto Scaling groups. | |
362 | |
363 :type service_role_arn: string | |
364 :param service_role_arn: A service role ARN that allows AWS CodeDeploy | |
365 to act on the user's behalf when interacting with AWS services. | |
366 | |
367 """ | |
368 params = { | |
369 'applicationName': application_name, | |
370 'deploymentGroupName': deployment_group_name, | |
371 } | |
372 if deployment_config_name is not None: | |
373 params['deploymentConfigName'] = deployment_config_name | |
374 if ec_2_tag_filters is not None: | |
375 params['ec2TagFilters'] = ec_2_tag_filters | |
376 if auto_scaling_groups is not None: | |
377 params['autoScalingGroups'] = auto_scaling_groups | |
378 if service_role_arn is not None: | |
379 params['serviceRoleArn'] = service_role_arn | |
380 return self.make_request(action='CreateDeploymentGroup', | |
381 body=json.dumps(params)) | |
382 | |
383 def delete_application(self, application_name): | |
384 """ | |
385 Deletes an application. | |
386 | |
387 :type application_name: string | |
388 :param application_name: The name of an existing AWS CodeDeploy | |
389 application within the AWS user account. | |
390 | |
391 """ | |
392 params = {'applicationName': application_name, } | |
393 return self.make_request(action='DeleteApplication', | |
394 body=json.dumps(params)) | |
395 | |
396 def delete_deployment_config(self, deployment_config_name): | |
397 """ | |
398 Deletes a deployment configuration. | |
399 | |
400 A deployment configuration cannot be deleted if it is | |
401 currently in use. Also, predefined configurations cannot be | |
402 deleted. | |
403 | |
404 :type deployment_config_name: string | |
405 :param deployment_config_name: The name of an existing deployment | |
406 configuration within the AWS user account. | |
407 | |
408 """ | |
409 params = {'deploymentConfigName': deployment_config_name, } | |
410 return self.make_request(action='DeleteDeploymentConfig', | |
411 body=json.dumps(params)) | |
412 | |
413 def delete_deployment_group(self, application_name, | |
414 deployment_group_name): | |
415 """ | |
416 Deletes a deployment group. | |
417 | |
418 :type application_name: string | |
419 :param application_name: The name of an existing AWS CodeDeploy | |
420 application within the AWS user account. | |
421 | |
422 :type deployment_group_name: string | |
423 :param deployment_group_name: The name of an existing deployment group | |
424 for the specified application. | |
425 | |
426 """ | |
427 params = { | |
428 'applicationName': application_name, | |
429 'deploymentGroupName': deployment_group_name, | |
430 } | |
431 return self.make_request(action='DeleteDeploymentGroup', | |
432 body=json.dumps(params)) | |
433 | |
434 def get_application(self, application_name): | |
435 """ | |
436 Gets information about an application. | |
437 | |
438 :type application_name: string | |
439 :param application_name: The name of an existing AWS CodeDeploy | |
440 application within the AWS user account. | |
441 | |
442 """ | |
443 params = {'applicationName': application_name, } | |
444 return self.make_request(action='GetApplication', | |
445 body=json.dumps(params)) | |
446 | |
447 def get_application_revision(self, application_name, revision): | |
448 """ | |
449 Gets information about an application revision. | |
450 | |
451 :type application_name: string | |
452 :param application_name: The name of the application that corresponds | |
453 to the revision. | |
454 | |
455 :type revision: dict | |
456 :param revision: Information about the application revision to get, | |
457 including the revision's type and its location. | |
458 | |
459 """ | |
460 params = { | |
461 'applicationName': application_name, | |
462 'revision': revision, | |
463 } | |
464 return self.make_request(action='GetApplicationRevision', | |
465 body=json.dumps(params)) | |
466 | |
467 def get_deployment(self, deployment_id): | |
468 """ | |
469 Gets information about a deployment. | |
470 | |
471 :type deployment_id: string | |
472 :param deployment_id: An existing deployment ID within the AWS user | |
473 account. | |
474 | |
475 """ | |
476 params = {'deploymentId': deployment_id, } | |
477 return self.make_request(action='GetDeployment', | |
478 body=json.dumps(params)) | |
479 | |
480 def get_deployment_config(self, deployment_config_name): | |
481 """ | |
482 Gets information about a deployment configuration. | |
483 | |
484 :type deployment_config_name: string | |
485 :param deployment_config_name: The name of an existing deployment | |
486 configuration within the AWS user account. | |
487 | |
488 """ | |
489 params = {'deploymentConfigName': deployment_config_name, } | |
490 return self.make_request(action='GetDeploymentConfig', | |
491 body=json.dumps(params)) | |
492 | |
493 def get_deployment_group(self, application_name, deployment_group_name): | |
494 """ | |
495 Gets information about a deployment group. | |
496 | |
497 :type application_name: string | |
498 :param application_name: The name of an existing AWS CodeDeploy | |
499 application within the AWS user account. | |
500 | |
501 :type deployment_group_name: string | |
502 :param deployment_group_name: The name of an existing deployment group | |
503 for the specified application. | |
504 | |
505 """ | |
506 params = { | |
507 'applicationName': application_name, | |
508 'deploymentGroupName': deployment_group_name, | |
509 } | |
510 return self.make_request(action='GetDeploymentGroup', | |
511 body=json.dumps(params)) | |
512 | |
513 def get_deployment_instance(self, deployment_id, instance_id): | |
514 """ | |
515 Gets information about an Amazon EC2 instance as part of a | |
516 deployment. | |
517 | |
518 :type deployment_id: string | |
519 :param deployment_id: The unique ID of a deployment. | |
520 | |
521 :type instance_id: string | |
522 :param instance_id: The unique ID of an Amazon EC2 instance in the | |
523 deployment's deployment group. | |
524 | |
525 """ | |
526 params = { | |
527 'deploymentId': deployment_id, | |
528 'instanceId': instance_id, | |
529 } | |
530 return self.make_request(action='GetDeploymentInstance', | |
531 body=json.dumps(params)) | |
532 | |
533 def list_application_revisions(self, application_name, sort_by=None, | |
534 sort_order=None, s_3_bucket=None, | |
535 s_3_key_prefix=None, deployed=None, | |
536 next_token=None): | |
537 """ | |
538 Lists information about revisions for an application. | |
539 | |
540 :type application_name: string | |
541 :param application_name: The name of an existing AWS CodeDeploy | |
542 application within the AWS user account. | |
543 | |
544 :type sort_by: string | |
545 :param sort_by: The column name to sort the list results by: | |
546 | |
547 + registerTime: Sort the list results by when the revisions were | |
548 registered with AWS CodeDeploy. | |
549 + firstUsedTime: Sort the list results by when the revisions were first | |
550 used by in a deployment. | |
551 + lastUsedTime: Sort the list results by when the revisions were last | |
552 used in a deployment. | |
553 | |
554 | |
555 If not specified or set to null, the results will be returned in an | |
556 arbitrary order. | |
557 | |
558 :type sort_order: string | |
559 :param sort_order: The order to sort the list results by: | |
560 | |
561 + ascending: Sort the list results in ascending order. | |
562 + descending: Sort the list results in descending order. | |
563 | |
564 | |
565 If not specified, the results will be sorted in ascending order. | |
566 | |
567 If set to null, the results will be sorted in an arbitrary order. | |
568 | |
569 :type s_3_bucket: string | |
570 :param s_3_bucket: A specific Amazon S3 bucket name to limit the search | |
571 for revisions. | |
572 If set to null, then all of the user's buckets will be searched. | |
573 | |
574 :type s_3_key_prefix: string | |
575 :param s_3_key_prefix: A specific key prefix for the set of Amazon S3 | |
576 objects to limit the search for revisions. | |
577 | |
578 :type deployed: string | |
579 :param deployed: | |
580 Whether to list revisions based on whether the revision is the target | |
581 revision of an deployment group: | |
582 | |
583 | |
584 + include: List revisions that are target revisions of a deployment | |
585 group. | |
586 + exclude: Do not list revisions that are target revisions of a | |
587 deployment group. | |
588 + ignore: List all revisions, regardless of whether they are target | |
589 revisions of a deployment group. | |
590 | |
591 :type next_token: string | |
592 :param next_token: An identifier that was returned from the previous | |
593 list application revisions call, which can be used to return the | |
594 next set of applications in the list. | |
595 | |
596 """ | |
597 params = {'applicationName': application_name, } | |
598 if sort_by is not None: | |
599 params['sortBy'] = sort_by | |
600 if sort_order is not None: | |
601 params['sortOrder'] = sort_order | |
602 if s_3_bucket is not None: | |
603 params['s3Bucket'] = s_3_bucket | |
604 if s_3_key_prefix is not None: | |
605 params['s3KeyPrefix'] = s_3_key_prefix | |
606 if deployed is not None: | |
607 params['deployed'] = deployed | |
608 if next_token is not None: | |
609 params['nextToken'] = next_token | |
610 return self.make_request(action='ListApplicationRevisions', | |
611 body=json.dumps(params)) | |
612 | |
613 def list_applications(self, next_token=None): | |
614 """ | |
615 Lists the applications registered within the AWS user account. | |
616 | |
617 :type next_token: string | |
618 :param next_token: An identifier that was returned from the previous | |
619 list applications call, which can be used to return the next set of | |
620 applications in the list. | |
621 | |
622 """ | |
623 params = {} | |
624 if next_token is not None: | |
625 params['nextToken'] = next_token | |
626 return self.make_request(action='ListApplications', | |
627 body=json.dumps(params)) | |
628 | |
629 def list_deployment_configs(self, next_token=None): | |
630 """ | |
631 Lists the deployment configurations within the AWS user | |
632 account. | |
633 | |
634 :type next_token: string | |
635 :param next_token: An identifier that was returned from the previous | |
636 list deployment configurations call, which can be used to return | |
637 the next set of deployment configurations in the list. | |
638 | |
639 """ | |
640 params = {} | |
641 if next_token is not None: | |
642 params['nextToken'] = next_token | |
643 return self.make_request(action='ListDeploymentConfigs', | |
644 body=json.dumps(params)) | |
645 | |
646 def list_deployment_groups(self, application_name, next_token=None): | |
647 """ | |
648 Lists the deployment groups for an application registered | |
649 within the AWS user account. | |
650 | |
651 :type application_name: string | |
652 :param application_name: The name of an existing AWS CodeDeploy | |
653 application within the AWS user account. | |
654 | |
655 :type next_token: string | |
656 :param next_token: An identifier that was returned from the previous | |
657 list deployment groups call, which can be used to return the next | |
658 set of deployment groups in the list. | |
659 | |
660 """ | |
661 params = {'applicationName': application_name, } | |
662 if next_token is not None: | |
663 params['nextToken'] = next_token | |
664 return self.make_request(action='ListDeploymentGroups', | |
665 body=json.dumps(params)) | |
666 | |
667 def list_deployment_instances(self, deployment_id, next_token=None, | |
668 instance_status_filter=None): | |
669 """ | |
670 Lists the Amazon EC2 instances for a deployment within the AWS | |
671 user account. | |
672 | |
673 :type deployment_id: string | |
674 :param deployment_id: The unique ID of a deployment. | |
675 | |
676 :type next_token: string | |
677 :param next_token: An identifier that was returned from the previous | |
678 list deployment instances call, which can be used to return the | |
679 next set of deployment instances in the list. | |
680 | |
681 :type instance_status_filter: list | |
682 :param instance_status_filter: | |
683 A subset of instances to list, by status: | |
684 | |
685 | |
686 + Pending: Include in the resulting list those instances with pending | |
687 deployments. | |
688 + InProgress: Include in the resulting list those instances with in- | |
689 progress deployments. | |
690 + Succeeded: Include in the resulting list those instances with | |
691 succeeded deployments. | |
692 + Failed: Include in the resulting list those instances with failed | |
693 deployments. | |
694 + Skipped: Include in the resulting list those instances with skipped | |
695 deployments. | |
696 + Unknown: Include in the resulting list those instances with | |
697 deployments in an unknown state. | |
698 | |
699 """ | |
700 params = {'deploymentId': deployment_id, } | |
701 if next_token is not None: | |
702 params['nextToken'] = next_token | |
703 if instance_status_filter is not None: | |
704 params['instanceStatusFilter'] = instance_status_filter | |
705 return self.make_request(action='ListDeploymentInstances', | |
706 body=json.dumps(params)) | |
707 | |
708 def list_deployments(self, application_name=None, | |
709 deployment_group_name=None, | |
710 include_only_statuses=None, create_time_range=None, | |
711 next_token=None): | |
712 """ | |
713 Lists the deployments under a deployment group for an | |
714 application registered within the AWS user account. | |
715 | |
716 :type application_name: string | |
717 :param application_name: The name of an existing AWS CodeDeploy | |
718 application within the AWS user account. | |
719 | |
720 :type deployment_group_name: string | |
721 :param deployment_group_name: The name of an existing deployment group | |
722 for the specified application. | |
723 | |
724 :type include_only_statuses: list | |
725 :param include_only_statuses: A subset of deployments to list, by | |
726 status: | |
727 | |
728 + Created: Include in the resulting list created deployments. | |
729 + Queued: Include in the resulting list queued deployments. | |
730 + In Progress: Include in the resulting list in-progress deployments. | |
731 + Succeeded: Include in the resulting list succeeded deployments. | |
732 + Failed: Include in the resulting list failed deployments. | |
733 + Aborted: Include in the resulting list aborted deployments. | |
734 | |
735 :type create_time_range: dict | |
736 :param create_time_range: A deployment creation start- and end-time | |
737 range for returning a subset of the list of deployments. | |
738 | |
739 :type next_token: string | |
740 :param next_token: An identifier that was returned from the previous | |
741 list deployments call, which can be used to return the next set of | |
742 deployments in the list. | |
743 | |
744 """ | |
745 params = {} | |
746 if application_name is not None: | |
747 params['applicationName'] = application_name | |
748 if deployment_group_name is not None: | |
749 params['deploymentGroupName'] = deployment_group_name | |
750 if include_only_statuses is not None: | |
751 params['includeOnlyStatuses'] = include_only_statuses | |
752 if create_time_range is not None: | |
753 params['createTimeRange'] = create_time_range | |
754 if next_token is not None: | |
755 params['nextToken'] = next_token | |
756 return self.make_request(action='ListDeployments', | |
757 body=json.dumps(params)) | |
758 | |
759 def register_application_revision(self, application_name, revision, | |
760 description=None): | |
761 """ | |
762 Registers with AWS CodeDeploy a revision for the specified | |
763 application. | |
764 | |
765 :type application_name: string | |
766 :param application_name: The name of an existing AWS CodeDeploy | |
767 application within the AWS user account. | |
768 | |
769 :type description: string | |
770 :param description: A comment about the revision. | |
771 | |
772 :type revision: dict | |
773 :param revision: Information about the application revision to | |
774 register, including the revision's type and its location. | |
775 | |
776 """ | |
777 params = { | |
778 'applicationName': application_name, | |
779 'revision': revision, | |
780 } | |
781 if description is not None: | |
782 params['description'] = description | |
783 return self.make_request(action='RegisterApplicationRevision', | |
784 body=json.dumps(params)) | |
785 | |
786 def stop_deployment(self, deployment_id): | |
787 """ | |
788 Attempts to stop an ongoing deployment. | |
789 | |
790 :type deployment_id: string | |
791 :param deployment_id: The unique ID of a deployment. | |
792 | |
793 """ | |
794 params = {'deploymentId': deployment_id, } | |
795 return self.make_request(action='StopDeployment', | |
796 body=json.dumps(params)) | |
797 | |
798 def update_application(self, application_name=None, | |
799 new_application_name=None): | |
800 """ | |
801 Changes an existing application's name. | |
802 | |
803 :type application_name: string | |
804 :param application_name: The current name of the application that you | |
805 want to change. | |
806 | |
807 :type new_application_name: string | |
808 :param new_application_name: The new name that you want to change the | |
809 application to. | |
810 | |
811 """ | |
812 params = {} | |
813 if application_name is not None: | |
814 params['applicationName'] = application_name | |
815 if new_application_name is not None: | |
816 params['newApplicationName'] = new_application_name | |
817 return self.make_request(action='UpdateApplication', | |
818 body=json.dumps(params)) | |
819 | |
820 def update_deployment_group(self, application_name, | |
821 current_deployment_group_name, | |
822 new_deployment_group_name=None, | |
823 deployment_config_name=None, | |
824 ec_2_tag_filters=None, | |
825 auto_scaling_groups=None, | |
826 service_role_arn=None): | |
827 """ | |
828 Changes information about an existing deployment group. | |
829 | |
830 :type application_name: string | |
831 :param application_name: The application name corresponding to the | |
832 deployment group to update. | |
833 | |
834 :type current_deployment_group_name: string | |
835 :param current_deployment_group_name: The current name of the existing | |
836 deployment group. | |
837 | |
838 :type new_deployment_group_name: string | |
839 :param new_deployment_group_name: The new name of the deployment group, | |
840 if you want to change it. | |
841 | |
842 :type deployment_config_name: string | |
843 :param deployment_config_name: The replacement deployment configuration | |
844 name to use, if you want to change it. | |
845 | |
846 :type ec_2_tag_filters: list | |
847 :param ec_2_tag_filters: The replacement set of Amazon EC2 tags to | |
848 filter on, if you want to change them. | |
849 | |
850 :type auto_scaling_groups: list | |
851 :param auto_scaling_groups: The replacement list of Auto Scaling groups | |
852 to be included in the deployment group, if you want to change them. | |
853 | |
854 :type service_role_arn: string | |
855 :param service_role_arn: A replacement service role's ARN, if you want | |
856 to change it. | |
857 | |
858 """ | |
859 params = { | |
860 'applicationName': application_name, | |
861 'currentDeploymentGroupName': current_deployment_group_name, | |
862 } | |
863 if new_deployment_group_name is not None: | |
864 params['newDeploymentGroupName'] = new_deployment_group_name | |
865 if deployment_config_name is not None: | |
866 params['deploymentConfigName'] = deployment_config_name | |
867 if ec_2_tag_filters is not None: | |
868 params['ec2TagFilters'] = ec_2_tag_filters | |
869 if auto_scaling_groups is not None: | |
870 params['autoScalingGroups'] = auto_scaling_groups | |
871 if service_role_arn is not None: | |
872 params['serviceRoleArn'] = service_role_arn | |
873 return self.make_request(action='UpdateDeploymentGroup', | |
874 body=json.dumps(params)) | |
875 | |
876 def make_request(self, action, body): | |
877 headers = { | |
878 'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action), | |
879 'Host': self.region.endpoint, | |
880 'Content-Type': 'application/x-amz-json-1.1', | |
881 'Content-Length': str(len(body)), | |
882 } | |
883 http_request = self.build_base_http_request( | |
884 method='POST', path='/', auth_path='/', params={}, | |
885 headers=headers, data=body) | |
886 response = self._mexe(http_request, sender=None, | |
887 override_num_retries=10) | |
888 response_body = response.read().decode('utf-8') | |
889 boto.log.debug(response_body) | |
890 if response.status == 200: | |
891 if response_body: | |
892 return json.loads(response_body) | |
893 else: | |
894 json_body = json.loads(response_body) | |
895 fault_name = json_body.get('__type', None) | |
896 exception_class = self._faults.get(fault_name, self.ResponseError) | |
897 raise exception_class(response.status, response.reason, | |
898 body=json_body) | |
899 |