1 From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
2 Date: Tue, 15 Mar 2016 15:01:51 +0100
3 Subject: [PATCH] direct kernel boot for cirros
6 nailgun/nailgun/orchestrator/base_serializers.py | 16 +++--
7 .../nailgun/orchestrator/deployment_serializers.py | 70 ++++++++++++++++------
8 2 files changed, 62 insertions(+), 24 deletions(-)
10 diff --git a/nailgun/nailgun/orchestrator/base_serializers.py b/nailgun/nailgun/orchestrator/base_serializers.py
11 index 16dc3fa..23d6589 100644
12 --- a/nailgun/nailgun/orchestrator/base_serializers.py
13 +++ b/nailgun/nailgun/orchestrator/base_serializers.py
14 @@ -36,12 +36,16 @@ class MuranoMetadataSerializerMixin(object):
15 self).generate_test_vm_image_data(node)
17 # Add default Glance property for Murano.
18 - test_vm_image = image_data['test_vm_image']
19 - existing_properties = test_vm_image['glance_properties']
20 - murano_data = ' '.join(["""--property murano_image_info='{"title":"""
21 - """ "Murano Demo", "type": "cirros.demo"}'"""])
22 - test_vm_image['glance_properties'] = existing_properties + murano_data
23 - return {'test_vm_image': test_vm_image}
25 + for test_vm_image in image_data['test_vm_image']:
26 + existing_properties = test_vm_image['glance_properties']
27 + murano_data = ' '.join(
28 + ["""--property murano_image_info='{"title":"""
29 + """ "Murano Demo", "type": "cirros.demo"}'"""])
30 + test_vm_image['glance_properties'] = existing_properties + \
32 + test_vm_images += [test_vm_image]
33 + return {'test_vm_image': test_vm_images}
36 class VmwareDeploymentSerializerMixin(object):
37 diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py
38 index b8b38e2..d3d03ec 100644
39 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py
40 +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py
41 @@ -274,6 +274,9 @@ class DeploymentMultinodeSerializer(object):
42 return {'glance': {'image_cache_max_size': image_cache_max_size}}
44 def generate_test_vm_image_data(self, node):
46 + # By default always prepare the disk image
48 # Instantiate all default values in dict.
50 'container_format': 'bare',
51 @@ -297,8 +300,8 @@ class DeploymentMultinodeSerializer(object):
55 - image_data['img_path'] = '{0}cirros-{1}-disk.img'.format(img_dir,
57 + image_data['img_path'] = \
58 + '{0}cirros-{1}-disk.img'.format(img_dir, arch)
60 glance_properties = []
62 @@ -313,8 +316,38 @@ class DeploymentMultinodeSerializer(object):
63 glance_properties.append('--property hypervisor_type=vmware')
65 image_data['glance_properties'] = ' '.join(glance_properties)
67 - return {'test_vm_image': image_data}
68 + images += [image_data]
70 + # Now for aarch64 add also kernel and initrd because we direct
71 + # kernel boot is used then
72 + if arch == 'aarch64':
73 + image_data['glance_properties'] += \
74 + ' --property os_command_line=\'root=/dev/vda1 rw rootwait' + \
75 + ' console=tty0 console=ttyS0 console=ttyAMA0\'' + \
76 + ' --property hw_video_model=vga'
78 + 'container_format': 'aki',
80 + 'disk_format': 'aki',
81 + 'img_name': 'TestVM-kernel',
82 + 'img_path': '{0}cirros-{1}-kernel'.format(img_dir, arch),
83 + 'os_name': 'cirros',
85 + 'glance_properties': '',
88 + 'container_format': 'ari',
90 + 'disk_format': 'ari',
91 + 'img_name': 'TestVM-initramfs',
92 + 'img_path': '{0}cirros-{1}-initramfs'.format(img_dir, arch),
93 + 'os_name': 'cirros',
95 + 'glance_properties': '',
97 + images += [kernel_data, initrd_data]
99 + return {'test_vm_image': images}
102 def get_net_provider_serializer(cls, cluster):
103 @@ -495,20 +528,21 @@ class DeploymentHASerializer61(DeploymentHASerializer,
104 images_data['test_vm_image'] = []
105 if attrs.get('editable', {}).get('common', {}). \
106 get('use_vcenter', {}).get('value') is True:
107 - image_vmdk_data = deepcopy(image_data['test_vm_image'])
108 - img_path = image_vmdk_data['img_path']. \
109 - replace('x86_64-disk.img', 'i386-disk.vmdk')
110 - image_vmdk_data.update({
111 - 'img_name': 'TestVM-VMDK',
112 - 'disk_format': 'vmdk',
113 - 'img_path': img_path,
115 - image_vmdk_data['glance_properties'] = ' '.join([
116 - '--property vmware_disktype=sparse',
117 - '--property vmware_adaptertype=lsiLogic',
118 - '--property hypervisor_type=vmware'])
119 - images_data['test_vm_image'].append(image_vmdk_data)
120 - images_data['test_vm_image'].append(image_data['test_vm_image'])
121 + images_vmdk_data = deepcopy(image_data['test_vm_image'])
122 + for image_vmdk_data in images_vmdk_data:
123 + img_path = image_vmdk_data['img_path']. \
124 + replace('x86_64-disk.img', 'i386-disk.vmdk')
125 + image_vmdk_data.update({
126 + 'img_name': 'TestVM-VMDK',
127 + 'disk_format': 'vmdk',
128 + 'img_path': img_path,
130 + image_vmdk_data['glance_properties'] = ' '.join([
131 + '--property vmware_disktype=sparse',
132 + '--property vmware_adaptertype=lsiLogic',
133 + '--property hypervisor_type=vmware'])
134 + images_data['test_vm_image'] += [image_vmdk_data]
135 + images_data['test_vm_image'] += image_data['test_vm_image']
137 images_data = image_data