diff options
7 files changed, 185 insertions, 107 deletions
@@ -12,7 +12,7 @@ submodules-init: submodules-clean: @git submodule -q foreach \ 'git am --abort; \ - git checkout -q armband-workbench-root; \ + git checkout -q armband-workbench-root; \ git branch -q -D armband-workbench; \ git tag -d armband-workbench-root; \ git reset -q --hard HEAD; git clean -xdff' @@ -33,6 +33,7 @@ patches-import: @git submodule -q foreach 'git checkout -q -b armband-workbench' @git submodule -q foreach \ 'if [ ! -z "$$(ls ${root}/patches/$$name/)" ]; then \ + echo "-- patching $$name"; \ git am ${root}/patches/$$name/*.patch; \ fi' clean-docker: diff --git a/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch b/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch index 37b10879..417727ec 100644 --- a/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch +++ b/patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch @@ -1,15 +1,16 @@ +From ec3299c72eae195106092a646409564b5b3eb560 Mon Sep 17 00:00:00 2001 From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com> Date: Wed, 24 Feb 2016 20:08:24 +0100 -Subject: [PATCH] Make TestVM creation architecture aware +Subject: [PATCH 10/20] Make TestVM creation architecture aware This depends on cirros-testvm package to contain both amd64 and arm64 images. --- - deployment/puppet/openstack/manifests/img/cirros.pp | 8 ++++++-- - puppet/osnailyfacter/manifests/generate_vms/vm_config.pp | 11 +++++++++++ - deployment/puppet/osnailyfacter/templates/vm_libvirt.erb | 9 ++++++++- - files/fuel-migrate/fuel-migrate | 5 ++++- - 4 files changed, 29 insertions(+), 4 deletions(-) + deployment/puppet/openstack/manifests/img/cirros.pp | 8 ++++++-- + .../osnailyfacter/manifests/generate_vms/vm_config.pp | 11 +++++++++++ + deployment/puppet/osnailyfacter/templates/vm_libvirt.erb | 15 ++++++++++++++- + files/fuel-migrate/fuel-migrate | 5 ++++- + 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/deployment/puppet/openstack/manifests/img/cirros.pp b/deployment/puppet/openstack/manifests/img/cirros.pp index 84e202e..cff06e0 100644 @@ -44,10 +45,10 @@ index 84e202e..cff06e0 100644 } diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp -index 6d5426a..da5954e 100644 +index 70fef32..dfefcbe 100644 --- a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp +++ b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp -@@ -11,6 +11,17 @@ define vm_config { +@@ -4,6 +4,17 @@ define osnailyfacter::generate_vms::vm_config( $details = $name $id = $details['id'] @@ -66,19 +67,25 @@ index 6d5426a..da5954e 100644 owner => 'root', group => 'root', diff --git a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb -index ae2ba5b..2d030d9 100644 +index ae2ba5b..64e716d 100644 --- a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb +++ b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb -@@ -3,7 +3,7 @@ +@@ -3,14 +3,23 @@ <memory unit='GiB'><%= @details['mem'] %></memory> <vcpu placement='static'><%= @details['cpu'] %></vcpu> <os> - <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type> + <type arch='<%= @machine_arch %>' machine='<%= @machine_type %>'>hvm</type> ++ <% if == 'aarch64' %> ++ <kernel>/var/lib/nova/<%= @details['id'] %>_vm.kernel</kernel> ++ <initrd>/var/lib/nova/<%= @details['id'] %>_vm.initramfs</initrd> ++ <cmdline>root=/dev/vda1 rw rootwait console=tty0 console=ttyS0 console=ttyAMA0</cmdline> ++ <% else %> <boot dev='network'/> <boot dev='hd'/> ++ <% end %> </os> -@@ -11,6 +11,9 @@ + <features> <acpi/> <apic/> <pae/> @@ -88,7 +95,7 @@ index ae2ba5b..2d030d9 100644 </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> -@@ -57,7 +60,11 @@ +@@ -57,7 +66,11 @@ <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes'/> <video> @@ -101,10 +108,10 @@ index ae2ba5b..2d030d9 100644 <memballoon model='virtio'> </memballoon> diff --git a/files/fuel-migrate/fuel-migrate b/files/fuel-migrate/fuel-migrate -index fad9436..667d4a7 100755 +index a215e0a..7d5b6cd 100755 --- a/files/fuel-migrate/fuel-migrate +++ b/files/fuel-migrate/fuel-migrate -@@ -175,6 +175,8 @@ create_vm(){ +@@ -176,6 +176,8 @@ create_vm(){ exit 1 fi fi @@ -113,7 +120,7 @@ index fad9436..667d4a7 100755 # create disk ssh "${dkvm_ip}" qemu-img create -f raw "${dkvm_folder}/${fvm_name}.img" "${fvm_disk_size}" # make template for virsh -@@ -184,13 +186,14 @@ create_vm(){ +@@ -185,13 +187,14 @@ create_vm(){ <memory unit='MiB'>${fvm_ram}</memory> <vcpu >${fvm_cpu}</vcpu> <os> @@ -129,22 +136,3 @@ index fad9436..667d4a7 100755 </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> ---- deployment/puppet/osnailyfacter/templates/vm_libvirt.erb -+++ deployment/puppet/osnailyfacter/templates/vm_libvirt.erb -@@ -3,9 +3,15 @@ - <memory unit='GiB'><%= @details['mem'] %></memory> - <vcpu placement='static'><%= @details['cpu'] %></vcpu> - <os> -- <type arch='<%= @machine_arch %>' machine='<%= @machine_type %>'>hvm</type> -+ <type arch='<%= @machine_arch %>' machine='<%= @machine_type %>'>hvm</type> -+ <% if == 'aarch64' %> -+ <kernel>/var/lib/nova/<%= @details['id'] %>_vm.kernel</kernel> -+ <initrd>/var/lib/nova/<%= @details['id'] %>_vm.initramfs</initrd> -+ <cmdline>root=/dev/vda1 rw rootwait console=tty0 console=ttyS0 console=ttyAMA0</cmdline> -+ <% else %> - <boot dev='network'/> - <boot dev='hd'/> -+ <% end %> - </os> - <features> - <acpi/> diff --git a/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch index e411d66b..c9000692 100644 --- a/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch +++ b/patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch @@ -9,18 +9,18 @@ As a bonus, it is also used when building the target image. nailgun/nailgun/consts.py | 5 ++ .../alembic_migrations/versions/armband.py | 53 ++++++++++++++++++++++ nailgun/nailgun/db/sqlalchemy/models/release.py | 8 ++++ - nailgun/nailgun/fixtures/openstack.yaml | 3 ++ + nailgun/nailgun/fixtures/openstack.yaml | 5 ++ .../nailgun/orchestrator/deployment_serializers.py | 9 +++- .../orchestrator/provisioning_serializers.py | 3 +- nailgun/nailgun/orchestrator/tasks_templates.py | 5 +- .../integration/test_cluster_changes_handler.py | 12 ++--- .../integration/test_orchestrator_serializer.py | 4 +- nailgun/nailgun/test/unit/test_tasks_templates.py | 6 ++- - 10 files changed, 94 insertions(+), 14 deletions(-) + 10 files changed, 96 insertions(+), 14 deletions(-) create mode 100644 nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py diff --git a/nailgun/nailgun/consts.py b/nailgun/nailgun/consts.py -index bb69168..2c19ec9 100644 +index 1ded0ba..5a1af0a 100644 --- a/nailgun/nailgun/consts.py +++ b/nailgun/nailgun/consts.py @@ -38,6 +38,11 @@ RELEASE_OS = Enum( @@ -95,10 +95,10 @@ index 0000000..8cca69c +def remove_release_arch(): + op.drop_column('releases', 'arch') diff --git a/nailgun/nailgun/db/sqlalchemy/models/release.py b/nailgun/nailgun/db/sqlalchemy/models/release.py -index 96cf2ed..62ac2c1 100644 +index 1b47de4..e209e72 100644 --- a/nailgun/nailgun/db/sqlalchemy/models/release.py +++ b/nailgun/nailgun/db/sqlalchemy/models/release.py -@@ -38,6 +38,14 @@ class Release(Base): +@@ -39,6 +39,14 @@ class Release(Base): id = Column(Integer, primary_key=True) name = Column(Unicode(100), nullable=False) version = Column(String(30), nullable=False) @@ -110,42 +110,58 @@ index 96cf2ed..62ac2c1 100644 + nullable=False, + default=consts.RELEASE_ARCHS.amd64 + ) - can_update_from_versions = Column(JSON, default=[], - nullable=False, server_default='[]') description = Column(Unicode) + operating_system = Column(String(50), nullable=False) + state = Column( diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index a330f4e..9da1346 100644 +index 9674d66..d3226da 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -1913,6 +1913,7 @@ - name: "Liberty on CentOS 6.5" +@@ -1904,6 +1904,7 @@ + name: "Mitaka on CentOS 6.5" state: "unavailable" - version: "liberty-8.0" + version: "mitaka-9.0" + arch: "amd64" - can_update_from_versions: [] operating_system: "CentOS" - description: "This option will install the OpenStack Liberty packages using a CentOS based operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." -@@ -1986,6 +1987,7 @@ + description: "This option will install the OpenStack Mitaka packages using a CentOS based operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + attributes_metadata: +@@ -1978,6 +1979,7 @@ fields: - name: "Liberty on Ubuntu 14.04" - version: "liberty-8.0" + name: "Mitaka on Ubuntu 14.04" + version: "mitaka-9.0" + arch: "amd64" - can_update_from_versions: [] operating_system: "Ubuntu" - description: "This option will install the OpenStack Liberty packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." -@@ -2084,6 +2086,7 @@ + description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + attributes_metadata: +@@ -2219,6 +2221,7 @@ fields: - name: "Liberty on Ubuntu 14.04 (aarch64)" - version: "liberty-8.0" + name: "Mitaka on Ubuntu+UCA 14.04" + version: "mitaka-9.0" ++ arch: "amd64" + description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system, including Ubuntu Cloud Archive OpenStack packages. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + attributes_metadata: + editable: +@@ -2320,6 +2323,7 @@ + fields: + name: "Mitaka on Ubuntu 14.04 (aarch64)" + version: "mitaka-9.0" + arch: "arm64" - can_update_from_versions: [] operating_system: "Ubuntu" - description: "This option will install the OpenStack Liberty packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + attributes_metadata: +@@ -2506,6 +2510,7 @@ + fields: + name: "Mitaka on Ubuntu+UCA 14.04 (aarch64)" + version: "mitaka-9.0" ++ arch: "arm64" + description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system, including Ubuntu Cloud Archive OpenStack packages. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." + attributes_metadata: + editable: diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py -index 375a1ce..b8b38e2 100644 +index 699a599..6bb7990 100644 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py -@@ -291,7 +291,14 @@ class DeploymentMultinodeSerializer(object): +@@ -300,7 +300,14 @@ class DeploymentMultinodeSerializer(object): img_dir = '/usr/share/cirros-testvm/' else: img_dir = '/opt/vm/' @@ -162,33 +178,33 @@ index 375a1ce..b8b38e2 100644 glance_properties = [] diff --git a/nailgun/nailgun/orchestrator/provisioning_serializers.py b/nailgun/nailgun/orchestrator/provisioning_serializers.py -index 04ae0b0..c927f03 100644 +index 48a4753..b1f3ca6 100644 --- a/nailgun/nailgun/orchestrator/provisioning_serializers.py +++ b/nailgun/nailgun/orchestrator/provisioning_serializers.py -@@ -313,7 +313,8 @@ class ProvisioningSerializer61(ProvisioningSerializer): - [consts.MASTER_NODE_UID], +@@ -307,7 +307,8 @@ class ProvisioningSerializer61(ProvisioningSerializer): attrs['repo_setup']['repos'], attrs['provision'], -- cluster.id)) -+ cluster.id, + cluster.id, +- packages)) ++ packages, + cluster.release.arch)) # NOTE(kozhukalov): This pre-provision task is going to be # removed by 7.0 because we need this only for classic way of diff --git a/nailgun/nailgun/orchestrator/tasks_templates.py b/nailgun/nailgun/orchestrator/tasks_templates.py -index 39f2067..cd2278c 100644 +index 51dfdf7..bc2bff9 100644 --- a/nailgun/nailgun/orchestrator/tasks_templates.py +++ b/nailgun/nailgun/orchestrator/tasks_templates.py -@@ -207,7 +207,7 @@ def make_reboot_task(uids, task): - 'timeout': task['parameters']['timeout']}} +@@ -210,7 +210,7 @@ def make_reboot_task(uids, task): --def make_provisioning_images_task(uids, repos, provision_data, cid): -+def make_provisioning_images_task(uids, repos, provision_data, cid, arch): + def make_provisioning_images_task( +- uids, repos, provision_data, cid, packages): ++ uids, repos, provision_data, cid, packages, arch): conf = { 'repos': repos, 'image_data': provision_data['image_data'], -@@ -224,7 +224,8 @@ def make_provisioning_images_task(uids, repos, provision_data, cid): +@@ -232,7 +232,8 @@ def make_provisioning_images_task( "--image_build_dir /var/lib/fuel/ibp " "--log-file /var/log/fuel-agent-env-{0}.log " "--data_driver nailgun_build_image " @@ -199,10 +215,10 @@ index 39f2067..cd2278c 100644 'retries': 1}}) diff --git a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py -index 56bd307..34b4ce3 100644 +index 0f212e5..da50eac 100644 --- a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py +++ b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py -@@ -159,7 +159,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -153,7 +153,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 @@ -211,7 +227,7 @@ index 56bd307..34b4ce3 100644 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -171,7 +171,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -165,7 +165,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), @@ -220,7 +236,7 @@ index 56bd307..34b4ce3 100644 critical_mapping = { 'primary-controller': True, -@@ -575,7 +575,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -565,7 +565,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 @@ -229,7 +245,7 @@ index 56bd307..34b4ce3 100644 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -587,7 +587,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -577,7 +577,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), @@ -238,7 +254,7 @@ index 56bd307..34b4ce3 100644 critical_mapping = { 'primary-controller': True, -@@ -1062,7 +1062,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -1049,7 +1049,7 @@ class TestHandlers(BaseIntegrationTest): common_attrs['last_controller'] = controller_nodes[-1]['name'] common_attrs['storage']['pg_num'] = 128 @@ -247,7 +263,7 @@ index 56bd307..34b4ce3 100644 'container_format': 'bare', 'public': 'true', 'disk_format': 'qcow2', -@@ -1074,7 +1074,7 @@ class TestHandlers(BaseIntegrationTest): +@@ -1061,7 +1061,7 @@ class TestHandlers(BaseIntegrationTest): """--property murano_image_info=""" """'{"title": "Murano Demo", "type": "cirros.demo"}'""" ), @@ -257,10 +273,10 @@ index 56bd307..34b4ce3 100644 critical_mapping = { 'primary-controller': True, diff --git a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py -index 8ce987a..e75b3c2 100644 +index 5db8f4e..ef208cb 100644 --- a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py +++ b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py -@@ -2656,12 +2656,12 @@ class BaseDeploymentSerializer(base.BaseIntegrationTest): +@@ -2584,12 +2584,12 @@ class BaseDeploymentSerializer(BaseSerializerTest): def check_no_murano_data(self): glance_properties = self.serializer.generate_test_vm_image_data( @@ -276,20 +292,20 @@ index 8ce987a..e75b3c2 100644 diff --git a/nailgun/nailgun/test/unit/test_tasks_templates.py b/nailgun/nailgun/test/unit/test_tasks_templates.py -index a38e975..9cb9171 100644 +index 4e81a19..d657518 100644 --- a/nailgun/nailgun/test/unit/test_tasks_templates.py +++ b/nailgun/nailgun/test/unit/test_tasks_templates.py -@@ -133,7 +133,8 @@ class TestMakeTask(base.BaseTestCase): - 'uri': 'http://uri' +@@ -140,7 +140,8 @@ class TestMakeTask(base.BaseTestCase): } }}, -- cid=123) -+ cid=123, -+ arch='amd64') + cid=123, +- packages=packages ++ packages=packages, ++ arch='amd64' + ) fuel_image_conf = { - "image_data": { -@@ -168,7 +169,8 @@ class TestMakeTask(base.BaseTestCase): +@@ -177,7 +178,8 @@ class TestMakeTask(base.BaseTestCase): cmd = result["parameters"]["cmd"].lstrip( "fa_build_image --image_build_dir /var/lib/fuel/ibp " "--log-file /var/log/fuel-agent-env-123.log " diff --git a/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch b/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch index 56ff4ffc..994ad730 100644 --- a/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch +++ b/patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch @@ -4,17 +4,17 @@ Subject: [PATCH] direct kernel boot for cirros --- nailgun/nailgun/orchestrator/base_serializers.py | 16 +++-- - .../nailgun/orchestrator/deployment_serializers.py | 70 ++++++++++++++++------ - 2 files changed, 62 insertions(+), 24 deletions(-) + .../nailgun/orchestrator/deployment_serializers.py | 68 ++++++++++++++++------ + 2 files changed, 61 insertions(+), 23 deletions(-) diff --git a/nailgun/nailgun/orchestrator/base_serializers.py b/nailgun/nailgun/orchestrator/base_serializers.py -index 16dc3fa..23d6589 100644 +index 0643635..a2f43b0 100644 --- a/nailgun/nailgun/orchestrator/base_serializers.py +++ b/nailgun/nailgun/orchestrator/base_serializers.py -@@ -36,12 +36,16 @@ class MuranoMetadataSerializerMixin(object): - self).generate_test_vm_image_data(node) +@@ -145,12 +145,16 @@ class MuranoMetadataSerializerMixin(object): - # Add default Glance property for Murano. + def inject_murano_settings(self, image_data): + """Adds murano metadata to the test image""" - test_vm_image = image_data['test_vm_image'] - existing_properties = test_vm_image['glance_properties'] - murano_data = ' '.join(["""--property murano_image_info='{"title":""" @@ -35,10 +35,10 @@ index 16dc3fa..23d6589 100644 class VmwareDeploymentSerializerMixin(object): diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py -index b8b38e2..d3d03ec 100644 +index 6bb7990..62fb08b 100644 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py -@@ -274,6 +274,9 @@ class DeploymentMultinodeSerializer(object): +@@ -283,6 +283,9 @@ class DeploymentMultinodeSerializer(object): return {'glance': {'image_cache_max_size': image_cache_max_size}} def generate_test_vm_image_data(self, node): @@ -48,7 +48,7 @@ index b8b38e2..d3d03ec 100644 # Instantiate all default values in dict. image_data = { 'container_format': 'bare', -@@ -297,8 +300,8 @@ class DeploymentMultinodeSerializer(object): +@@ -306,8 +309,8 @@ class DeploymentMultinodeSerializer(object): arch = "x86_64" elif arch == "arm64": arch = "aarch64" @@ -59,12 +59,10 @@ index b8b38e2..d3d03ec 100644 glance_properties = [] -@@ -313,8 +316,38 @@ class DeploymentMultinodeSerializer(object): +@@ -322,8 +325,38 @@ class DeploymentMultinodeSerializer(object): glance_properties.append('--property hypervisor_type=vmware') image_data['glance_properties'] = ' '.join(glance_properties) -- -- return {'test_vm_image': image_data} + images += [image_data] + + # Now for aarch64 add also kernel and initrd because we direct @@ -95,12 +93,13 @@ index b8b38e2..d3d03ec 100644 + 'glance_properties': '', + } + images += [kernel_data, initrd_data] -+ + +- return {'test_vm_image': image_data} + return {'test_vm_image': images} @classmethod def get_net_provider_serializer(cls, cluster): -@@ -495,20 +528,21 @@ class DeploymentHASerializer61(DeploymentHASerializer, +@@ -522,20 +555,21 @@ class DeploymentHASerializer61(DeploymentHASerializer, images_data['test_vm_image'] = [] if attrs.get('editable', {}).get('common', {}). \ get('use_vcenter', {}).get('value') is True: diff --git a/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch b/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch index 00f23f60..776ae32c 100644 --- a/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch +++ b/patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch @@ -13,22 +13,22 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> 1 file changed, 2 insertions(+) diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 62e6b73..7d7ffa6 100644 +index d3226da..7e6e96e 100644 --- a/nailgun/nailgun/fixtures/openstack.yaml +++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -1977,6 +1977,7 @@ +@@ -1978,6 +1978,7 @@ extend: *base_release fields: name: "Mitaka on Ubuntu 14.04" + state: "unavailable" version: "mitaka-9.0" + arch: "amd64" operating_system: "Ubuntu" - description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." -@@ -2218,6 +2219,7 @@ +@@ -2220,6 +2221,7 @@ extend: *ubuntu_release fields: name: "Mitaka on Ubuntu+UCA 14.04" + state: "unavailable" version: "mitaka-9.0" + arch: "amd64" description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system, including Ubuntu Cloud Archive OpenStack packages. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment." - attributes_metadata: diff --git a/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch b/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch new file mode 100644 index 00000000..4b5a893e --- /dev/null +++ b/patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch @@ -0,0 +1,74 @@ +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +Date: Mon, 23 May 2016 22:06:09 +0200 +Subject: [PATCH] deploy: ipmi adapter: Add <port> config support. + +Sometimes the IPMI lanplus protocol listens on a non-standard +remote port, e.g. when target nodes are interfaced through a +fake IPMI BMC application that listens on multiple ports on the +same IP address. + +Therefore, allow setting IPMI port in the DHA using a new +property named `ipmiPort`, and pass it along to `ipmitool` when set. + +CHANGE: get_access_info now also supports specifying the IPMI +port to use with `ipmitool` by configuring the `ipmiPort` +property in the DHA. + +hp_adapter.py: updated `get_access_info` return signature with +the new (unused there) `ipmiport`. + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + deploy/dha_adapters/hp_adapter.py | 2 +- + deploy/dha_adapters/ipmi_adapter.py | 7 +++++-- + deploy/reap.py | 2 ++ + 3 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/deploy/dha_adapters/hp_adapter.py b/deploy/dha_adapters/hp_adapter.py +index 13bb349..6434da8 100644 +--- a/deploy/dha_adapters/hp_adapter.py ++++ b/deploy/dha_adapters/hp_adapter.py +@@ -29,7 +29,7 @@ class HpAdapter(IpmiAdapter): + + def node_set_boot_order(self, node_id, boot_order_list): + log('Set boot order %s on Node %s' % (boot_order_list, node_id)) +- ip, username, password = self.get_access_info(node_id) ++ ip, username, password, ipmiport = self.get_access_info(node_id) + ssh = SSHClient(ip, username, password) + with ssh as s: + for order, dev in enumerate(boot_order_list): +diff --git a/deploy/dha_adapters/ipmi_adapter.py b/deploy/dha_adapters/ipmi_adapter.py +index 283bd57..f4f2e6a 100644 +--- a/deploy/dha_adapters/ipmi_adapter.py ++++ b/deploy/dha_adapters/ipmi_adapter.py +@@ -30,12 +30,15 @@ class IpmiAdapter(HardwareAdapter): + ip = self.get_node_property(node_id, 'ipmiIp') + username = self.get_node_property(node_id, 'ipmiUser') + password = self.get_node_property(node_id, 'ipmiPass') +- return ip, username, password ++ ipmiport = self.get_node_property(node_id, 'ipmiPort') ++ return ip, username, password, ipmiport + + def ipmi_cmd(self, node_id): +- ip, username, password = self.get_access_info(node_id) ++ ip, username, password, ipmiport = self.get_access_info(node_id) + cmd = 'ipmitool -I lanplus -A password' + cmd += ' -H %s -U %s -P %s' % (ip, username, password) ++ if ipmiport: ++ cmd += ' -p %d' % int(ipmiport) + return cmd + + def get_node_pxe_mac(self, node_id): +diff --git a/deploy/reap.py b/deploy/reap.py +index 6feaf17..9933d1d 100755 +--- a/deploy/reap.py ++++ b/deploy/reap.py +@@ -59,6 +59,8 @@ adapter: + # ipmiIp + # ipmiUser + # ipmiPass ++# and you *MAY* provide (optional, not added by reap.py): ++# ipmiPort + # - libvirt adapter you need to provide: + # libvirtName: <whatever> + # libvirtTemplate: [libvirt/vms/controller.xml | libvirt/vms/compute.xml] diff --git a/upstream/fuel b/upstream/fuel -Subproject 439f684991c36f61483b12134a8c981f78f0e47 +Subproject 370cf3546e2f5e3a7afa69b4f306bd7c90d4439 |