1140 Commits

Author SHA1 Message Date
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
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
Ilya Etingof
4008c9bfa4 Build UEFI-only ISO for UEFI boot
This change makes ironic building UEFI-only bootable
ISO image (when being asked to build a UEFI-bootable image)
rather than building a hybrid BIOS/UEFI-bootable ISO.

The motivation behind this change is to make node boot more
predicable in the sense that if the user asks for UEFI boot,
the node would either boot over UEFI or fail.

On top of that, the ISO image slims down a tad bit and syslinux
boot loader presence on the conductor machine is not a
requirement any more.

Change-Id: If7828f72724cc7532f97cab758a29a9e8345850e
Story: 1526753
Task: 28368
2019-01-23 00:27:07 +00:00
Ilya Etingof
7448603ab8 Parallelize periodic power sync calls
Node power sync is performed from a periodic task. In that task
all nodes are iterated over and power sync call is performed.
While the power sync call itself if non-blocking relative to
other concurrent I/O tasks, iteration over the nodes seems
sequential meaning that nodes power sync is performed one node
at a time.

If the above observation holds, large-scale settings may never
be able to power sync all their nodes properly, throttling at
walking all active the nodes in 60 second period.

This patch distributes power sync calls over a bunch of green
threads each working on a portion of the nodes to be taken care
of.

Change-Id: I80297c877d9a87d3bd8fc30d0ed65cd443f200b3
2019-01-22 18:29:45 +01:00
Zuul
2dacda772b Merge "Add pxe template per node" 2019-01-21 14:14:35 +00:00
Tony Breeds
03375f003f Make ipmi_force_boot_device more user friendly
Look for boolean and string like booleans in driver_info['ipmi_force_boot_device']
to make setting the option more user friendly / less error prone.

Change-Id: I2917761055db5286183ce265089c19dea98947ad
Story: 2004444
2019-01-15 13:20:45 +11:00
Zuul
fa6a93b881 Merge "OOB RAID implementation for ilo5 based HPE Proliant servers." 2019-01-11 10:18:29 +00:00
Dmitry Tantsur
cea8d74914 Fix updating nodes with removed or broken drivers
Currently when updating a node we try to acquire the lock on it using
its old database record, including its old driver. This is not correct
when updating a driver, since the current conductor may not have access
to the old driver (and the old driver may no longer be enabled at all).

Since we do not need task.driver at all when updating nodes, this change
stops populating it in update_node.

Change-Id: I510c3bfbd11b01fef05341be2bb04c6bd01bf8ac
Story: #2004741
Task: #28812
2019-01-09 12:45:10 +01:00
Zuul
2db4157416 Merge "Fix IPv6 iPXE support" 2019-01-08 17:41:48 +00:00
Ruby Loo
6bc306d9e7 Fix typo in release note
This is a follow up to 4c987aa51bda89e978d9b59eaa2ac5acc6c5a15c.

Change-Id: Ia4a42cd18fb62310a668aa71fe3ecb958af40c3c
Story: 2004608
Task: 28506
2019-01-03 15:25:46 +00:00
Julia Kreger
cbf1e9d034 Fix IPv6 iPXE support
Adds transmission of an `ipxe6` tag to neutron which is required
for neutron to appropriately match and supply configuration to
hosts over DHCPv6 when iPXE is in use.

This is because neutron prepends options based upon its
perception of the IP version being used and the detection of
iPXE actively being used varries between IPv4 and IPv6.

Story: 2004502
Task: 28221

Change-Id: If68926fd215f707394e5d6a0af9daa9232216abe
2019-01-03 05:53:10 -08:00
Anshul Jain
58a395bf83 OOB RAID implementation for ilo5 based HPE Proliant servers.
This commit adds functionality to perform out-of-band RAID operations
for ilo5 based HPE Proliant servers. Using this a user can perform
create and delete the RAID configuration from the server.

