1354 Commits

Author SHA1 Message Date
Zuul
b781042bee Merge "Out-of-band erase_devices clean step for Proliant Servers" 2019-08-28 12:56:50 +00:00
Zuul
98c54cd564 Merge "Do not wait for console being started on timeout" 2019-08-26 14:02:02 +00:00
Zuul
e518bebe03 Merge "Support power state change callbacks to nova using ksa_adapter" 2019-08-24 02:20:13 +00:00
Zuul
12f5f2cfee Merge "Follow up to Option to send all portgroup data" 2019-08-23 20:48:26 +00:00
Zuul
826a768c4c Merge "Allow to configure additional ipmitool retriable errors" 2019-08-23 15:16:55 +00:00
Zuul
46c142fe08 Merge "Pass target_raid_config field to ironic variable" 2019-08-23 13:28:52 +00:00
Vladyslav Drok
1ad73338b8 Do not wait for console being started on timeout
Current logic tries to call communicate on Popen object when
starting shellinabox console even if console.subprocess_timeout
is hit. This blocks until the command is finished, with timeout
having no effect on it. It means that node lock is not released
until communicate call finishes.

Story: 2006429
Task: 36333
Change-Id: Ic7b878cd432990218a3d87047905ce0828b8da2a
2019-08-23 11:53:13 +00:00
paresh-sao
c0799c95ed Out-of-band erase_devices clean step for Proliant Servers
This commit adds new management interface `ilo5` to support an
out-of-band clean step for sanitize disk erase on ilo5 based
Proliant Servers.

Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5
Story: #2006394
Task: #36269
2019-08-23 08:09:20 +00:00
Gaëtan Trellu
678114799d Pass target_raid_config field to ironic variable
In order to create/delete RAID configuration via the Ansible driver
we should be able to retrieve the JSON target_raid_config data from
the node.

Change-Id: Ie1bbefbc438a6c7f4592ea96ff84d2d5eb2d412d
Story: 2006417
Task: 36307
2019-08-22 08:46:02 -04:00
Madhuri Kumari
f759572688 Allow deleting unbound ports on active node
Change-Id: I2b8017d5b71bd289fd76274fa96aa6b64c03ce24
Story: 2006385
2019-08-22 10:49:02 +05:30
Ruby Loo
27fc3d0bc1 Follow up to Option to send all portgroup data
Clarifies the code in add_ports_to_network() so that it is clear
that the ironic ports that are created in neutron are not necessarily
all pxe-enabled. Adds more comments to describe the behaviour if
non-pxe-enabled ports are created in neutron.

Fixes a typo in the corresponding release note.

This is a follow up to I8d0f4e28efb05af704839f3b92cb3dfd48d57940.

Change-Id: I94ff18bc137401ff4cd316755408c2099bb563cb
Story: 2005494
2019-08-20 13:01:33 -04:00
Zuul
ed5f8a67af Merge "Add iPXE boot interface to 'ilo' hardware type" 2019-08-20 16:04:26 +00:00
Shivanand Tendulker
1e3b684037 Add iPXE boot interface to 'ilo' hardware type
This commit adds new boot interface 'ilo-ipxe' to support booting
of iPXE instances using 'ilo' hardware type.

Change-Id: I3abebc77cbc57344a74759e0a8b99e8cacac6f6b
Story: 2006408
Task: 36292
2019-08-16 12:32:36 -04:00
Vladyslav Drok
a3ac25f299 Allow to configure additional ipmitool retriable errors
This change allows to configure more retriable errors for ipmitool
execution that are specific to the environment it is run in.

Task: 36296
Story: 2006410
Change-Id: I4bd06ad405f87f5fb974777fc3d84e4874b4f5bb
2019-08-16 16:44:05 +02:00
Zuul
028ab71d3f Merge "Do not tear down node upon cleaning failure" 2019-08-15 21:14:32 +00:00
Zuul
4564aa9f19 Merge "Add Redfish Virtual Media Boot support" 2019-08-15 03:30:02 +00:00
Zuul
bc306dd7d4 Merge "Ansible: fix partition_configdrive for logical root_devices" 2019-08-14 13:44:40 +00:00
Ilya Etingof
9fab96fc37 Add Redfish Virtual Media Boot support
This patch introduces standard Redfish virtual media boot
support to ironic.

The patch implements basic boot interface features along with
devstack plugin support for virtual media boot. Functionally,
redfish boot interface supports the same set of features as PXE.

Unlike other virtual media boot implementations (e.g. iLo), this
patch does not require user-built deploy/rescue/boot ISO images
for virtual media boot. Instead, ironic will build necessary images
out of common kernel/ramdisk pair (though user needs to provide
ESP image).

Story: 1526753
Task: 10389
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
2019-08-14 14:19:03 +02:00
Arne Wiebalck
f5a676a608 Do not tear down node upon cleaning failure
In case of a failure during cleaning, ironic currently shuts the
node off. This is dangerous, e.g. when the cleaning step is a
firmware upgrade. This patch proposes to corect this behaviour
and leave the node on in case cleaning raises an exception.

