1209 Commits

Author SHA1 Message Date
Zuul
9625b8aa71 Merge "Deploy templates: conductor and API nits" 2019-03-14 16:36:52 +00:00
Zuul
b2a48fab36 Merge "Adding ansible python interpreter as driver_info" 2019-03-14 16:00:20 +00:00
Riccardo Pittau
80e762e18a Adding ansible python interpreter as driver_info
This patch grants the possibility to change the ansible python
interpreter used on remote managed machines as per-node
driver_info option.
Follw-up of https://review.openstack.org/641376

Change-Id: Ic1a994970a5aef5bbbbaaa747818e7ac402912ad
Story: 2005159
Task: 29915
2019-03-13 11:15:16 +01:00
Lars Kellogg-Stedman
70d7bb369a honor ipmi_port in serial console drivers
teach the ipmitool driver about _get_ipmitool_args and use that in all
cases that we want to build an ipmitool command line.   this solves
the problem that the serial console drivers were failing to honor the
ipmi_port setting in driver_info, while it was being correctly used
for power state, etc.

Change-Id: Ifbf6a92c2305567985cfbc41dbf76a076ecb8a7b
Story: 2005138
Task: 29826
2019-03-13 11:00:12 +01:00
Mark Goddard
e4cce6759a Deploy templates: conductor and API nits
Fixes nits from https://review.openstack.org/#/c/634732 and
https://review.openstack.org/#/c/631845.

Change-Id: I3da177cffca19c024850be675137cbeb4de31758
Story: 1722275
Task: 28675
Task: 28677
2019-03-12 18:22:33 +00:00
Zuul
68afa6d8e6 Merge "Stop requiring root_gb for whole-disk images" 2019-03-11 16:17:31 +00:00
Dmitry Tantsur
40b55416a8 Stop requiring root_gb for whole-disk images
This parameter makes no sense for them and is actually ignored after
validation. This change makes it optional (still allowed for backward
compatibility). Also cleanly separate validation code for partition and
whole-disk images.

Change-Id: I98da7d54cc6dd158d415e83c61659badc83fbeda
Story: #2005165
Task: #29895
2019-03-08 14:01:27 +01:00
Riccardo Pittau
c8ece0c625 Add option to set python interpreter for ansible
This patch adds the option to configure the python interpreter
that is used when deploying machines using the ansible deploy
interface.

Also set the default interpreter for tinyipa image with
ansible deploy interface to /usr/bin/python3 on devstack
and marks ironic-standalone job as voting again.

Change-Id: I8eb58fb00980c9e8946e3b3ef77611a9f5212668
Story: #2005159
Task: #29877
2019-03-07 18:40:06 +01:00
Zuul
faf0bccbb0 Merge "Fix TypeError: __str__ returned non-string (type ImageRefValidationFailed)" 2019-03-07 04:41:20 +00:00
Dmitry Tantsur
3e1e0c9d5e Allow building configdrive from JSON in the API
Extend the API with the ability to build config drives from meta_data,
network_data and user_data, where meta_data and network_data are JSON
objects, and user_data is either a JSON object, a JSON array or
raw contents as a string.

This change uses openstacksdk (which is already an indirect dependency)
for building config drives.

Change-Id: Ie1f399a4cb6d4fe5afec79341d3bccc0f81204b2
Story: #2005083
Task: #29663
2019-03-05 19:14:56 +01:00
Dmitry Tantsur
245af384ff Fix TypeError: __str__ returned non-string (type ImageRefValidationFailed)
This change contains two fixes for the same issue:
* Do not pass an instance of ImageRefValidationFailed as a message
  to an exception constructor.
* Make sure that IronicException.__str__ always returns an str,
  even when a non-string is passed as the first argument to __init__.

Change-Id: I96edb28955e64915e9d6a481634857fd27690555
Story: #2003682
Task: #26206
2019-03-04 13:16:17 +01:00
Mark Goddard
ec2f7f992e Deploy templates: API & notifications
Adds deploy_templates REST API endpoints for retrieving, creating,
updating and deleting deployment templates. Also adds notification
objects for deploy templates.

