summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch56
-rw-r--r--patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch122
-rw-r--r--patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch27
-rw-r--r--patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch10
-rw-r--r--patches/opnfv-fuel/0030-deploy-ipmi-adapter-Add-port-config-support.patch74
m---------upstream/fuel0
7 files changed, 185 insertions, 107 deletions
diff --git a/Makefile b/Makefile
index 619d0b7a..333bf5a5 100644
--- a/Makefile
+++ b/Makefile
@@ -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