24465729 Update Horizon for the Mitaka release
22955127 Error:Unauthorized when admin removed as project member of service project
22997164 xstatic package version numbers must match TPNO version
Patch to add kernel(8) and boot(8) options to horizon.
There are no plans to push this upstream.
--- horizon-9.0.1/openstack_dashboard/api/nova.py.~1~ 2016-06-02 13:05:56.000000000 -0700
+++ horizon-9.0.1/openstack_dashboard/api/nova.py 2016-06-29 23:54:56.937162560 -0700
@@ -741,6 +741,10 @@ def server_update(request, instance_id,
return novaclient(request).servers.update(instance_id, name=name)
+def server_set_meta(request, instance_id, metadata):
+ return novaclient(request).servers.set_meta(instance_id, metadata=metadata)
+
+
def server_migrate(request, instance_id):
novaclient(request).servers.migrate(instance_id)
--- horizon-9.0.1/openstack_dashboard/dashboards/project/instances/tables.py.~1~ 2016-06-02 13:05:56.000000000 -0700
+++ horizon-9.0.1/openstack_dashboard/dashboards/project/instances/tables.py 2016-06-29 23:54:56.938087190 -0700
@@ -459,6 +459,14 @@ class EditInstance(policy.PolicyTargetMi
return not is_deleting(instance)
+class EditBootargs(EditInstance):
+ name = "edit_bootargs"
+ verbose_name = _("Edit Instance Boot Options")
+
+ def get_link_url(self, project):
+ return self._get_link_url(project, 'instance_bootargs')
+
+
class EditInstanceSecurityGroups(EditInstance):
name = "edit_secgroups"
verbose_name = _("Edit Security Groups")
@@ -1213,3 +1221,7 @@ class InstancesTable(tables.DataTable):
ToggleShelve, ResizeLink, LockInstance, UnlockInstance,
SoftRebootInstance, RebootInstance,
StopInstance, RebuildInstance, DeleteInstance)
+ pos = row_actions.index(ConsoleLink)
+ if getattr(settings, 'SOLARIS_BOOTARGS', True):
+ row_actions = (row_actions[:pos] + (EditBootargs,) +
+ row_actions[pos:])
--- horizon-9.0.1/openstack_dashboard/dashboards/project/instances/views.py.~1~ 2016-06-02 13:05:56.000000000 -0700
+++ horizon-9.0.1/openstack_dashboard/dashboards/project/instances/views.py 2016-06-29 23:54:56.938661255 -0700
@@ -255,6 +255,14 @@ class UpdateView(workflows.WorkflowView)
initial = super(UpdateView, self).get_initial()
initial.update({'instance_id': self.kwargs['instance_id'],
'name': getattr(self.get_object(), 'name', '')})
+ if getattr(settings, 'SOLARIS_BOOTARGS', True):
+ metadata = getattr(self.get_object(), 'metadata', '')
+ bootargs = metadata.get('bootargs')
+ bootargs_persist = metadata.get(
+ 'bootargs_persist', 'False').lower() == 'true'
+
+ initial.update({'bootargs': bootargs,
+ 'bootargs_persist': bootargs_persist})
return initial
--- horizon-9.0.1/openstack_dashboard/dashboards/project/instances/workflows/create_instance.py.~2~ 2016-06-29 23:54:56.857026635 -0700
+++ horizon-9.0.1/openstack_dashboard/dashboards/project/instances/workflows/create_instance.py 2016-06-29 23:54:56.939484170 -0700
@@ -23,6 +23,7 @@ import operator
from oslo_utils import units
import six
+from django.conf import settings
from django.template.defaultfilters import filesizeformat # noqa
from django.utils.text import normalize_newlines # noqa
from django.utils.translation import ugettext_lazy as _
@@ -949,6 +950,14 @@ class LaunchInstance(workflows.Workflow)
nics = self.set_network_port_profiles(request,
context['network_id'],
context['profile_id'])
+ metadata = {}
+ if getattr(settings, 'SOLARIS_BOOTARGS', True):
+ bopts = context.get('boot_options').strip()
+ if bopts:
+ metadata = {
+ "bootargs": bopts,
+ "bootargs_persist": str(context.get('bootargs_persist'))
+ }
ports = context.get('ports')
if ports:
@@ -971,7 +980,8 @@ class LaunchInstance(workflows.Workflow)
instance_count=int(context['count']),
admin_pass=context['admin_pass'],
disk_config=context.get('disk_config'),
- config_drive=context.get('config_drive'))
+ config_drive=context.get('config_drive'),
+ meta=metadata)
return True
except Exception:
if port_profiles_supported: