Add gabbi tests for resource REST API
Change-Id: I34e53c484a7df8c58045d4eb9d526117dd19e09c
diff --git a/api/gabbits/resources.yaml b/api/gabbits/resources.yaml
new file mode 100644
index 0000000..164f4cb
--- /dev/null
+++ b/api/gabbits/resources.yaml
@@ -0,0 +1,90 @@
+defaults:
+ request_headers:
+ X-Auth-Token: $ENVIRON['OS_TOKEN']
+
+tests:
+- name: create stack with resources
+ POST: /stacks
+ request_headers:
+ content-type: application/json
+ data:
+ files: {}
+ disable_rollback: true
+ parameters: {}
+ stack_name: $ENVIRON['PREFIX']-rsrcstack
+ template:
+ heat_template_version: '2016-04-08'
+ parameters:
+ test_val:
+ type: string
+ default: test
+ resources:
+ test:
+ type: OS::Heat::TestResource
+ properties:
+ value: {get_param: test_val}
+
+ status: 201
+ response_headers:
+ location: //stacks/$ENVIRON['PREFIX']-rsrcstack/[a-f0-9-]+/
+
+- name: poll for rsrcstack CREATE_COMPLETE
+ GET: $LOCATION
+ redirects: True
+ poll:
+ count: 5
+ delay: 1.0
+ response_json_paths:
+ $.stack.stack_status: CREATE_COMPLETE
+
+- name: list resources
+ GET: $LAST_URL/resources
+ request_headers:
+ content-type: application/json
+ status: 200
+ response_json_paths:
+ $.resources[0].logical_resource_id: test
+ $.resources[0].resource_status: CREATE_COMPLETE
+
+- name: list filtered resources
+ GET: $LAST_URL
+ request_headers:
+ content-type: application/json
+ query_parameters:
+ type: OS::Nova::Server
+ status: 200
+ response_json_paths:
+ $.resources: []
+
+- name: show resource
+ GET: $LAST_URL/test
+ request_headers:
+ content-type: application/json
+ status: 200
+ response_json_paths:
+ $.resource.attributes.output: test
+
+- name: mark resource unhealthy
+ PATCH: $LAST_URL
+ request_headers:
+ content-type: application/json
+ data:
+ mark_unhealthy: true
+ resource_status_reason: 'resource deleted'
+ status: 200
+
+- name: show unhealthy resource
+ GET: $LAST_URL
+ status: 200
+ response_json_paths:
+ $.resource.resource_status: CHECK_FAILED
+ $.resource.resource_status_reason: 'resource deleted'
+
+- name: signal resource
+ POST: $LAST_URL/signal
+ status: 200
+
+- name: delete stack with resources
+ DELETE: /stacks/$ENVIRON['PREFIX']-rsrcstack
+ redirects: True
+ status: 204