Task: #30357
Story: #2005375
Change-Id: I5fe8b380c890eb9b9dcee33868ceda2a9bab9929
2019-08-13 16:55:32 +02:00
Shivanand Tendulker
991f9ccec1 Add deploy steps for Redfish BIOS interface
Change-Id: I49b27921736d30ad40b31dd69147d70fc901b4a4
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
Story: 1722275
Task: 29904
2019-08-13 02:14:35 -04:00
Raphael Glon
ff3f328f0b Ansible: fix partition_configdrive for logical root_devices
If the node root_device is a logical drive (like an md array, or a
logical volume), partition_configdrive.sh was not working correctly.

Change-Id: Ida4f91efba0f38f20cd80dd6b6162a77af8d6b78
Story: #2006334
Task: #36082
2019-08-13 02:21:07 +02:00
Surya Seetharaman
d693d4c06c Support power state change callbacks to nova using ksa_adapter
Add power state change callbacks of an instance to nova by
performing API requests. Whenever there is a change in the
power state of a physical instance (example a "power on"
or "power off" IPMI command is issued or the periodic
``_sync_power_states`` task detects a change in power state)
ironic will create and send a ``power-update`` external event
to nova using which nova will update the power state of the
instance in its database. By conveying the power state changes
to nova, ironic becomes the source of truth thus preventing
nova from forcing wrong power states on the instance during
the nova-ironic periodic sync. It also adds the possibility of
bringing up/down a physical instance through the ironic API
even if it was put down/up through the nova API.

Note that ironic only sends requests to nova if the target
power state is either "power on" or "power off". Other error
states will be ignored. In cases where the power state change
is originally coming from nova, the event will still be
created and sent to nova and on the nova side it will be a
no-op with a debug log saying the node is already powering on/off.

NOTE: Although an exclusive lock (task_manager.upgrade_lock()
method) is used when calling the nova API to send events,
there can still be a race condition if the nova-ironic power sync
happens to happen a nano-second before the power state change
event is received from ironic in which case the nova state will
be forced on the node.

Credit for introducing ksa adapter: Eric Fried <openstack@fried.cc>
Depends-On: https://review.opendev.org/#/c/645611/
Part of blueprint nova-support-instance-power-update
Story: 2004969
Task: 29424

Change-Id: I6d105524e1645d9a40dfeae2850c33cf2d110826
2019-08-12 19:29:57 +02:00
Zuul
ce163996ce Merge "Asynchronous out of band deploy steps fails to execute" 2019-08-12 15:48:15 +00:00
Zuul
61a58ec249 Merge "Enable no IP address to be returned" 2019-08-12 10:57:43 +00:00
Zuul
227290004d Merge "DRAC : Fix issue for RAID-0 creation for multiple disks for PERC H740P" 2019-08-10 00:33:05 +00:00
Pradip Kadam
81e4da55b9 DRAC : Fix issue for RAID-0 creation for multiple disks for PERC H740P
Story: 2006375
Task: 36164

Fix a bug which was introduced when executing ``create_configuration``
cleaning step for multiple disks of PERC H740P controller, first disks
gets created and then controller doesn't allow to create next couple
of disks because controller is getting busy at one time.

Change-Id: I02ec595e639c04dd65ce788851c5dde074cc1095
2019-08-09 04:52:56 +00:00
Shivanand Tendulker
8f907886a1 Asynchronous out of band deploy steps fails to execute
Asynchronous out of band steps in a deploy template fails to
execute. This commit fixes that issue. Asynchronous steps can
set 'skip_current_deploy_step' flag to False in
'driver_internal_info' to make sure that upon reboot same step
is re-executed. Also it can set 'deployment_reboot' flag to True
in 'driver_internal_info' to signal that it has rebooted the node.

Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Change-Id: If6217afb5453c311d5ca71ba37458a9b97c18395
Story: 2006342
Task: 36095
2019-08-07 15:42:28 -04:00
Dmitry Tantsur
f06240f7dd Allow configuring global deploy and rescue kernel/ramdisk
The devstack plugin was updated to configure basic ops before
ironic starts, so that we can put links to deploy images
in the ironic.conf.

Change-Id: I305fc3712b1ac0cf2fe64569729e236c7b614bb4
Story: #2006175
Task: #35699
2019-08-06 15:31:19 +02:00
Zuul
71b7441b78 Merge "iLO firmware update fails with 'update_firmware_sum' clean step" 2019-08-05 15:23:42 +00:00
Zuul
9ac0f19950 Merge "Use HTTPProxyToWSGI middleware from oslo" 2019-08-05 11:41:13 +00:00
Zuul
9abf931bfd Merge "RAID creation fails with 'ilo5' RAID interface" 2019-08-05 10:21:49 +00:00
Zuul
2637e59a84 Merge "Use openstacksdk for accessing ironic-inspector" 2019-08-02 14:48:39 +00:00
Pavlo Shchelokovskyy
5e8c966a40 Use HTTPProxyToWSGI middleware from oslo
currently it is impossible to use ironic-api for both internal and
public api at the same time when both of those are using (ssl
terminating) proxies as there's only one config option to override the
resource url's in responses ([api]public_endpoint).

