Browse code

Added support for fake drivers as Cinder backend

FakeLoggingVolumeDriver will be used for functional Cinder tests to
prevent dependencies on any storage.

FakeGateDriver is based on LVM and will be used to run Tempest tests for
such features like CG's, replication, etc.

Depends-On: I383bcdb531c7d52c0fdbb6875de73f1274a92854
Change-Id: I2dc8ea416f5eb3fcc9d2e959533497e464220ff5

Ivan Kolodyazhny authored on 2016/07/29 00:42:25
Showing 2 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,47 @@
0
+#!/bin/bash
1
+#
2
+# lib/cinder_backends/fake
3
+# Configure the Fake backend
4
+
5
+# Enable with:
6
+#
7
+#   CINDER_ENABLED_BACKENDS+=,fake:fake
8
+
9
+# Dependencies:
10
+#
11
+# - ``functions`` file
12
+# - ``cinder`` configurations
13
+
14
+# CINDER_CONF
15
+
16
+# clean_cinder_backend_fake - called from clean_cinder()
17
+# configure_cinder_backend_fake - called from configure_cinder()
18
+# init_cinder_backend_fake - called from init_cinder()
19
+
20
+
21
+# Save trace setting
22
+_XTRACE_CINDER_FAKE=$(set +o | grep xtrace)
23
+set +o xtrace
24
+
25
+
26
+function cleanup_cinder_backend_fake {
27
+    local be_name=$1
28
+}
29
+
30
+function configure_cinder_backend_fake {
31
+    local be_name=$1
32
+
33
+    iniset $CINDER_CONF $be_name volume_backend_name $be_name
34
+    iniset $CINDER_CONF $be_name volume_driver "cinder.tests.fake_driver.FakeLoggingVolumeDriver"
35
+
36
+}
37
+
38
+function init_cinder_backend_fake {
39
+    local be_name=$1
40
+}
41
+
42
+# Restore xtrace
43
+$_XTRACE_CINDER_FAKE
44
+
45
+# mode: shell-script
46
+# End:
0 47
new file mode 100644
... ...
@@ -0,0 +1,74 @@
0
+#!/bin/bash
1
+#
2
+# lib/cinder_backends/lvm
3
+# Configure the LVM backend
4
+
5
+# Enable with:
6
+#
7
+#   CINDER_ENABLED_BACKENDS+=,fake_gate:lvmname
8
+
9
+# Dependencies:
10
+#
11
+# - ``functions`` file
12
+# - ``cinder`` configurations
13
+
14
+# CINDER_CONF
15
+# DATA_DIR
16
+# VOLUME_GROUP_NAME
17
+
18
+# clean_cinder_backend_lvm - called from clean_cinder()
19
+# configure_cinder_backend_lvm - called from configure_cinder()
20
+# init_cinder_backend_lvm - called from init_cinder()
21
+
22
+
23
+# Save trace setting
24
+_XTRACE_CINDER_LVM=$(set +o | grep xtrace)
25
+set +o xtrace
26
+
27
+
28
+# TODO: resurrect backing device...need to know how to set values
29
+#VOLUME_BACKING_DEVICE=${VOLUME_BACKING_DEVICE:-}
30
+
31
+# Entry Points
32
+# ------------
33
+
34
+# cleanup_cinder_backend_lvm - Delete volume group and remove backing file
35
+# cleanup_cinder_backend_lvm $be_name
36
+function cleanup_cinder_backend_lvm {
37
+    local be_name=$1
38
+
39
+    # Campsite rule: leave behind a volume group at least as clean as we found it
40
+    clean_lvm_volume_group $VOLUME_GROUP_NAME-$be_name
41
+    clean_lvm_filter
42
+}
43
+
44
+# configure_cinder_backend_lvm - Set config files, create data dirs, etc
45
+# configure_cinder_backend_lvm $be_name
46
+function configure_cinder_backend_lvm {
47
+    local be_name=$1
48
+
49
+    iniset $CINDER_CONF $be_name volume_backend_name $be_name
50
+    iniset $CINDER_CONF $be_name volume_driver "cinder.tests.fake_driver.FakeGateDriver"
51
+    iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name
52
+    iniset $CINDER_CONF $be_name iscsi_helper "$CINDER_ISCSI_HELPER"
53
+    iniset $CINDER_CONF $be_name lvm_type "$CINDER_LVM_TYPE"
54
+
55
+    if [[ "$CINDER_VOLUME_CLEAR" == "non" ]]; then
56
+        iniset $CINDER_CONF $be_name volume_clear none
57
+    fi
58
+}
59
+
60
+# init_cinder_backend_lvm - Initialize volume group
61
+# init_cinder_backend_lvm $be_name
62
+function init_cinder_backend_lvm {
63
+    local be_name=$1
64
+
65
+    # Start with a clean volume group
66
+    init_lvm_volume_group $VOLUME_GROUP_NAME-$be_name $VOLUME_BACKING_FILE_SIZE
67
+}
68
+
69
+# Restore xtrace
70
+$_XTRACE_CINDER_LVM
71
+
72
+# mode: shell-script
73
+# End: