8951 Commits

Author SHA1 Message Date
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
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
Zuul
69baaca23d Merge "Fix test for 'force_persistent_boot_device' (i)PXE driver_info option" 2019-02-01 12:09:21 +00:00
Zuul
5bb519c4af Merge "Fix iPXE boot interface with ipxe_enabled=False" 2019-02-01 05:29:29 +00:00
Arne Wiebalck
2aaa6744ca Fix test for 'force_persistent_boot_device' (i)PXE driver_info option
The string used for the 'force_persistent_boot_device' field in the
node's driver_info is split by an additional blank and hence doesn't
set the option to be tested. In addition, the test condition tests a
mostly independent call (which also explains why the test succeeds
despite the incorrect option).

This patch removes the incorrect test and introduces new ones to
test the signature of prepare_ramdisk() which is the function in
which 'force_persistent_boot_device' is actually used.

Change-Id: I0b6a298837306fb8c6a46c13612b003dc62a7850
2019-01-31 22:14:19 +01:00
Zuul
680e5b5687 Merge "Allocation API: conductor API (without HA and take over)" 2019-01-31 19:28:46 +00:00
Dmitry Tantsur
cede60388c Fix iPXE boot interface with ipxe_enabled=False
If ipxe_enabled=False, Ironic still tried to download images into
the TFTP location, which could fail. This patch fixes it.

Story: #2004905
Task: #29253
Change-Id: I5958eeb0d9de59a34145dd899354bf2a1a115dde
2019-01-31 14:33:11 +01: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
Dmitry Tantsur
96b9d9de07 Allocation API: conductor API (without HA and take over)
This change introduces the two RPC calls required for the allocation
API: create_allocation and destroy_allocation.

The nodes RPC is updated to:
* Prevent instance_uuid deletion if a node has an allocation and is
  not in an updatable state.
* Delete allocation when instance_uuid is deleted and the node is
  in an updatable state.
* Delete allocation when a node is unprovisioned and instance_uuid
  is thus cleared.

Change-Id: I45815727f970c3d7fe51bb78d8e162a374d12e04
Story: #2004341
Task: #27987
2019-01-31 13:01:09 +01:00
Zuul
7794e29ed6 Merge "Add is_smartnic to Port data model" 2019-01-31 10:24:10 +00:00
Zuul
4694b3b3c8 Merge "Remove uses of logger name "oslo_messaging"" 2019-01-31 09:55:56 +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
Hamdy Khader
86e31bff41 Add is_smartnic to Port data model
To allow the use of Smart NICs on baremetal nodes it is required to mark
an ironic port as a Smart NIC, this change implement the changes required
for adding port attribute 'is_smartnic' in Port object and data model
alongside with migration scripts and unit tests.

Story: #2003346
Change-Id: Ic2ffbd6f1035907ea5a18bda6d2b21e617194195
2019-01-29 11:17:08 +02:00
Zuul
10bf5d5c2a Merge "Limit the timeout value of heartbeat_timeout" 2019-01-28 07:04:10 +00:00
Zuul
4271f92f24 Merge "Fix listing nodes with conductor could raise" 2019-01-26 12:12:06 +00:00
Zuul
6d6b9b8f6c Merge "[Trivial] Fix typo in noop interface comment" 2019-01-25 20:02:39 +00:00
TienDC
80caf58333 Remove uses of logger name "oslo_messaging"
The old olso namespace package logger config should not be used as
stated by [1], this patch removes the redundant one.

[1] https://github.com/openstack/oslo.log/blob/master/oslo_log/log.py#L466

Change-Id: I58401867cfe34b1becd438702888e3875602b38d
2019-01-26 00:42:20 +07:00
Arne Wiebalck
69d713d39f [Trivial] Fix typo in noop interface comment
Change-Id: I62ed49de0cb6a605defa6ad172704f66f753eede
2019-01-25 10:52:53 +01:00
Zuul
3d25488f63 Merge "Remove duplicated fault code" 2019-01-25 06:07:54 +00:00
Zuul
b1b6f225dd Merge "Make ipmi_force_boot_device more user friendly" 2019-01-24 06:45:51 +00:00
Kaifeng Wang
c3648e8b4e Remove duplicated fault code
The automated clean patch [1] introduced a common pattern for version
conversion, this patch removes the custom fault field conversion to
reuse the common handler.

[1] https://review.openstack.org/#/c/585991/12/ironic/objects/node.py

Change-Id: Id5997b32a442aeea8162fc0ef5894a87ac24443d
2019-01-24 11:39:46 +08: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
Zuul
5db6c2567a Merge "Allocation API: allow picking random conductor for RPC topic" 2019-01-23 16:33:14 +00: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
53823d7f93 Merge "Follow-up logging change" 2019-01-23 07:07:01 +00: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
Kaifeng Wang
cc73bb21fd Limit the timeout value of heartbeat_timeout
Set the heartbeat_timeout value too high will cause OverflowError,
which affects places where the delta value is used to check the
online status of a conductor. This involves get_offline_conductors,
_filter_active_conductors, and descending caller like the
_check_orphan_nodes periodic task, /v1/drivers endpoint, etc.

Limit the max value to 10 years as [1] does.

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

Story: 2004807
Task: 29021

Change-Id: I2b47fa6747e2f97c6910be708c328bed9daba455
2019-01-22 13:57:30 +08:00
Zuul
ab4778717b Merge "Replace use of Q_USE_PROVIDERNET_FOR_PUBLIC" 2019-01-22 02:56:06 +00:00
Zuul
2dacda772b Merge "Add pxe template per node" 2019-01-21 14:14:35 +00:00
Zuul
49b256010e Merge "Allocation API: minor fixes to DB and RPC" 2019-01-18 18:05:23 +00:00
Derek Higgins
d6c9d6caed Replace use of Q_USE_PROVIDERNET_FOR_PUBLIC
This is being removed from devstack in
I23e1b98bd2839b79226b55700ee404a8fda83f83

Change-Id: I81b8cc348900837b876216065d7a2bf4a3665b8b
2019-01-18 13:26:03 +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
Zuul
a27db15ecb Merge "Remove dsvm from zuulv3 jobs" 2019-01-11 04:11:32 +00:00
Zuul
a43f04e6a5 Merge "Fix ironic port creation after Redfish inspection" 2019-01-11 02:56:27 +00:00
Julia Kreger
0d943c635b Follow-up logging change
Reviewer consensus on change 628097 was that one of the
messages should be a warning. As such, changing.

Change-Id: I2425d46c84f72de36789e671785c587ede68e5e8
2019-01-10 16:17:26 -08:00
Iury Gregory Melo Ferreira
3ad700acae Remove dsvm from zuulv3 jobs
According to [1] the dsvm should be removed from zuulv3 jobs

[1] https://docs.openstack.org/infra/manual/drivers.html#naming-with-zuul-v3

Duplicate jobs to avoid break the gate in other projects like:
- ironic-tempest-plugin, ironic-inspector, nova, neutron, devstack

Change-Id: I96a96a9d6f23f02f9f49c962f183e8c5ca78e048
2019-01-10 10:49:50 +01:00
Dmitry Tantsur
1b019ddf84 Allocation API: allow picking random conductor for RPC topic
Allocations are not initially tied to nodes, so to process them we need
to pick a random alive conductor. This change enables that.

Change-Id: I6c950bc4f49aa03026bc7925f8c699d10cedc310
Story: #2004341
2019-01-09 13:21:30 +01: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
b77fe3c427 Merge "Allocation API: allow skipping retries in TaskManager" 2019-01-08 18:19:44 +00:00
Zuul
2db4157416 Merge "Fix IPv6 iPXE support" 2019-01-08 17:41:48 +00:00
Debayan Ray
66dc4c6746 Fix ironic port creation after Redfish inspection
Change non-existent ``eth_summary`` property to ``summary`` on
ethernet_interfaces resource of Sushy.

Also amended the helper method, ``create_ports_if_not_exist`` in
inspect_utils module to handle Sushy returned ethernet summary
results.

Change-Id: I59a3d269c3508cc1e86d0ad5af3707585b108fa0
Story: 2004638
Task: 28574
2019-01-08 12:27:28 +00:00
Dmitry Tantsur
fb93d4bc3c Allocation API: minor fixes to DB and RPC
This is a follow-up to commit 36b047ff5e1b0c1cf64d4b58bf8a9ce3bcc87e85:
* Do the join on the database level when filtering allocations by node UUID
* Add a check that we do not touch instance_info in destroy_allocation to
  document it as an explicit decision.
* Fix a few grammar nits and inprecise comments.

Change-Id: I1fa7815ae3b6a0190bdb3bf0257ae79fb6a36671
Story: #2004341
2019-01-08 10:42:37 +01:00