This patch adds the http_proxy_to_wsgi middleware from oslo.middleware
to the ironic API service, which, with properly configured proxies,
makes the choice of correct URL automatic, and thus makes such scenario
possible.

As this middleware may potentially not properly handle some
endpoint URL schemas, leave the api.public_endpoint option as a backup,
but it will be ignored when proxy headers parsing is enabled.

Change-Id: I3ce6b0726b479c2835f8777957b2cb12d8098aec
Story: #2006303
Task: #36019
2019-08-02 12:29:37 +00:00
Zuul
c29f1a5c3f Merge "Ansible driver: fix deployment with serial specified as root device hint" 2019-08-02 11:17:14 +00:00
Zuul
83405aab92 Merge "RAID create fails if 'controller' is missing in 'target_raid_config'" 2019-08-02 10:56:56 +00:00
Zuul
309e87b15a Merge "Creation of UEFI ISO fails with efiboot.img" 2019-08-01 23:27:29 +00:00
Zuul
ad802b441c Merge "Fixes power-on failure for 'ilo' hardware type" 2019-08-01 18:32:47 +00:00
Shivanand Tendulker
6305ea7007 RAID creation fails with 'ilo5' RAID interface
RAID interface methods do not clear driver_internal_info properly
leads to failure of RAID operation when they are attempted again.

Change-Id: I3cd133fb700ec4946471d9e4cbebeab4bded4540
Story: 2006321
Task: 36052
2019-08-01 08:57:07 -04:00
Shivanand Tendulker
b304d18802 RAID create fails if 'controller' is missing in 'target_raid_config'
RAID creation fails with KeyError if none of the 'logical_disks'
in 'target_raid_config' have 'controller' parameter.

Story: 2006316
Task: 36043
Change-Id: I42ee6a46c002c14c785216834558223cbf9d319b
2019-07-31 13:14:14 -04:00
Dmitry Tantsur
d6774c294d Use openstacksdk for accessing ironic-inspector
Change-Id: Ibe4f6bf0b38364b5dd214e6c7e58d45a4d71ffdf
2019-07-31 15:23:39 +02:00
Zuul
e5a79bf121 Merge "Filter security group list on the ID's we expect" 2019-07-30 10:30:11 +00:00
Zuul
cc6e61f1dd Merge "Option to send all portgroup data" 2019-07-30 02:07:34 +00:00
Zuul
a2336ff08e Merge "Fix potential race condition on node power on and reboot" 2019-07-29 20:34:47 +00:00
Zuul
4f2d4b2495 Merge "Remove deprecated Neutron authentication options" 2019-07-29 20:17:04 +00:00
Julia Kreger
ac8b2d01b0 Enable no IP address to be returned
Currently 'noop' network_interface users are unable to use
grub to pxe boot machines as the original code path expected
always use IP addresses for the lookup. We've previously
changed the default template, so now there is really no
reason to error at this point, since we should be able to
continue ahead and still boot the instance.

Change-Id: I928ad2c493802a60d77afdb7d4827d820652512c
Story: 1683777
Task: 33759
2019-07-29 14:09:56 -05:00
Shivanand Tendulker
49140989d1 Fixes power-on failure for 'ilo' hardware type
Server fails to return success for power-on operation if no
bootable device is found.

Change-Id: I0e6ab307ecd0caaf7b79edff67373be3490bfed7
Story: 2006288
Task: 35997
2019-07-29 08:34:59 -04:00
Shivanand Tendulker
13dcb33faa Creation of UEFI ISO fails with efiboot.img
Creation for UEFI boot mode when efiboot.img file is provided and
the directory of location of grub.cfg file set using config
``[DEFAULT]/grub_config_path`` is not same as that of efiboot.img
file.

Change-Id: I55b85d52ec905150322633b07ecdacd293bf1a57
Story: 2006218
Task: 35811
2019-07-26 12:06:41 -04:00
Dmitry Tantsur
441575dc50 Remove deprecated Neutron authentication options
Change-Id: Iab4d570426336c1e85888b4bb21ff26bb1200761
2019-07-26 14:24:22 +02:00
Zuul
de31b6ada3 Merge "IPA does not boot up after cleaning reboot for 'redfish' bios interface" 2019-07-26 10:15:15 +00:00
Raphael Glon
ba207ba372 Ansible driver: fix deployment with serial specified as root device hint
Change-Id: Ie0d56da52ae8476d9f9860c967e8e31253a63c5b
Story: #2006275
Task: #35975
2019-07-26 09:36:02 +02:00