diff --git a/openstack_dashboard/dashboards/project/volumes/forms.py b/openstack_dashboard/dashboards/project/volumes/forms.py index b5341fc0ba..4e1cb62c47 100644 --- a/openstack_dashboard/dashboards/project/volumes/forms.py +++ b/openstack_dashboard/dashboards/project/volumes/forms.py @@ -34,7 +34,6 @@ class CreateForm(forms.SelfHandlingForm): type = forms.ChoiceField(label=_("Type"), required=False) size = forms.IntegerField(min_value=1, label=_("Size (GB)")) - encryption = forms.ChoiceField(label=_("Encryption"), required=False) volume_source_type = forms.ChoiceField(label=_("Volume Source"), required=False) snapshot_source = forms.ChoiceField(label=_("Use snapshot as a source"), @@ -62,24 +61,6 @@ class CreateForm(forms.SelfHandlingForm): [(type.name, type.name) for type in volume_types] - # Hide the volume encryption field if the hypervisor doesn't support it - # NOTE: as of Grizzly this is not yet supported in Nova so enabling - # this setting will not do anything useful - hypervisor_features = getattr(settings, - "OPENSTACK_HYPERVISOR_FEATURES", - {}) - can_encrypt_volumes = hypervisor_features.get("can_encrypt_volumes", - False) - - if can_encrypt_volumes: - # TODO(laura-glendenning) get from api call in future - encryption_options = {"LUKS": "dmcrypt LUKS"} - self.fields['encryption'].choices = [("", "")] + \ - [(enc, display) for enc, display in encryption_options.items()] - else: - self.fields['encryption'].widget = forms.widgets.HiddenInput() - self.fields['encryption'].required = False - if ("snapshot_id" in request.GET): try: snapshot = self.get_snapshot(request, @@ -214,9 +195,6 @@ class CreateForm(forms.SelfHandlingForm): metadata = {} - if data['encryption']: - metadata['encryption'] = data['encryption'] - volume = cinder.volume_create(request, data['size'], data['name'], diff --git a/openstack_dashboard/dashboards/project/volumes/tests.py b/openstack_dashboard/dashboards/project/volumes/tests.py index 9110fc6289..bc1244b4e5 100644 --- a/openstack_dashboard/dashboards/project/volumes/tests.py +++ b/openstack_dashboard/dashboards/project/volumes/tests.py @@ -508,106 +508,6 @@ class VolumeViewTests(test.TestCase): ' volumes.'] self.assertEqual(res.context['form'].errors['__all__'], expected_error) - @test.create_stubs({cinder: ('volume_create', - 'volume_snapshot_list', - 'volume_type_list', - 'tenant_absolute_limits', - 'volume_list',), - api.glance: ('image_list_detailed',)}) - def test_create_volume_encrypted(self): - volume = self.volumes.first() - volume_type = self.volume_types.first() - usage_limit = {'maxTotalVolumeGigabytes': 250, - 'gigabytesUsed': 20, - 'maxTotalVolumes': 6} - formData = {'name': u'An Encrypted Volume', - 'description': u'This volume has metadata for encryption.', - 'method': u'CreateForm', - 'type': volume_type.name, - 'size': 50, - 'snapshot_source': '', - 'encryption': u'LUKS'} - - # check normal operation with can_encrypt_volumes = true - PREV = settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] - settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] = True - - cinder.volume_type_list(IsA(http.HttpRequest)).\ - AndReturn(self.volume_types.list()) - cinder.tenant_absolute_limits(IsA(http.HttpRequest)).\ - AndReturn(usage_limit) - cinder.volume_list(IsA(http.HttpRequest)).\ - AndReturn(self.volumes.list()) - cinder.volume_snapshot_list(IsA(http.HttpRequest)).\ - AndReturn(self.volume_snapshots.list()) - api.glance.image_list_detailed(IsA(http.HttpRequest), - filters={'is_public': True, - 'status': 'active'}) \ - .AndReturn([self.images.list(), False]) - api.glance.image_list_detailed(IsA(http.HttpRequest), - filters={'property-owner_id': self.tenant.id, - 'status': 'active'}) \ - .AndReturn([[], False]) - cinder.volume_create(IsA(http.HttpRequest), - formData['size'], - formData['name'], - formData['description'], - formData['type'], - metadata={'encryption': formData['encryption']}, - snapshot_id=None, - image_id=None).AndReturn(volume) - - self.mox.ReplayAll() - - url = reverse('horizon:project:volumes:create') - res = self.client.post(url, formData) - - redirect_url = reverse('horizon:project:volumes:index') - self.assertRedirectsNoFollow(res, redirect_url) - - settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] = PREV - - @test.create_stubs({cinder: ('volume_snapshot_list', 'volume_type_list', - 'tenant_absolute_limits', 'volume_list',), - api.glance: ('image_list_detailed',)}) - def test_create_volume_cannot_encrypt(self): - # check that widget is hidden if can_encrypt_volumes = false - PREV = settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] - settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] = False - - usage_limit = {'maxTotalVolumeGigabytes': 250, - 'gigabytesUsed': 20, - 'maxTotalVolumes': 6} - - cinder.volume_type_list(IsA(http.HttpRequest)).\ - AndReturn(self.volume_types.list()) - cinder.tenant_absolute_limits(IsA(http.HttpRequest)).\ - AndReturn(usage_limit) - cinder.volume_list(IsA(http.HttpRequest)).\ - AndReturn(self.volumes.list()) - cinder.volume_snapshot_list(IsA(http.HttpRequest)).\ - AndReturn(self.volume_snapshots.list()) - api.glance.image_list_detailed(IsA(http.HttpRequest), - filters={'is_public': True, - 'status': 'active'}) \ - .AndReturn([self.images.list(), False]) - api.glance.image_list_detailed(IsA(http.HttpRequest), - filters={'property-owner_id': self.tenant.id, - 'status': 'active'}) \ - .AndReturn([[], False]) - - self.mox.ReplayAll() - - url = reverse('horizon:project:volumes:create') - res = self.client.get(url) - - # Assert the encryption field is hidden. - form = res.context['form'] - self.assertTrue(isinstance(form.fields['encryption'].widget, - widgets.HiddenInput)) - - settings.OPENSTACK_HYPERVISOR_FEATURES['can_encrypt_volumes'] = PREV - @test.create_stubs({cinder: ('volume_list', 'volume_delete',), api.nova: ('server_list',), diff --git a/openstack_dashboard/local/local_settings.py.example b/openstack_dashboard/local/local_settings.py.example index a2b47879b5..96325fee0b 100644 --- a/openstack_dashboard/local/local_settings.py.example +++ b/openstack_dashboard/local/local_settings.py.example @@ -148,10 +148,6 @@ OPENSTACK_KEYSTONE_BACKEND = { OPENSTACK_HYPERVISOR_FEATURES = { 'can_set_mount_point': True, - - # NOTE: as of Grizzly this is not yet supported in Nova so enabling this - # setting will not do anything useful - 'can_encrypt_volumes': False } # The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional diff --git a/openstack_dashboard/test/settings.py b/openstack_dashboard/test/settings.py index cda2ea8d2a..efef386644 100644 --- a/openstack_dashboard/test/settings.py +++ b/openstack_dashboard/test/settings.py @@ -89,10 +89,6 @@ OPENSTACK_NEUTRON_NETWORK = { OPENSTACK_HYPERVISOR_FEATURES = { 'can_set_mount_point': True, - - # NOTE: as of Grizzly this is not yet supported in Nova so enabling this - # setting will not do anything useful - 'can_encrypt_volumes': False } LOGGING['loggers']['openstack_dashboard'] = {