This change addresses review feedback from change
I55229f0ab37e657b7668dd4fe402fe6b5a6cda40 in the release
note, as well as the parameter text. Accordingly, the sample
configuration has been updated.
Change-Id: Ieea574f1bcc9b6c663aeb8d89475c1dd8cf6964d
This patch introduces following REST API endpoints to get/set volume
connector and volume target in Ironic.
- GET /v1/volume
- GET /v1/nodes/<node_uuid or name>/volume
- {GET, POST} /v1/volume/connectors
- {GET, PATCH, DELETE} /v1/volume/connectors/<volume_connector_uuid>
- GET /v1/nodes/<node_uuid or name>/volume/connectors
- {GET, POST} /v1/volume/targets
- {GET, PATCH, DELETE} /v1/volume/targets/<volume_target_uuid>
- GET /v1/nodes/<node_uuid or name>/volume/targets
This also adds CRUD notifications for volume connector and volume
target.
Co-Authored-By: Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com>
Co-Authored-By: David Lenwell <dlenwell@gmail.com>
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Change-Id: I328a698f2109841e1e122e17fea4b345c4179161
Partial-Bug: 1526231
This patch validate the power state of a node when the following
actions regarding volume resources associated with the node are
requested.
- update a volume connector
- delete a volume connector
- update a volume target
- delete a volume target
These actions should allowed only when the node is tuned off as
designed in the SPEC.
Change-Id: I5d0465c6ac2d2c6ddac03385e6ed0ccb37556306
Partial-Bug: 1526231
- Split loading session and auth from config to separate functions,
allow to override options loaded from config.
This will lay ground to more efficiently load clients that allow
passing in both session and auth plugin objects separately.
- When resoving a service endpoint, either fetch the requested interface,
or first try 'internal' and then 'public'.
This is done due to our config lacking any options to set the default
interface for service endpoints to use, and we've used 'internal' by
default, although DevStack has no such endpoints for most services
any more [0].
This will be changed again when gradually introducing usage of
keystoneauth Adapters to ironic.
- Remove get_admin_token method, it was used only in glance-related code
once, and was simply moved there.
[0] https://review.openstack.org/#/c/433272
Change-Id: I73b21098f15af4d0445f89fdd6ad4e4a42177df6
Partial-Bug: #1699547
- Adds new boot interface 'irmc-pxe'. Deprecates 'pxe' boot interface
from using with hardware type 'irmc'.
- Adds functions backup_bios_config and restore_bios_config to iRMC
management interface for implementing the BIOS BACKUP/RESTORE
mechanism supporting iRMC S4 hardware. The function backup_bios_config()
will be called automatically before deploying.
- Adds clean step restore_irmc_bios_config to restore BIOS config
for a node during automatic cleaning.
Change-Id: I04aa5bc2f5e287e048d0b52fee123e53ae2eaa99
Partial-Bug: #1639688
This patch adds CRUD notification objects for volume connector and
volume target. Emission will be implemented in API changes for
volume connector and volume target.
Change-Id: Ib13428702f109c20d014ea1870b3c5982db3df0f
Partial-Bug: 1526231
The old code blindly required power status even if the power action
failed. Now, it will retry the power action only when it detects a
retryable failure, and will only poll for power status if the power
action is successful. This patch also moves the logic for handling
waiting for power status into the conductor so that the logic is
standardised between drivers.
Change-Id: Ib48056e05d359848386ac057b58921f40b7bdd60
Co-Authored-By: Sam Betts <sam@code-smash.net>
Related-Bug: #1675529
Closes-Bug: #1692895
Creating a node with the noop network interface, then listing the node's
VIFs, e.g. via openstack baremetal node vif list <node>, ironic
previously returned a 500 internal server error. This change fixes the
issue by returning an empty list instead of None from the vif_list
method.
This change also adds unit tests to cover the noop network interface as
it previously had none.
Change-Id: I327c961f094528d46a78c26610d198ebc2a4f370
Closes-Bug: #1700497
This is needed to fix the CI broken by glance switching to running
under wsgi, and thus breaking our assumption that glance is accessible
by host:port only.
The options glance_host, glance_port and glance_protocol were
deprecated. Standalone deployments should use glance_api_servers
instead.
Also removes two unused utility functions.
Change-Id: I54dc04ab084aeb7208c9dd9940c6434c029bf41c
Partial-Bug: #1699542
In order to boot from volume, the deploy driver needs to
know when not to actually deploy. This change wires in the
checks to skip deployment activities if it appears that we
have a valid root volume target defined.
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Partial-Bug: #1559691
Change-Id: I62e622a2b053f685c2da42ca5106bdb9bdd22dc6
Added support for iPXE template output of a template
containing iscsi based URL sanhook entries to enable
boot as well as additional attachments.
Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Co-Authored-By: Michael Turek <mjturek@linux.vnet.ibm.com>
Change-Id: I75869262dbfd1caa779fa21e93cdb31f193cb829
Partial-Bug: #1559691
This is a followup to the Cinder driver patch [0]. There were several
comments during review that asked why we weren't using
detach_volumes instead of _abort_attach_volumes. This patch is a
proposal to remove the method and merge it's functionality with
the detach_volumes method.
This patch also addresses some nits found in the cinder driver.
[0] b23a176a737f217e9573d6f10c3059d22813b159
Change-Id: Ic5584bc1380a65fdd9a74c174bee63bae1c6a4b3
Parital-bug: #1559691
Currently, the logic contained inside the _from_db_object base ironic
object method is simply assignment of values in the DB object to the
oslo versioned object. This might not be that simple in case of nested
objects, for example in case of tags contained inside the node. This
change adds a possibility to select which fields to set as usual by
passing them as fields argument to _from_db_object method. Other fields
are loaded in the new _set_from_db_object method.
Change-Id: Ib2ca1acc52b9ba05297976f2c7ad67a63e07dbde
Trivial rename to improve consistency within the unit tests. Typically
the base and utils modules imported by various tests are prefixed by
db_, obj_, etc. to differentiate them. This change adds a db_ prefix to
the ironic.tests.unit.db.base and ironic.tests.unit.db.utils imports
outside of ironic.tests.unit.db and submodules.
Change-Id: I39803c592e32e58ce9657ae70bcd45f7b5d51809
When creating or updating a port that is a member of a portgroup, we
need to validate the consistency of the physical networks of the ports
in the portgroup.
There are 3 cases we are interested in:
- Creating a port which is a member of a portgroup.
- Updating the physical network of a port which is a member of a
portgroup.
- Updating the portgroup of a port.
All ports in a portgroup should have the same value (which may be None)
for their physical_network field.
During creation or update of a port in a portgroup we apply the
following validation criteria:
- If the portgroup has existing ports with different physical networks,
we raise PortgroupPhysnetInconsistent. This shouldn't ever happen.
- If the port has a physical network that is inconsistent with other
ports in the portgroup, we raise exception.Conflict.
If a port's physical network is None, this indicates that ironic's VIF
attachment mapping algorithm should operate in a legacy (physical
network unaware) mode for this port or portgroup. This allows existing
ironic nodes to continue to function after an upgrade to a release
including physical network support.
Change-Id: I6a6d248155f98109dd36dba5837494f6974846e6
Partial-Bug: #1666009
Addition of storage interface attachment and detachment
operations when:
* Node power is turned on/off, with a storage_interface
configured, and when the node is in ACTIVE state.
* Node deployment and node tear_down operations.
In addition to attachment and detachment, driver_internal_info
is now populated with a boot from volume target uuid, if a
volume is defined for the node.
Additionally, upon tear_down, the drivers now call a helper
to remove storage related dictionaries and destroy
volume target records.
The "cinder" storage interface has been enabled by default,
and further details on the storage interface's use are in
later patchsets for this feature.
Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Co-Authored-By: Michael Turek <mjturek@linux.vnet.ibm.com>
Change-Id: I0e22312e8cebb37b8f025da2baeca8eb635f35b7
Partial-Bug: #1559691
When out-of-band cleaning is initiated, the node is PXE booted and the
ramdisk is loaded. After in-band cleaning completes, the node is
rebooted. At that point, the iDRAC automatically creates and runs an
"Export Configuration" job. Out-of-band cleaning then starts: either
RAID configuration creation or deletion. If the export job has not
finished by the time the RAID deletion or creation job is attempted to
be created, then the RAID job creation fails.
This patch causes RAID configuration creation and deletion to wait
until the iDRAC declares itself to be ready before proceeding with
out-of-band cleaning. This ensures that the export job has completed
before creating another job.
Change-Id: I79faba2206b86288ae636c46468a8b2dc321f979
Closes-Bug: 1691808
Depends-On: I929deada3dda7b09a6f29033fff89d9b0382aef8