Merge "Pass SSL options to swiftclient explicitly"
diff --git a/.zuul.yaml b/.zuul.yaml
index c9aea1b..f7d9698 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -29,5 +29,4 @@
       jobs:
         - heat-functional-orig-mysql-lbaasv2
         - heat-functional-convg-mysql-lbaasv2
-        - heat-functional-convg-mysql-lbaasv2-non-apache
         - heat-functional-convg-mysql-lbaasv2-py35
diff --git a/heat_tempest_plugin/tests/api/fixtures.py b/heat_tempest_plugin/tests/api/fixtures.py
new file mode 100644
index 0000000..6c770c8
--- /dev/null
+++ b/heat_tempest_plugin/tests/api/fixtures.py
@@ -0,0 +1,28 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import os
+
+from gabbi import fixture
+from heat_tempest_plugin.services import clients
+from tempest import config
+
+
+class AuthenticationFixture(fixture.GabbiFixture):
+    def start_fixture(self):
+        conf = config.CONF.heat_plugin
+        manager = clients.ClientManager(conf)
+        os.environ['OS_TOKEN'] = manager.identity_client.auth_token
+
+    def stop_fixture(self):
+        pass
diff --git a/heat_tempest_plugin/tests/api/gabbits/environments.yaml b/heat_tempest_plugin/tests/api/gabbits/environments.yaml
index fe1dc04..03849df 100644
--- a/heat_tempest_plugin/tests/api/gabbits/environments.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/environments.yaml
@@ -1,3 +1,6 @@
+fixtures:
+    - AuthenticationFixture
+
 defaults:
   request_headers:
     X-Auth-Token: $ENVIRON['OS_TOKEN']
diff --git a/heat_tempest_plugin/tests/api/gabbits/resources.yaml b/heat_tempest_plugin/tests/api/gabbits/resources.yaml
index c20333b..c99b6a9 100644
--- a/heat_tempest_plugin/tests/api/gabbits/resources.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/resources.yaml
@@ -1,3 +1,6 @@
+fixtures:
+    - AuthenticationFixture
+
 defaults:
   request_headers:
     X-Auth-Token: $ENVIRON['OS_TOKEN']
diff --git a/heat_tempest_plugin/tests/api/gabbits/resourcetypes.yaml b/heat_tempest_plugin/tests/api/gabbits/resourcetypes.yaml
index 809feab..954963e 100644
--- a/heat_tempest_plugin/tests/api/gabbits/resourcetypes.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/resourcetypes.yaml
@@ -1,3 +1,6 @@
+fixtures:
+    - AuthenticationFixture
+
 defaults:
   request_headers:
     X-Auth-Token: $ENVIRON['OS_TOKEN']
