mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 05:42:50 +00:00
Added the OnFailure option to the AWS CloudFormation module (#52431)
* Added the OnFailure option to the AWS CloudFormation module * Added unit tests for CloudFormation `on_create_failure`
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "c741ebcd-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "c741ebcd-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "407",
|
||||
"date": "Tue, 26 Feb 2019 21:37:55 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "c74b1310-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "c7b0b337-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "c7b0b337-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1153",
|
||||
"date": "Tue, 26 Feb 2019 21:37:56 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:38:01.107Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 1,
|
||||
"microsecond": 107000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: ca5769ae-3a0e-11e9-a183-3f277586a4cb)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.657Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 657000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.221Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 221000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "c74b1310-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "caf667e9-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "caf667e9-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "4312",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:38:01 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "cafc8250-3a0e-11e9-86c5-02035744c0fa",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Delete requested by user."
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:38:01.107Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 1,
|
||||
"microsecond": 107000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: ca5769ae-3a0e-11e9-a183-3f277586a4cb)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.657Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 657000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.221Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 221000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "c74b1310-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "ce498af1-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "ce498af1-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "5207",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:38:06 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "d19c8600-3a0e-11e9-a4ba-0a3524ef8042",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 13,
|
||||
"microsecond": 177000
|
||||
},
|
||||
"ResourceStatus": "DELETE_COMPLETE"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-DELETE_COMPLETE-2019-02-26T21:38:12.486Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 12,
|
||||
"microsecond": 486000
|
||||
},
|
||||
"ResourceStatus": "DELETE_COMPLETE",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-DELETE_IN_PROGRESS-2019-02-26T21:38:12.139Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 12,
|
||||
"microsecond": 139000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "cafc8250-3a0e-11e9-86c5-02035744c0fa",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Delete requested by user."
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:38:01.107Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 1,
|
||||
"microsecond": 107000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: ca5769ae-3a0e-11e9-a183-3f277586a4cb)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.657Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 657000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.221Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 221000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "c74b1310-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "d19fbb1b-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "d19fbb1b-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "7857",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:38:12 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "d19c8600-3a0e-11e9-a4ba-0a3524ef8042",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 13,
|
||||
"microsecond": 177000
|
||||
},
|
||||
"ResourceStatus": "DELETE_COMPLETE"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-DELETE_COMPLETE-2019-02-26T21:38:12.486Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 12,
|
||||
"microsecond": 486000
|
||||
},
|
||||
"ResourceStatus": "DELETE_COMPLETE",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-DELETE_IN_PROGRESS-2019-02-26T21:38:12.139Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 12,
|
||||
"microsecond": 139000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "cafc8250-3a0e-11e9-86c5-02035744c0fa",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Delete requested by user."
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:38:01.107Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 1,
|
||||
"microsecond": 107000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: ca5769ae-3a0e-11e9-a183-3f277586a4cb)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.657Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-8jlpw72yz5x8",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 657000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:38:00.221Z",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 0,
|
||||
"microsecond": 221000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"EventId": "c74b1310-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-delete",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "d4fbddab-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "d4fbddab-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "7857",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:38:18 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "CREATE_IN_PROGRESS",
|
||||
"StackStatusReason": "User Initiated",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "c77fb823-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "c77fb823-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1041",
|
||||
"date": "Tue, 26 Feb 2019 21:37:56 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "CREATE_IN_PROGRESS",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "cad153b2-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "cad153b2-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "979",
|
||||
"date": "Tue, 26 Feb 2019 21:38:01 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"DeletionTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "DELETE_IN_PROGRESS",
|
||||
"StackStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Delete requested by user.",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "ce24289a-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "ce24289a-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1171",
|
||||
"date": "Tue, 26 Feb 2019 21:38:06 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"DeletionTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "DELETE_IN_PROGRESS",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "d16c27f2-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "d16c27f2-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1041",
|
||||
"date": "Tue, 26 Feb 2019 21:38:12 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-delete/c74a4fc0-3a0e-11e9-9a48-067794494828",
|
||||
"StackName": "ansible-test-on-create-failure-delete",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 37,
|
||||
"second": 55,
|
||||
"microsecond": 909000
|
||||
},
|
||||
"DeletionTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 38,
|
||||
"second": 2,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "DELETE_COMPLETE",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "d4c90dd6-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "d4c90dd6-3a0e-11e9-b25f-d1217e6893bf",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "965",
|
||||
"date": "Tue, 26 Feb 2019 21:38:18 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a396a58a-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a396a58a-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "411",
|
||||
"date": "Tue, 26 Feb 2019 21:44:05 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a78f0832-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a78f0832-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "212",
|
||||
"date": "Tue, 26 Feb 2019 21:44:11 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "a39e6ce0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-do-nothing",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 5,
|
||||
"microsecond": 553000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a406cc84-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a406cc84-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1169",
|
||||
"date": "Tue, 26 Feb 2019 21:44:06 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "a6c32c80-3a0f-11e9-ac5e-06deb474fa52",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-do-nothing",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 10,
|
||||
"microsecond": 804000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. "
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:44:09.905Z",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-a8g0mh5il4t5",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 9,
|
||||
"microsecond": 905000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: a62a6f71-3a0f-11e9-9164-457e0a3a5e1b)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:44:09.497Z",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-a8g0mh5il4t5",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 9,
|
||||
"microsecond": 497000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:44:09.076Z",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 9,
|
||||
"microsecond": 76000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"EventId": "a39e6ce0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-do-nothing",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 5,
|
||||
"microsecond": 553000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a75fbad0-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a75fbad0-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "5231",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:44:11 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 5,
|
||||
"microsecond": 553000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "CREATE_IN_PROGRESS",
|
||||
"StackStatusReason": "User Initiated",
|
||||
"DisableRollback": true,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a3d44acf-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a3d44acf-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1048",
|
||||
"date": "Tue, 26 Feb 2019 21:44:05 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-do-nothing/a39dd0a0-3a0f-11e9-96ca-02f46dd00950",
|
||||
"StackName": "ansible-test-on-create-failure-do-nothing",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 44,
|
||||
"second": 5,
|
||||
"microsecond": 553000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "CREATE_FAILED",
|
||||
"StackStatusReason": "The following resource(s) failed to create: [ECRRepo]. ",
|
||||
"DisableRollback": true,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "a7301f4a-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "a7301f4a-3a0f-11e9-b7db-3fe3824c73cb",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1084",
|
||||
"date": "Tue, 26 Feb 2019 21:44:11 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "9139de54-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "9139de54-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "409",
|
||||
"date": "Tue, 26 Feb 2019 21:43:34 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "988b3097-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "988b3097-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "212",
|
||||
"date": "Tue, 26 Feb 2019 21:43:46 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "9140bc10-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "9199b1a7-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "9199b1a7-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1161",
|
||||
"date": "Tue, 26 Feb 2019 21:43:35 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "945b90a0-3a0f-11e9-adaf-0211d8bec7e2",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 920000
|
||||
},
|
||||
"ResourceStatus": "ROLLBACK_IN_PROGRESS",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Rollback requested by user."
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:43:39.210Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 210000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: 93e0bb60-3a0f-11e9-a53c-7162bb423e4d)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:43:38.793Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 38,
|
||||
"microsecond": 793000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:43:38.266Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 38,
|
||||
"microsecond": 266000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "9140bc10-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "94e16307-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "94e16307-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "5241",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:43:40 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"StackEvents": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "9743bc70-3a0f-11e9-b335-0ade61d04ee6",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 44,
|
||||
"microsecond": 797000
|
||||
},
|
||||
"ResourceStatus": "ROLLBACK_COMPLETE"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-DELETE_COMPLETE-2019-02-26T21:43:43.908Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 43,
|
||||
"microsecond": 908000
|
||||
},
|
||||
"ResourceStatus": "DELETE_COMPLETE",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-DELETE_IN_PROGRESS-2019-02-26T21:43:43.478Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 43,
|
||||
"microsecond": 478000
|
||||
},
|
||||
"ResourceStatus": "DELETE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "945b90a0-3a0f-11e9-adaf-0211d8bec7e2",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 920000
|
||||
},
|
||||
"ResourceStatus": "ROLLBACK_IN_PROGRESS",
|
||||
"ResourceStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Rollback requested by user."
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_FAILED-2019-02-26T21:43:39.210Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 210000
|
||||
},
|
||||
"ResourceStatus": "CREATE_FAILED",
|
||||
"ResourceStatusReason": "Invalid parameter at 'PolicyText' failed to satisfy constraint: 'Invalid repository policy provided' (Service: AmazonECR; Status Code: 400; Error Code: InvalidParameterException; Request ID: 93e0bb60-3a0f-11e9-a53c-7162bb423e4d)",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:43:38.793Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "ansib-ecrre-1lsnxu2zpb20l",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 38,
|
||||
"microsecond": 793000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "Resource creation Initiated",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "ECRRepo-CREATE_IN_PROGRESS-2019-02-26T21:43:38.266Z",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ECRRepo",
|
||||
"PhysicalResourceId": "",
|
||||
"ResourceType": "AWS::ECR::Repository",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 38,
|
||||
"microsecond": 266000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceProperties": "{\"RepositoryPolicyText\":{\"Version\":\"3000-10-17\",\"Statement\":[{\"Action\":[\"ecr:*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"}}]}}"
|
||||
},
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"EventId": "9140bc10-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"LogicalResourceId": "ansible-test-on-create-failure-rollback",
|
||||
"PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"ResourceType": "AWS::CloudFormation::Stack",
|
||||
"Timestamp": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"ResourceStatus": "CREATE_IN_PROGRESS",
|
||||
"ResourceStatusReason": "User Initiated"
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "982d0bff-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "982d0bff-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "7911",
|
||||
"vary": "Accept-Encoding",
|
||||
"date": "Tue, 26 Feb 2019 21:43:45 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "CREATE_IN_PROGRESS",
|
||||
"StackStatusReason": "User Initiated",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "91725383-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "91725383-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1045",
|
||||
"date": "Tue, 26 Feb 2019 21:43:35 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"DeletionTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 920000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "ROLLBACK_IN_PROGRESS",
|
||||
"StackStatusReason": "The following resource(s) failed to create: [ECRRepo]. . Rollback requested by user.",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "94bb1651-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "94bb1651-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1179",
|
||||
"date": "Tue, 26 Feb 2019 21:43:40 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"status_code": 200,
|
||||
"data": {
|
||||
"Stacks": [
|
||||
{
|
||||
"StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/ansible-test-on-create-failure-rollback/914046e0-3a0f-11e9-94bf-0a9edf17d014",
|
||||
"StackName": "ansible-test-on-create-failure-rollback",
|
||||
"CreationTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 34,
|
||||
"microsecond": 740000
|
||||
},
|
||||
"DeletionTime": {
|
||||
"__class__": "datetime",
|
||||
"year": 2019,
|
||||
"month": 2,
|
||||
"day": 26,
|
||||
"hour": 21,
|
||||
"minute": 43,
|
||||
"second": 39,
|
||||
"microsecond": 920000
|
||||
},
|
||||
"RollbackConfiguration": {},
|
||||
"StackStatus": "ROLLBACK_COMPLETE",
|
||||
"DisableRollback": false,
|
||||
"NotificationARNs": [],
|
||||
"Tags": [],
|
||||
"EnableTerminationProtection": false,
|
||||
"DriftInformation": {
|
||||
"StackDriftStatus": "NOT_CHECKED"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ResponseMetadata": {
|
||||
"RequestId": "98016814-3a0f-11e9-b938-97983b40cabe",
|
||||
"HTTPStatusCode": 200,
|
||||
"HTTPHeaders": {
|
||||
"x-amzn-requestid": "98016814-3a0f-11e9-b938-97983b40cabe",
|
||||
"content-type": "text/xml",
|
||||
"content-length": "1044",
|
||||
"date": "Tue, 26 Feb 2019 21:43:45 GMT"
|
||||
},
|
||||
"RetryAttempts": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,23 @@ bad_json_tpl = """{
|
||||
}
|
||||
}"""
|
||||
|
||||
failing_yaml_tpl = """
|
||||
---
|
||||
AWSTemplateFormatVersion: 2010-09-09
|
||||
Resources:
|
||||
ECRRepo:
|
||||
Type: AWS::ECR::Repository
|
||||
Properties:
|
||||
RepositoryPolicyText:
|
||||
Version: 3000-10-17 # <--- invalid version
|
||||
Statement:
|
||||
- Effect: Allow
|
||||
Action:
|
||||
- 'ecr:*'
|
||||
Principal:
|
||||
AWS: !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:root
|
||||
"""
|
||||
|
||||
default_events_limit = 10
|
||||
|
||||
|
||||
@@ -132,3 +149,79 @@ def test_missing_template_body():
|
||||
assert exc_info.match('FAIL')
|
||||
assert not m.exit_args
|
||||
assert "Either 'template', 'template_body' or 'template_url' is required when the stack does not exist." == m.exit_kwargs['msg']
|
||||
|
||||
|
||||
def test_disable_rollback_and_on_failure_defined():
|
||||
m = FakeModule(
|
||||
on_create_failure='DELETE',
|
||||
disable_rollback=True,
|
||||
)
|
||||
with pytest.raises(Exception, message='Expected module to fail with both on_create_failure and disable_rollback defined') as exc_info:
|
||||
cfn_module.create_stack(
|
||||
module=m,
|
||||
stack_params={'TemplateBody': ''},
|
||||
cfn=None,
|
||||
events_limit=default_events_limit
|
||||
)
|
||||
assert exc_info.match('FAIL')
|
||||
assert not m.exit_args
|
||||
assert "You can specify either 'on_create_failure' or 'disable_rollback', but not both." == m.exit_kwargs['msg']
|
||||
|
||||
|
||||
def test_on_create_failure_delete(maybe_sleep, placeboify):
|
||||
m = FakeModule(
|
||||
on_create_failure='DELETE',
|
||||
disable_rollback=False,
|
||||
)
|
||||
connection = placeboify.client('cloudformation')
|
||||
params = {
|
||||
'StackName': 'ansible-test-on-create-failure-delete',
|
||||
'TemplateBody': failing_yaml_tpl
|
||||
}
|
||||
result = cfn_module.create_stack(m, params, connection, default_events_limit)
|
||||
assert result['changed']
|
||||
assert result['failed']
|
||||
assert len(result['events']) > 1
|
||||
# require that the final recorded stack state was DELETE_COMPLETE
|
||||
# events are retrieved newest-first, so 0 is the latest
|
||||
assert 'DELETE_COMPLETE' in result['events'][0]
|
||||
|
||||
|
||||
def test_on_create_failure_rollback(maybe_sleep, placeboify):
|
||||
m = FakeModule(
|
||||
on_create_failure='ROLLBACK',
|
||||
disable_rollback=False,
|
||||
)
|
||||
connection = placeboify.client('cloudformation')
|
||||
params = {
|
||||
'StackName': 'ansible-test-on-create-failure-rollback',
|
||||
'TemplateBody': failing_yaml_tpl
|
||||
}
|
||||
result = cfn_module.create_stack(m, params, connection, default_events_limit)
|
||||
assert result['changed']
|
||||
assert result['failed']
|
||||
assert len(result['events']) > 1
|
||||
# require that the final recorded stack state was ROLLBACK_COMPLETE
|
||||
# events are retrieved newest-first, so 0 is the latest
|
||||
assert 'ROLLBACK_COMPLETE' in result['events'][0]
|
||||
connection.delete_stack(StackName=params['StackName'])
|
||||
|
||||
|
||||
def test_on_create_failure_do_nothing(maybe_sleep, placeboify):
|
||||
m = FakeModule(
|
||||
on_create_failure='DO_NOTHING',
|
||||
disable_rollback=False,
|
||||
)
|
||||
connection = placeboify.client('cloudformation')
|
||||
params = {
|
||||
'StackName': 'ansible-test-on-create-failure-do-nothing',
|
||||
'TemplateBody': failing_yaml_tpl
|
||||
}
|
||||
result = cfn_module.create_stack(m, params, connection, default_events_limit)
|
||||
assert result['changed']
|
||||
assert result['failed']
|
||||
assert len(result['events']) > 1
|
||||
# require that the final recorded stack state was CREATE_FAILED
|
||||
# events are retrieved newest-first, so 0 is the latest
|
||||
assert 'CREATE_FAILED' in result['events'][0]
|
||||
connection.delete_stack(StackName=params['StackName'])
|
||||
|
||||
Reference in New Issue
Block a user