18646500 Unable to attach a volume to a KZ instance using Horizon
authorStrony <strony.zhang@oracle.com>
Mon, 23 Jun 2014 07:55:33 -0700
changeset 1963 fe904db9c438
parent 1962 5793a4efde2c
child 1964 aaaf769f15a7
18646500 Unable to attach a volume to a KZ instance using Horizon 19022958 Unable to specify solaris device names when attaching volumes to instances
components/openstack/horizon/files/local_settings.py
components/openstack/horizon/patches/06-launchpad-1255136.patch
--- a/components/openstack/horizon/files/local_settings.py	Mon Jun 23 08:41:07 2014 -0600
+++ b/components/openstack/horizon/files/local_settings.py	Mon Jun 23 07:55:33 2014 -0700
@@ -161,8 +161,12 @@
     'can_edit_role': True
 }
 
+# The Xen Hypervisor has the ability to set the mount point for volumes
+# attached to instances (other Hypervisors currently do not). Setting
+# can_set_mount_point to True will add the option to set the mount point
+# from the UI.
 OPENSTACK_HYPERVISOR_FEATURES = {
-    'can_set_mount_point': True,
+    'can_set_mount_point': False,
 }
 
 # The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openstack/horizon/patches/06-launchpad-1255136.patch	Mon Jun 23 07:55:33 2014 -0700
@@ -0,0 +1,107 @@
+Although the following patch has been addressed in Icehouse 2014.1, it
+still has not yet been released for Havana.  It has been modified to
+apply cleanly into our current Havana implementation
+
+From 1b13a42b9edbd34e8bb4339a962cd2c30bda7d81 Mon Sep 17 00:00:00 2001
+From: Zhenguo Niu <[email protected]>
+Date: Wed, 4 Dec 2013 09:45:56 +0800
+Subject: [PATCH] Set can_set_mount_point default to False
+
+Patch https://review.openstack.org/#/c/59229/ only changed the default
+value in the local_settings.py example file. If the setting isn't defined,
+it still defaults to True
+Change-Id: Ia3525786e5eb9ec83b8057c1cb6158ab153adc59
+Closes-Bug: #1255136
+
+--- horizon-2013.2.3/doc/source/topics/settings.rst.orig	2014-06-20 05:00:21.858630069 -0700
++++ horizon-2013.2.3/doc/source/topics/settings.rst	2014-06-20 06:27:39.151996410 -0700
[email protected]@ -204,14 +204,15 @@
+ ``OPENSTACK_HYPERVISOR_FEATURES``
+ ---------------------------------
+ 
+-Default: ``{'can_set_mount_point': True, 'can_encrypt_volumes': False}``
++Default: ``{'can_set_mount_point': False, 'can_encrypt_volumes': False}``
+ 
+ A dictionary containing settings which can be used to identify the
+ capabilities of the hypervisor for Nova.
+ 
+-Some hypervisors have the ability to set the mount point for volumes attached
+-to instances (KVM does not). Setting ``can_set_mount_point`` to ``False`` will
+-remove the option to set the mount point from the UI.
++The Xen Hypervisor has the ability to set the mount point for volumes attached
++to instances (other Hypervisors currently do not). Setting
++``can_set_mount_point`` to ``True`` will add the option to set the mount point
++from the UI.
+ 
+ In the Havana release, there will be a feature for encrypted volumes
+ which will be controlled by the ``can_encrypt_volumes``. Setting it to ``True``
+--- horizon-2013.2.3/openstack_dashboard/dashboards/project/volumes/tests.py.orig	2014-06-20 04:56:16.805828523 -0700
++++ horizon-2013.2.3/openstack_dashboard/dashboards/project/volumes/tests.py	2014-06-20 06:32:26.947240676 -0700
[email protected]@ -555,6 +555,8 @@
+ 
+     @test.create_stubs({cinder: ('volume_get',), api.nova: ('server_list',)})
+     def test_edit_attachments(self):
++        PREV = settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point']
++        settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point'] = True
+         volume = self.volumes.first()
+         servers = [s for s in self.servers.list()
+                    if s.tenant_id == self.request.user.tenant_id]
[email protected]@ -573,11 +575,10 @@
+         self.assertEqual(res.status_code, 200)
+         self.assertTrue(isinstance(form.fields['device'].widget,
+                                    widgets.TextInput))
++        settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point'] = PREV
+ 
+     @test.create_stubs({cinder: ('volume_get',), api.nova: ('server_list',)})
+     def test_edit_attachments_cannot_set_mount_point(self):
+-        PREV = settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point']
+-        settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point'] = False
+ 
+         volume = self.volumes.first()
+         servers = [s for s in self.servers.list()
[email protected]@ -593,7 +594,6 @@
+         form = res.context['form']
+         self.assertTrue(isinstance(form.fields['device'].widget,
+                                    widgets.HiddenInput))
+-        settings.OPENSTACK_HYPERVISOR_FEATURES['can_set_mount_point'] = PREV
+ 
+     @test.create_stubs({cinder: ('volume_get',),
+                         api.nova: ('server_get', 'server_list',),
+--- horizon-2013.2.3/openstack_dashboard/dashboards/project/volumes/forms.py.orig	2014-06-20 04:54:21.534957784 -0700
++++ horizon-2013.2.3/openstack_dashboard/dashboards/project/volumes/forms.py	2014-06-20 06:33:14.199293693 -0700
[email protected]@ -230,7 +230,7 @@
+                                       "OPENSTACK_HYPERVISOR_FEATURES",
+                                       {})
+         can_set_mount_point = hypervisor_features.get("can_set_mount_point",
+-                                                      True)
++                                                      False)
+         if not can_set_mount_point:
+             self.fields['device'].widget = forms.widgets.HiddenInput()
+             self.fields['device'].required = False
+--- horizon-2013.2.3/openstack_dashboard/local/local_settings.py.example.orig	2014-06-20 06:49:38.061148762 -0700
++++ horizon-2013.2.3/openstack_dashboard/local/local_settings.py.example	2014-06-20 03:03:06.949623969 -0700
[email protected]@ -149,8 +149,12 @@
+     'can_edit_role': True
+ }
+ 
++# The Xen Hypervisor has the ability to set the mount point for volumes
++# attached to instances (other Hypervisors currently do not). Setting
++# can_set_mount_point to True will add the option to set the mount point
++# from the UI.
+ OPENSTACK_HYPERVISOR_FEATURES = {
+-    'can_set_mount_point': True,
++    'can_set_mount_point': False,
+ }
+ 
+ # The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional
+--- horizon-2013.2.3/openstack_dashboard/test/settings.py.orig	2014-06-20 04:59:02.205734858 -0700
++++ horizon-2013.2.3/openstack_dashboard/test/settings.py	2014-06-20 06:28:57.101070812 -0700
[email protected]@ -107,7 +107,7 @@
+ }
+ 
+ OPENSTACK_HYPERVISOR_FEATURES = {
+-    'can_set_mount_point': True,
++    'can_set_mount_point': False,
+ }
+ 
+ OPENSTACK_IMAGE_BACKEND = {