diff --git a/_modules/runtest/tempest_sections/volume.py b/_modules/runtest/tempest_sections/volume.py
index 7deeeb1..8de5e2b 100644
--- a/_modules/runtest/tempest_sections/volume.py
+++ b/_modules/runtest/tempest_sections/volume.py
@@ -73,8 +73,9 @@
     @property
     def storage_protocol(self):
         c = conditions.BaseRule('cinder.volume.enabled', 'eq', True)
-        backends = self.get_item_when_condition_match(
-            'cinder.volume.backend', c)
+        backends = (self.get_item_when_condition_match(
+            'cinder.volume.backend', c) or self.get_item_when_condition_match(
+            'cinder.controller.backend', c))
         if not backends:
             return
 
@@ -83,10 +84,9 @@
 
         # TODO: cinder support multibackends with different storage protocols,
         # pick first we know about for now, but might be refactored in future.
-        for backend_name,backend in backends.iteritems():
+        for backend_name, backend in backends.iteritems():
             res = backend['engine']
-            if res:
-              return res
+            return protocol_map.get(res)
 
     @property
     def vendor_name(self):
diff --git a/metadata/service/tempest/barbican.yml b/metadata/service/tempest/barbican.yml
new file mode 100644
index 0000000..5c9e212
--- /dev/null
+++ b/metadata/service/tempest/barbican.yml
@@ -0,0 +1,30 @@
+classes:
+  - service.runtest.tempest.cert
+  - service.runtest.tempest.test_accounts
+parameters:
+  _param:
+    # barbican tempest tests require admin accounts access
+    runtest_tempest_test_accounts_admin_access_enabled: True
+    runtest_tempest_test_accounts_roles:
+      - creator
+      - key-manager:service-admin
+  barbican:
+    client:
+      enabled: True
+      resources:
+        v1:
+          enabled: true
+          cloud_name: admin_identity
+          secrets:
+            TestSecret:
+              type: certificate
+              algorithm: RSA
+              payload_content_type: application/octet-stream
+              payload_content_encoding: base64
+              payload_path: ${_param:tempest_cert_file}
+              encodeb64_payload: true
+  runtest:
+    tempest:
+      test_cert_key: ${_param:tempest_cert_key}
+      test_cert_crt: ${_param:tempest_cert_file}
+      barbican_secret_name: TestSecret
diff --git a/metadata/service/tempest/cert.yml b/metadata/service/tempest/cert.yml
new file mode 100644
index 0000000..1ef2975
--- /dev/null
+++ b/metadata/service/tempest/cert.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    tempest_ca_hostname: ${linux:system:name}
+    tempest_ca_host: ${_param:tempest_ca_hostname}.${_param:cluster_domain}
+    tempest_ca_authority: salt_master_ca
+    tempest_cert_key: /tmp/test.key
+    tempest_cert_file: /tmp/test.crt
+  salt:
+    minion:
+      cert:
+        tempest:
+          host: ${_param:tempest_ca_host}
+          authority: ${_param:tempest_ca_authority}
+          common_name: tempest_test
+          signing_policy: cert_server
+          key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+          key_file:  ${_param:tempest_cert_key}
+          cert_file: ${_param:tempest_cert_file}
diff --git a/runtest/barbican_sign_image.sls b/runtest/barbican_sign_image.sls
new file mode 100644
index 0000000..7e48f8a
--- /dev/null
+++ b/runtest/barbican_sign_image.sls
@@ -0,0 +1,30 @@
+{%- from "runtest/map.jinja" import tempest with context %}
+{%- set prefix = tempest.get('test_accounts', {}).get('prefix', 'Tempest_Test') %}
+{%- set secret_name = tempest.get('barbican_secret_name', 'TestSecret') %}
+
+{%- set images = salt['glancev2.image_list'](cloud_name=tempest.keystone_profile_admin) %}
+{%- for image in images['images'] %}
+barbican_sign_image_{{ image['name'] }}:
+  barbicanv1.glance_image_signed:
+    - cloud_name: {{ tempest.keystone_profile_admin }}
+    - image_name: {{ image['name'] }}
+    - pk_fname: {{ tempest.test_cert_key }}
+    - secret_name: {{ secret_name }}
+    - out_fname: /tmp/signature_{{ image['name'] }}
+{%- endfor %}
+
+{%- set users = salt['keystonev3.user_list'](cloud_name=tempest.keystone_profile_admin) %}
+barbican_secret_acl_add_users:
+  module.run:
+    - name: barbicanv1.secret_acl_put
+    - args:
+      - {{ secret_name }}
+    - kwargs:
+        users:
+{%- for user in users['users'] %}
+{%- if prefix in user['name'] %}
+          - {{ user['id'] }}
+{%- endif %}
+{%- endfor %}
+        project-access: True
+        cloud_name: admin_identity
\ No newline at end of file
diff --git a/runtest/tempest.sls b/runtest/tempest.sls
index ac5fb87..4b6d24a 100644
--- a/runtest/tempest.sls
+++ b/runtest/tempest.sls
@@ -59,4 +59,5 @@
       - tempest_config_file
 
 {%- endif %}
+
 {%- endif -%}