Bumps the minimum WSME requirement to 0.9.3, since the lower constraints
job was failing with a 500 error when sending data in an unexpected
format to the POST /deploy_templates API.

Change-Id: I0e8c97e600f9b1080c8bdec790e5710e7a92d016
Story: 1722275
Task: 28677
2019-03-04 10:30:16 +00:00
Zuul
b277be27a9 Merge "Deprecate Cisco drivers" 2019-02-28 18:49:36 +00:00
Zuul
1e4a1cb7cb Merge "Add check for object versions" 2019-02-27 19:15:09 +00:00
Ruby Loo
33383c9c73 Add check for object versions
Adds a check for compatibility of the object versions (in the DB)
with the release of ironic. This check is used by the
'ironic-status upgrade check' command.

The ironic-status command is added to devstack and grenade (when
upgrading).

Change-Id: I2043dc01856106d50356637db327a2817db90366
Story: 2004990
Task: 29459
2019-02-20 17:24:42 +00:00
Zuul
644a412309 Merge "Follow up to ISO image build patch" 2019-02-20 08:16:18 +00:00
Zuul
ccf2bb1ea1 Merge "ensure that socat serial proxy keeps running" 2019-02-16 03:03:02 +00:00
Lars Kellogg-Stedman
f369fdd334 ensure that socat serial proxy keeps running
Socat as configured would exit on client disconnect. Since there was
no active process monitoring, the process would (a) become a zombie,
and (b) would not restart, which would disable console access.

This commits adds the fork,max-children=1 parametesr to the socat
call, which makes socat persistent until it is explicitly killed.

Change-Id: I612cd9bca403b7a77ad3e671c1fdadd55353d5f7
Story: 2005024
Task:  29503
2019-02-15 15:50:55 -08:00
Zuul
bc2bd6c22f Merge "Support using JSON-RPC instead of oslo.messaging" 2019-02-15 18:53:55 +00:00
Julia Kreger
f9e53e2c6e Deprecate Cisco drivers
Due to a lack of operating third party CI and a lack
of maintenance of the drivers, the cisco drivers are
being deprecated by the ironic community.
More information can be found on the mailing list[0].

[0]: http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002460.html

Change-Id: I3e7ee9728fba2bf6a779adfb5fa0ddf1fb369c49
Task: 29521
Story: 2005033
2019-02-15 10:19:42 -08:00
Zuul
8978237388 Merge "Build ISO out of EFI system partition image" 2019-02-15 16:16:42 +00:00
Ilya Etingof
e95515a075 Follow up to ISO image build patch
This change addresses a few nits pointed out in the Gerrit
review (Change-Id: Idf912ff2146434b666fdb4250dc1ecad39bc5a04).

Change-Id: I8668b02a2f46427567526189caa2040fc1e3b402
Story: 1526753
Task: 28098
2019-02-15 16:50:17 +01:00
Dmitry Tantsur
7efbbcc2d9 Support using JSON-RPC instead of oslo.messaging
Using AMQP-based RPC can be an overkill in case of ironic, especially
when used standalone. This change allows using a built-in JSON RPC
implementation instead.

This implementation does not currently support the object indirection
API, which does not seem to be used anywhere anyway.

The standalone and API test jobs are changed to use JSON RPC.

Story: #2004874
Task: #29141
Change-Id: I7cc95935d6bdae43fab5dfbd544c8e6d65fcc38d
2019-02-14 12:56:20 +01:00
Hamdy Khader
bcf5b37c73 [Follow Up] Expose is_smartnic in port API
fix release note
fix baremetal port creation documentation

Change-Id: I3c04c6318fcc70d95f2de3a2c2b16a9adf82ca18
2019-02-13 11:32:37 +02:00
Hamdy Khader
6325b6c13c Expose is_smartnic in port API
Changes are made to support ironic handling is_smarting port attribute
that was added in this change Ic2ffbd6f1035907ea5a18bda6d2b21e617194195

