Add ability to disable bootmenu parameter
Right now there are some kind of bug that prevents VM from booting when running at virtualized slave on latest xenial qemu packages & kernel. Disabling whole bootmenu parameter hepls. Change-Id: I838ee5cb69babc37f19093b2a378e984fcc0b958
This commit is contained in:
parent
17b805acaf
commit
f91248d546
|
@ -138,6 +138,8 @@ class Migration(SchemaMigration):
|
||||||
'environment': ('django.db.models.fields.related.ForeignKey', [],
|
'environment': ('django.db.models.fields.related.ForeignKey', [],
|
||||||
{'to': u"orm['devops.Environment']",
|
{'to': u"orm['devops.Environment']",
|
||||||
'null': 'True'}),
|
'null': 'True'}),
|
||||||
|
'enable_bootmenu': ('django.db.models.fields.BooleanField', [],
|
||||||
|
{'default': 'True'}),
|
||||||
'has_vnc': ('django.db.models.fields.BooleanField', [],
|
'has_vnc': ('django.db.models.fields.BooleanField', [],
|
||||||
{'default': 'True'}),
|
{'default': 'True'}),
|
||||||
'hypervisor': ('django.db.models.fields.CharField', [],
|
'hypervisor': ('django.db.models.fields.CharField', [],
|
||||||
|
|
|
@ -86,14 +86,16 @@ class Environment(DriverModel):
|
||||||
def get_nodes(self, *args, **kwargs):
|
def get_nodes(self, *args, **kwargs):
|
||||||
return self.node_set.filter(*args, **kwargs)
|
return self.node_set.filter(*args, **kwargs)
|
||||||
|
|
||||||
def add_node(self, memory, name, vcpu=1, boot=None, role='fuel_slave'):
|
def add_node(self, memory, name, vcpu=1, boot=None, role='fuel_slave',
|
||||||
|
enable_bootmenu=True):
|
||||||
return Node.node_create(
|
return Node.node_create(
|
||||||
name=name,
|
name=name,
|
||||||
memory=memory,
|
memory=memory,
|
||||||
vcpu=vcpu,
|
vcpu=vcpu,
|
||||||
environment=self,
|
environment=self,
|
||||||
role=role,
|
role=role,
|
||||||
boot=boot)
|
boot=boot,
|
||||||
|
enable_bootmenu=enable_bootmenu)
|
||||||
|
|
||||||
def add_empty_volume(self, node, name, capacity, device='disk',
|
def add_empty_volume(self, node, name, capacity, device='disk',
|
||||||
bus='virtio', format='qcow2', multipath_count=0):
|
bus='virtio', format='qcow2', multipath_count=0):
|
||||||
|
@ -378,7 +380,9 @@ class Environment(DriverModel):
|
||||||
role=config_node['role'],
|
role=config_node['role'],
|
||||||
memory=int(node_params['memory']),
|
memory=int(node_params['memory']),
|
||||||
vcpu=int(node_params['vcpu']),
|
vcpu=int(node_params['vcpu']),
|
||||||
boot=node_params['boot'])
|
boot=node_params['boot'],
|
||||||
|
enable_bootmenu=node_params.get('enable_bootmenu', True)
|
||||||
|
)
|
||||||
|
|
||||||
self.create_interfaces(node_params['interfaces'], node)
|
self.create_interfaces(node_params['interfaces'], node)
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@ class Node(DriverModel):
|
||||||
os_type = choices('hvm')
|
os_type = choices('hvm')
|
||||||
architecture = choices('x86_64', 'i686')
|
architecture = choices('x86_64', 'i686')
|
||||||
boot = models.CharField(max_length=255, null=False, default=json.dumps([]))
|
boot = models.CharField(max_length=255, null=False, default=json.dumps([]))
|
||||||
|
enable_bootmenu = models.BooleanField(null=False, default=True)
|
||||||
metadata = models.CharField(max_length=255, null=True)
|
metadata = models.CharField(max_length=255, null=True)
|
||||||
role = models.CharField(max_length=255, null=True)
|
role = models.CharField(max_length=255, null=True)
|
||||||
vcpu = models.PositiveSmallIntegerField(null=False, default=1)
|
vcpu = models.PositiveSmallIntegerField(null=False, default=1)
|
||||||
|
@ -98,8 +99,10 @@ class Node(DriverModel):
|
||||||
|
|
||||||
:returns: Boolean
|
:returns: Boolean
|
||||||
"""
|
"""
|
||||||
return (self.is_admin and self.disk_devices.filter(bus='usb')) or \
|
return self.enable_bootmenu and (
|
||||||
(self.is_slave and not self.pxe_boot_interface_is_eth0)
|
(self.is_admin and self.disk_devices.filter(bus='usb')) or
|
||||||
|
(self.is_slave and not self.pxe_boot_interface_is_eth0)
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def on_second_admin_network(self):
|
def on_second_admin_network(self):
|
||||||
|
@ -516,7 +519,8 @@ class Node(DriverModel):
|
||||||
@classmethod
|
@classmethod
|
||||||
def node_create(cls, name, environment=None, role=None, vcpu=1,
|
def node_create(cls, name, environment=None, role=None, vcpu=1,
|
||||||
memory=1024, has_vnc=True, metadata=None, hypervisor='kvm',
|
memory=1024, has_vnc=True, metadata=None, hypervisor='kvm',
|
||||||
os_type='hvm', architecture='x86_64', boot=None):
|
os_type='hvm', architecture='x86_64', boot=None,
|
||||||
|
enable_bootmenu=True):
|
||||||
"""Create node
|
"""Create node
|
||||||
|
|
||||||
:rtype : Node
|
:rtype : Node
|
||||||
|
@ -527,6 +531,7 @@ class Node(DriverModel):
|
||||||
name=name, environment=environment,
|
name=name, environment=environment,
|
||||||
role=role, vcpu=vcpu, memory=memory,
|
role=role, vcpu=vcpu, memory=memory,
|
||||||
has_vnc=has_vnc, metadata=metadata, hypervisor=hypervisor,
|
has_vnc=has_vnc, metadata=metadata, hypervisor=hypervisor,
|
||||||
os_type=os_type, architecture=architecture, boot=json.dumps(boot)
|
os_type=os_type, architecture=architecture, boot=json.dumps(boot),
|
||||||
|
enable_bootmenu=enable_bootmenu
|
||||||
)
|
)
|
||||||
return node
|
return node
|
||||||
|
|
Loading…
Reference in New Issue