Co-Authored-By: Paresh Sao <paresh.sao@hpe.com>
Change-Id: Iad0c609e59dca56729967133c6bbcff73b50a51e
Story: 2003349
Task: 24391
2019-01-03 09:03:36 +00:00
Zuul
68832e8340 Merge "Allow disabling TFTP image cache" 2019-01-03 02:21:04 +00:00
Ruby Loo
4c987aa51b Allow disabling TFTP image cache
We document that this can be disabled by setting the
[pxe]tftp_master_path config  to "<None>", but don't
actually support it in code. oslo.config doesn't actually
translate that value to the Python None as we expect.

Allow disabling the cache by setting the config to the empty
string, as in "tftp_master_path=". This doesn't make sense as
a directory to use as a cache anyway, so it shouldn't break anyone.

Change-Id: Icc7d08ae47e0e450a612c922ae3d665c56880262
Story: 2004608
Task: 28506
2019-01-02 18:53:48 +00:00
Yolanda Robla
0bda09acf4 Add pxe template per node
Allow to pass a pxe_template field in driver_info. If that is
present, it will search for the template file specified there,
instead of checking the per-arch/agent templates.

Change-Id: I436a61ad6a3e688bc6f833f5645c99be6d7e26e7
Story: #2004525
Task: #28264
2019-01-02 09:09:53 +00:00
Zuul
ed8b696443 Merge "Fix XClarity driver management defect" 2018-12-14 14:13:38 +00:00
jiapei
bb2942295a Fix XClarity driver management defect
Although previous XClarity driver passes the unit test, we find that
getting boot order function test fails in the 3rd party CI, which will
throw an exception of "Unsupported boot device". After checking with
the code, we find that a boot device mapping from XClarity to Ironic
recoginzed format is needed.

This patch will fix this getting boot order defect. We have verified
this function in our 3rd CI environment. Also it will fix a minor
in power.py and enhance the unit test.

Change-Id: Ia7ccf986cb6b1c332691c811d32cb41850d4796c
Story: 2004576
Task: 28351
2018-12-14 01:43:52 +00:00
Zuul
87b25d5447 Merge "Add "owner" information field" 2018-12-11 18:56:47 +00:00
Zuul
be8d81becd Merge "Introduce configuration option [ipmi]ipmi_disable_timeout" 2018-12-11 06:27:51 +00:00
Julia Kreger
052d90506f Add "owner" information field
Adds "owner" field on the node object and exposes it for updates
via the API.

Additionally, fixed a couple minor items related to the prior
where we missed updating version numbers in rebases.

Change-Id: Iaaf3db97d21de9b11236cf2d18ffcc3f73f6e50c
Story: #2001814
Task: #12550
2018-12-10 14:27:31 -08:00
Kaifeng Wang
d379357cad Introduce configuration option [ipmi]ipmi_disable_timeout
Some type of BMCs don't support an IPMI option that disable the
behavior of boot device timeout, which makes them never get booted
from PXE.

This patch extends the fix [1] by adding a configuration option,
which provides the default ipmi behavior.

[1] https://review.openstack.org/#/c/616053

Additionally revising the variable/setting names based upon review
feedback and discussion that took place during the 20181210 weekly
ironic team meeting.

Change-Id: Ie049bbaf45aeab54c1272d1d561c5a6ca00dc34a
Story: 2002977
Task: 22985
2018-12-10 14:04:02 -08:00
Zuul
e7184c3cce Merge "spelling error" 2018-12-10 21:01:45 +00:00
Zuul
f0809594c7 Merge "Add configurable Redfish client authentication" 2018-12-08 19:50:59 +00:00
chenjiao
3aaead7ee3 spelling error
Change-Id: Ie97973b54fdef8bd053f98a8c6e4e58aea744b76
2018-12-08 11:03:49 +08:00
Zuul
88e1374626 Merge "Add a prelude for ironic 12.0" 2018-12-07 19:41:17 +00:00
Zuul
36a81170dc Merge "Follow-up Retries and timeout for IPA command" 2018-12-07 12:51:40 +00:00