This change expose is_smartnic port field in REST API, updated API
reference to include is_smartnic field and relevent documentations.

API version updated to 1.53.

Story: #2003346
Change-Id: I89ce54a0c034f2a5f82ff961ab06cfcc6d853bd4
2019-02-10 12:10:00 +02:00
Zuul
edf2db2f2e Merge "Allow case-insensitivity when setting conductor_group via API" 2019-02-09 01:01:16 +00:00
Zuul
b3c00fb118 Merge "Add support for Smart NICs" 2019-02-08 23:21:25 +00:00
Dmitry Tantsur
390a1c9a74 Allocation API: REST API implementation
This change introduces the API endpoints for allocation API:
* GET/POST /v1/allocations
* GET/DELETE /v1/allocations/<ID or name>
* GET/DELETE /v1/nodes/<ID or name>/allocation

Change-Id: Idf1a30d1a90b8c626d3b912c92844297e920d68c
Story: #2004341
Task: #28739
2019-02-08 18:47:25 +01:00
Jim Rollenhagen
c803488af2 Allow case-insensitivity when setting conductor_group via API
Since we use the new conductor group to calculate which conductor an
update_node message should go to, we need to lowercase the new
conductor_group value at the API level, rather than just before saving
the node object.

Change-Id: I5530f8e1c2fdff9008e008cfa0c63edaa04e81d9
Story: 2004947
Task: 29362
2019-02-08 09:35:55 -05:00
Zuul
0afda95f2e Merge "Optionally preserve original system boot order upon instance deployment" 2019-02-08 05:16:55 +00:00
Arne Wiebalck
206134cf58 Optionally preserve original system boot order upon instance deployment
By default, Ironic makes persistent changes to the system boot order
at the end of an instance deployment. This may not be desired in
all cases, e.g. when DC policies require to leave the persistent
system boot order unchanged.
While keeping the persistent approach as the default, this patch
proposes to extent the existing 'force_persistent_boot_device'
field in the node's driver_info for (i)PXE in a way that allows
to have all boot device changes to be non-persistent.

Change-Id: If3a19f74fb0dfbcff2cde4cd5a8cc1edf5de3058
Story: #2004846
Task: #29058
2019-02-07 22:51:56 +01:00
Hamdy Khader
a41c7a9592 Add support for Smart NICs
Extend Ironic to enable use of Smart NICs to implement
generic networking services for baremetal servers.

Extending the ramdisk, direct, iscsi and ansible deployment Interfaces
to support the Smart NIC use-cases.

For Smart NIC use-case the baremetal node must be powered on and
booted into bios then wait for agent that runs on the Smart NIC to be
alive then do the network changes required.

Task: #26932
Story: #2003346
Change-Id: I00d6f13dd991074e4f45ada4d7cf4ccc0edbc7e1
2019-02-07 15:24:34 +02:00
Zuul
1e93a48ef6 Merge "Add description field to node" 2019-02-07 03:52:45 +00:00
Zuul
0a8c9a25ed Merge "Make iLO BIOS interface clean steps asynchronous" 2019-02-06 07:37:38 +00:00
vmud213
335f6b4fd1 Make iLO BIOS interface clean steps asynchronous
Make iLO BIOS interface clean steps asynchronous to ensure the
BIOS settings on the node are consistent with the settings stored
in the database. Node goes through the power cycle after the
settings are applied. Once the node reboots, ironic gets the current
settings from the node, caches the settings in the database,
checks for any errors from the status message and marks the clean
step as failed or success accordingly.

Change-Id: I00deaa2f2b68d2a34f8592ea20c36349a87d6c23
Story: #2004066
Task: #27074
2019-02-05 05:31:17 +00:00
Zuul
d9ed28b596 Merge "Provides mount point as cinder requires it to attach volume" 2019-02-04 16:39:36 +00:00
mvpnitesh
57037378be Provides mount point as cinder requires it to attach volume
This patch provides a mount point which is required by cinder to
attach the volume to the baremetal, when the volume targets are
created for any node.

