diff --git a/etc/tempest.conf.sample b/etc/tempest.conf.sample index 6424f55550..4e64d7f2ba 100644 --- a/etc/tempest.conf.sample +++ b/etc/tempest.conf.sample @@ -427,6 +427,12 @@ # value) #preserve_ports = false +# Does the test environment support attaching an encrypted volume to a +# running server instance? This may depend on the combination of +# compute_driver in nova and the volume_driver(s) in cinder. (boolean +# value) +#attach_encrypted_volume = true + [dashboard] diff --git a/tempest/config.py b/tempest/config.py index 0fa5bf55c2..77099102fe 100644 --- a/tempest/config.py +++ b/tempest/config.py @@ -387,7 +387,13 @@ ComputeFeaturesGroup = [ default=False, help='Does Nova preserve preexisting ports from Neutron ' 'when deleting an instance? This should be set to True ' - 'if testing Kilo+ Nova.') + 'if testing Kilo+ Nova.'), + cfg.BoolOpt('attach_encrypted_volume', + default=True, + help='Does the test environment support attaching an ' + 'encrypted volume to a running server instance? This may ' + 'depend on the combination of compute_driver in nova and ' + 'the volume_driver(s) in cinder.'), ] diff --git a/tempest/scenario/test_encrypted_cinder_volumes.py b/tempest/scenario/test_encrypted_cinder_volumes.py index e6912d821e..b66eb59d9b 100644 --- a/tempest/scenario/test_encrypted_cinder_volumes.py +++ b/tempest/scenario/test_encrypted_cinder_volumes.py @@ -13,9 +13,12 @@ # License for the specific language governing permissions and limitations # under the License. +from tempest import config from tempest.scenario import manager from tempest import test +CONF = config.CONF + class TestEncryptedCinderVolumes(manager.EncryptionScenarioTest): @@ -31,6 +34,12 @@ class TestEncryptedCinderVolumes(manager.EncryptionScenarioTest): * Attaches and detaches the encrypted volume to the instance """ + @classmethod + def skip_checks(cls): + super(TestEncryptedCinderVolumes, cls).skip_checks() + if not CONF.compute_feature_enabled.attach_encrypted_volume: + raise cls.skipException('Encrypted volume attach is not supported') + def launch_instance(self): self.glance_image_create() self.nova_boot()