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 | 68 ++++++++++++++++------
8 2 files changed, 61 insertions(+), 23 deletions(-)
10 diff --git a/nailgun/nailgun/orchestrator/base_serializers.py b/nailgun/nailgun/orchestrator/base_serializers.py
11 index 0643635..a2f43b0 100644
12 --- a/nailgun/nailgun/orchestrator/base_serializers.py
13 +++ b/nailgun/nailgun/orchestrator/base_serializers.py
14 @@ -145,12 +145,16 @@ class MuranoMetadataSerializerMixin(object):
16 def inject_murano_settings(self, image_data):
17 """Adds murano metadata to the test image"""
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 6bb7990..62fb08b 100644
39 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py
40 +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py
41 @@ -283,6 +283,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 @@ -306,8 +309,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 @@ -322,8 +325,38 @@ class DeploymentMultinodeSerializer(object):
63 glance_properties.append('--property hypervisor_type=vmware')
65 image_data['glance_properties'] = ' '.join(glance_properties)
66 + images += [image_data]
68 + # Now for aarch64 add also kernel and initrd because we direct
69 + # kernel boot is used then
70 + if arch == 'aarch64':
71 + image_data['glance_properties'] += \
72 + ' --property os_command_line=\'root=/dev/vda1 rw rootwait' + \
73 + ' console=tty0 console=ttyS0 console=ttyAMA0\'' + \
74 + ' --property hw_video_model=vga'
76 + 'container_format': 'aki',
78 + 'disk_format': 'aki',
79 + 'img_name': 'TestVM-kernel',
80 + 'img_path': '{0}cirros-{1}-kernel'.format(img_dir, arch),
81 + 'os_name': 'cirros',
83 + 'glance_properties': '',
86 + 'container_format': 'ari',
88 + 'disk_format': 'ari',
89 + 'img_name': 'TestVM-initramfs',
90 + 'img_path': '{0}cirros-{1}-initramfs'.format(img_dir, arch),
91 + 'os_name': 'cirros',
93 + 'glance_properties': '',
95 + images += [kernel_data, initrd_data]
97 - return {'test_vm_image': image_data}
98 + return {'test_vm_image': images}
101 def get_net_provider_serializer(cls, cluster):
102 @@ -522,20 +555,21 @@ class DeploymentHASerializer61(DeploymentHASerializer,
103 images_data['test_vm_image'] = []
104 if attrs.get('editable', {}).get('common', {}). \
105 get('use_vcenter', {}).get('value') is True:
106 - image_vmdk_data = deepcopy(image_data['test_vm_image'])
107 - img_path = image_vmdk_data['img_path']. \
108 - replace('x86_64-disk.img', 'i386-disk.vmdk')
109 - image_vmdk_data.update({
110 - 'img_name': 'TestVM-VMDK',
111 - 'disk_format': 'vmdk',
112 - 'img_path': img_path,
114 - image_vmdk_data['glance_properties'] = ' '.join([
115 - '--property vmware_disktype=sparse',
116 - '--property vmware_adaptertype=lsiLogic',
117 - '--property hypervisor_type=vmware'])
118 - images_data['test_vm_image'].append(image_vmdk_data)
119 - images_data['test_vm_image'].append(image_data['test_vm_image'])
120 + images_vmdk_data = deepcopy(image_data['test_vm_image'])
121 + for image_vmdk_data in images_vmdk_data:
122 + img_path = image_vmdk_data['img_path']. \
123 + replace('x86_64-disk.img', 'i386-disk.vmdk')
124 + image_vmdk_data.update({
125 + 'img_name': 'TestVM-VMDK',
126 + 'disk_format': 'vmdk',
127 + 'img_path': img_path,
129 + image_vmdk_data['glance_properties'] = ' '.join([
130 + '--property vmware_disktype=sparse',
131 + '--property vmware_adaptertype=lsiLogic',
132 + '--property hypervisor_type=vmware'])
133 + images_data['test_vm_image'] += [image_vmdk_data]
134 + images_data['test_vm_image'] += image_data['test_vm_image']
136 images_data = image_data