Story: 2004864
Task: 29107

Change-Id: Id2a2e071026b86a6fd586a998bf865b1ddb960d7
2019-02-04 13:19:27 +00:00
Zuul
0516356ddb Merge "Parallelize periodic power sync calls follow up" 2019-02-02 12:08:28 +00:00
Zuul
c9aa36b78c Merge "Parallelize periodic power sync calls" 2019-02-02 11:57:17 +00:00
Kaifeng Wang
d30d814956 Add description field to node
This patch implements the feature of storing informational free-form text
into ironic node, via the "description" field.

Operators can do simple queries on the context of description.

Change-Id: I787fb0df34566aff30dea4c4a3ba0e1ec820d044
Story: 2003089
Task: 23178
2019-02-01 10:25:58 +08:00
Zuul
8bb3b8752c Merge "Removing deprecated drac_host property" 2019-01-31 13:15:05 +00:00
Zuul
b77bb0d182 Merge "Make versioned notifications topics configurable" 2019-01-31 12:16:11 +00:00
Riccardo Pittau
972747671c Removing deprecated drac_host property
Removes deprecated ``driver_info["drac_host"]`` property
for ``idrac`` hardware type.

Change-Id: I851f3a231246552a59e8c122c090489459220c74
2019-01-31 08:14:30 +01:00
Zuul
4271f92f24 Merge "Fix listing nodes with conductor could raise" 2019-01-26 12:12:06 +00:00
Zuul
b1b6f225dd Merge "Make ipmi_force_boot_device more user friendly" 2019-01-24 06:45:51 +00:00
Kaifeng Wang
9555ad281c Fix listing nodes with conductor could raise
In the case of conductor service goes offline, some hardware types
may be not available as well, get_conductor_for is not protected for
such case when querying node with conductor.

This patch adds exception handling and bypasses orphaned nodes.

Change-Id: I381585240057a989ab269ea35ea9b2124527bf8e
Story: 2004834
Task: 29028
2019-01-24 09:20:53 +08:00
Ilya Etingof
821d5fef73 Parallelize periodic power sync calls follow up
Fixes quite a few assorted nits. Follows up Change-Id
I80297c877d9a87d3bd8fc30d0ed65cd443f200b3

Change-Id: I92faffb4fac349a77e3597f3668c75bbc2c2397d
2019-01-23 16:06:30 +01:00
Ilya Etingof
738d4eafdc Build ISO out of EFI system partition image
When ironic builds UEFI-bootable ISO image, it extracts
EFI system partition image (`efiboot.img`) from the
`deploy_iso` ISO image.

This change allows supplying EFI system partition image to
the ISO image building routines in form of a local file or
UUID or URI reference.

The motivation behind this change is to make UEFI-bootable image
building process more efficient and functional. This change is
thought of as a prerequisite for the upcoming Redfish-based
virtual media boot feature.

Story: 1526753
Task: 28098
Change-Id: Idf912ff2146434b666fdb4250dc1ecad39bc5a04
2019-01-23 09:46:01 +01:00
Daniel Abad
0e81ec00ce Make versioned notifications topics configurable
Some services (such as telemetry) actually consume the notifications.
If one deploys a service that listens on the same queue as telemetry,
there will be race-conditions with these services and one will not get
the notifications that are expected at points.

To address this, one sets a different topic and consumes from there.
This is not possible with versioned notifications at the moment. And, as
services move towards using them, the same need will arise.

This adds a configuration option to Ironic enabling the configuration
of topics for this notifier.

A similar change was introduced in nova:
https://review.openstack.org/#/c/444947/

Change-Id: Ib75feac0979d0094cb137abb13b0fe0ff4576eee
Story: 2004735
Task: 28788
2019-01-23 08:38:18 +01:00
Zuul
56ceb66ab4 Merge "Build UEFI-only ISO for UEFI boot" 2019-01-23 04:08:48 +00:00