diff --git a/heat_tempest_plugin/tests/api/gabbits/softwareconfig.yaml b/heat_tempest_plugin/tests/api/gabbits/softwareconfig.yaml
new file mode 100644
index 0000000..0d0453d
--- /dev/null
+++ b/heat_tempest_plugin/tests/api/gabbits/softwareconfig.yaml
@@ -0,0 +1,86 @@
+fixtures:
+    - AuthenticationFixture
+
+defaults:
+  request_headers:
+    X-Auth-Token: $ENVIRON['OS_TOKEN']
+
+tests:
+- name: create software config
+  desc: d26d11c0-4924-11e8-842f-0ed5f89f718b
+  POST: /software_configs
+  request_headers:
+    content-type: application/json
+  data:
+    group: script
+    config: '#!/bin/sh -x\necho hello'
+  status: 200
+
+- name: show config
+  desc: d26d149a-4924-11e8-842f-0ed5f89f718b
+  GET: $LAST_URL/$RESPONSE['software_config.id']
+  status: 200
+  response_json_paths:
+    $.software_config.group: script
+
+- name: create software deployment
+  desc: d26d15ee-4924-11e8-842f-0ed5f89f718b
+  POST: /software_deployments
+  request_headers:
+    content-type: application/json
+  data:
+    action: ACTION0
+    config_id: $RESPONSE['software_config.id']
+    server_id: dummy_server
+  status: 200
+
+- name: show deployment
+  desc: d26d1968-4924-11e8-842f-0ed5f89f718b
+  GET: $LAST_URL/$RESPONSE['software_deployment.id']
+  status: 200
+  response_json_paths:
+    $.software_deployment.action: ACTION0
+
+- name: show deployment metadata
+  desc: d26d1ae4-4924-11e8-842f-0ed5f89f718b
+  GET: /software_deployments/metadata/$RESPONSE['software_deployment.server_id']
+  status: 200
+  response_json_paths:
+    $.metadata[0].group: script
+
+- name: update deployment
+  desc: d26d1c1a-4924-11e8-842f-0ed5f89f718b
+  PUT: $HISTORY['show deployment'].$URL
+  request_headers:
+    content-type: application/json
+  data:
+    action: ACTION1
+    status: COMPLETE
+    status_reason: completed
+  status: 200
+  response_json_paths:
+    $.software_deployment.action: ACTION1
+
+- name: list software configs
+  desc: d26d1d46-4924-11e8-842f-0ed5f89f718b
+  GET: /software_configs
+  status: 200
+  response_json_paths:
+    $.software_configs[?id = "$RESPONSE['software_deployment.config_id']"].group: script
+
+- name: list software deployments
+  desc: d26d1e90-4924-11e8-842f-0ed5f89f718b
+  GET: /software_deployments
+  status: 200
+  response_json_paths:
+    $.software_deployments[?id= "$HISTORY['update deployment'].$RESPONSE['software_deployment.id']"].server_id: dummy_server
+
+- name: delete deployment
+  desc: d26d1fda-4924-11e8-842f-0ed5f89f718b
+  DELETE: $HISTORY['show deployment'].$URL
+  status: 204
+
+- name: delete config
+  desc: d26d22be-4924-11e8-842f-0ed5f89f718b
+  DELETE: $HISTORY['show config'].$URL
+  status: 204
diff --git a/heat_tempest_plugin/tests/api/gabbits/stacks.yaml b/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
index 9d9328e..4947416 100644
--- a/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/stacks.yaml
@@ -1,3 +1,6 @@
+fixtures:
+    - AuthenticationFixture
+
 defaults:
   request_headers:
     X-Auth-Token: $ENVIRON['OS_TOKEN']
diff --git a/heat_tempest_plugin/tests/api/gabbits/templates.yaml b/heat_tempest_plugin/tests/api/gabbits/templates.yaml
index ab0bbab..4319753 100644
--- a/heat_tempest_plugin/tests/api/gabbits/templates.yaml
+++ b/heat_tempest_plugin/tests/api/gabbits/templates.yaml
@@ -1,3 +1,6 @@
+fixtures:
+    - AuthenticationFixture
+
 defaults:
   request_headers:
     X-Auth-Token: $ENVIRON['OS_TOKEN']
diff --git a/heat_tempest_plugin/tests/api/test_heat_api.py b/heat_tempest_plugin/tests/api/test_heat_api.py
index 804f445..7ba3a62 100644
--- a/heat_tempest_plugin/tests/api/test_heat_api.py
+++ b/heat_tempest_plugin/tests/api/test_heat_api.py
@@ -24,6 +24,7 @@
 
 from heat_tempest_plugin.common import test
 from heat_tempest_plugin.services import clients
+from heat_tempest_plugin.tests.api import fixtures
 
 LOG = logging.getLogger(__name__)
 TESTS_DIR = 'gabbits'
@@ -41,7 +42,6 @@
             endpoint = manager.identity_client.get_endpoint_url(
                 'orchestration', region=conf.region,
                 endpoint_type=conf.endpoint_type)
-            os.environ['OS_TOKEN'] = manager.identity_client.auth_token
             os.environ['PREFIX'] = test.rand_name('api')
 
         # Catch the authentication exceptions that can happen if one of the
@@ -93,7 +93,7 @@
                 register_test_case_id(test_case)
 
     api_tests = driver.build_tests(test_dir, loader, url=endpoint, host="",
+                                   fixture_module=fixtures,
                                    test_loader_name=__name__)
-
     register_test_suite_ids(api_tests)
     return api_tests