| defaults: |
| request_headers: |
| X-Auth-Token: $ENVIRON['OS_TOKEN'] |
| |
| tests: |
| - name: stack list |
| GET: /stacks |
| status: 200 |
| response_headers: |
| content-type: application/json |
| |
| - name: create empty stack |
| POST: /stacks |
| request_headers: |
| content-type: application/json |
| data: |
| files: {} |
| disable_rollback: true |
| parameters: {} |
| stack_name: $ENVIRON['PREFIX']-empty |
| environment: {} |
| template: |
| heat_template_version: '2016-04-08' |
| |
| status: 201 |
| response_headers: |
| location: //stacks/$ENVIRON['PREFIX']-empty/[a-f0-9-]+/ |
| |
| |
| - name: poll for empty CREATE_COMPLETE |
| GET: $LOCATION |
| redirects: True |
| poll: |
| count: 5 |
| delay: 1.0 |
| response_json_paths: |
| $.stack.stack_status: CREATE_COMPLETE |
| |
| - name: show empty stack |
| GET: $LAST_URL |
| redirects: True |
| status: 200 |
| |
| - name: delete empty stack |
| DELETE: $LAST_URL |
| redirects: True |
| status: 204 |
| |
| - name: create stack |
| POST: /stacks |
| request_headers: |
| content-type: application/json |
| data: |
| files: {} |
| disable_rollback: true |
| parameters: {'test_val': value} |
| stack_name: $ENVIRON['PREFIX']-stack |
| template: |
| heat_template_version: pike |
| parameters: |
| test_val: |
| type: string |
| resources: |
| test: |
| type: OS::Heat::TestResource |
| properties: |
| value: {get_param: test_val} |
| outputs: |
| output_value: |
| value: {get_attr: [test, output]} |
| |
| status: 201 |
| response_headers: |
| location: //stacks/$ENVIRON['PREFIX']-stack/[a-f0-9-]+/ |
| |
| - name: poll for stack CREATE_COMPLETE |
| GET: $LOCATION |
| redirects: True |
| poll: |
| count: 5 |
| delay: 1.0 |
| response_json_paths: |
| $.stack.stack_status: CREATE_COMPLETE |
| |
| - name: show stack |
| GET: $LAST_URL |
| redirects: True |
| status: 200 |
| |
| - name: update stack |
| PUT: $LAST_URL |
| request_headers: |
| content-type: application/json |
| data: |
| files: {} |
| disable_rollback: true |
| parameters: {'test_val': new_value} |
| stack_name: $ENVIRON['PREFIX']-stack |
| template: |
| heat_template_version: pike |
| parameters: |
| test_val: |
| type: string |
| resources: |
| test: |
| type: OS::Heat::TestResource |
| properties: |
| value: {get_param: test_val} |
| action_wait_secs: |
| update: 1 |
| outputs: |
| output_value: |
| value: {get_attr: [test, output]} |
| |
| status: 202 |
| |
| - name: poll for stack UPDATE_COMPLETE |
| GET: $LAST_URL |
| redirects: True |
| poll: |
| count: 5 |
| delay: 1.0 |
| response_json_paths: |
| $.stack.stack_status: UPDATE_COMPLETE |
| |
| - name: patch update stack |
| PATCH: $LAST_URL |
| request_headers: |
| content-type: application/json |
| data: |
| parameters: {'test_val': new_patched_value} |
| |
| status: 202 |
| |
| - name: poll for stack patch UPDATE_COMPLETE |
| GET: $LAST_URL |
| redirects: True |
| poll: |
| count: 5 |
| delay: 1.0 |
| response_json_paths: |
| $.stack.stack_status: UPDATE_COMPLETE |
| $.stack.updated_time: /(?!$HISTORY['poll for stack UPDATE_COMPLETE'].$RESPONSE['$.stack.updated_time'])/ |
| |
| - name: list stack outputs |
| GET: $LAST_URL/outputs |
| redirects: True |
| status: 200 |
| response_json_paths: |
| $.outputs[0].output_key: output_value |
| |
| - name: get stack output |
| GET: $LAST_URL/output_value |
| redirects: True |
| status: 200 |
| response_json_paths: |
| $.output.output_value: new_patched_value |
| |
| - name: delete stack |
| DELETE: /stacks/$ENVIRON['PREFIX']-stack |
| redirects: True |
| status: 204 |