Boot server from encrypted volume

This patch adds support for booting a server from an
encrypted volume while using luks encryption method.

Note: manager.create_server method passes wait_until='ACTIVE',
so 'create_test_server' function in common/compute.py waits
until the server status is 'ACTIVE'.

Change-Id: Ibd05252976499daaaafc658e3f3a920398b53420
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index b692acf..9329f41 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -1259,6 +1259,17 @@
             type_id, provider=provider, key_size=key_size, cipher=cipher,
             control_location=control_location)['encryption']
 
+    def create_encrypted_volume(self, encryption_provider, volume_type,
+                                key_size=256, cipher='aes-xts-plain64',
+                                control_location='front-end'):
+        volume_type = self.create_volume_type(name=volume_type)
+        self.create_encryption_type(type_id=volume_type['id'],
+                                    provider=encryption_provider,
+                                    key_size=key_size,
+                                    cipher=cipher,
+                                    control_location=control_location)
+        return self.create_volume(volume_type=volume_type['name'])
+
 
 class ObjectStorageScenarioTest(ScenarioTest):
     """Provide harness to do Object Storage scenario tests.