| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
stable/ocata
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Infiniband ports do not require the local_link_connection field to be
populated as the network topology is discoverable by the Infiniband
Subnet Manager.
This change removes the requirement for local_link_connection for
Infiniband ports. Infiniband ports have a client-id in their extra
field.
Closes-Bug: #1753222
Change-Id: I2bfac4ccaf825bd9aa8ea0d2b447fcd7767acbc5
(cherry picked from commit dcebb77d9d7a2cebcc645dd632a12d224bd113c8)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes an issue that caused the integrated Dell Remote Access
Controller (iDRAC) management hardware interface implementation,
'idrac', to fail to boot nodes in Unified Extensible Firmware Interface
(UEFI) boot mode. That interface is supported by the 'idrac' hardware
type. The following errors appear in the ironic conductor log:
ERROR ironic.drivers.modules.agent_base_vendor File
"/opt/stack/new/ironic/ironic/drivers/modules/drac/management.py", line
106, in set_boot_device
ERROR ironic.drivers.modules.agent_base_vendor in
drac_boot_devices[PERSISTENT_BOOT_MODE]
ERROR ironic.drivers.modules.agent_base_vendor KeyError: 'IPL'
ERROR ironic.drivers.modules.agent_base_vendor
ERROR ironic.conductor.utils [None
req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Error rebooting node
cddff129-7353-4de1-b436-810b1ae0dd92 after deploy. KeyError: 'IPL'
DEBUG ironic.common.states [None
req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Exiting old state
'deploying' in response to event 'fail' {{(pid=23850) on_exit
/opt/stack/new/ironic/ironic/common/states.py:263}}
DEBUG ironic.common.states [None
req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Entering new state
'deploy failed' in response to event 'fail' {{(pid=23850) on_enter
/opt/stack/new/ironic/ironic/common/states.py:269}}
The issue is resolved for Dell EMC PowerEdge 13th and 14th generation
servers. It is not resolved for PowerEdge 12th generation and earlier
servers.
Prior to this change, the set_boot_device() function in
ironic.drivers.modules.drac.management could successfully set a boot
device that would persist during future boots only when the server's
boot mode was configured to be BIOS. The root cause was that function
understood only a single persistent boot mode, BIOS, and it was hard
coded.
PERSISTENT_BOOT_MODE = 'IPL'
Initial Program Load (IPL) is a synonym for legacy BIOS boot mode.
The iDRAC does not report nor make visible the boot source lists for
persistent boot modes that are not configured as the server's current
boot mode. Only the list associated with the configured boot mode is
reported and can be modified. So, when the boot mode is configured to be
UEFI, the iDRAC permits only its boot source list to be modified.
However, set_boot_device() had been capable of only modifying the boot
source list for BIOS (IPL), which was not reported. Its attempt to
access the wrong, unreported boot source list failed.
This change fixes the issue by determining the configured persistent
boot mode at run-time and modifying its boot source list. The hard
coding of a persistent boot mode has been eliminated. Now, nodes managed
by the iDRAC hardware type successfully boot in either persistent boot
mode, BIOS or UEFI. More information about using the iDRAC for boot
management is available in the "Dell EMC BIOS and Boot Management
Profile", Version 4.0.0, section 7.2 Boot Management, pp. 44-47 [1].
The way the iDRAC hardware type deploys the operating system, by copying
it to a disk, posed an additional challenge to this fix. UEFI discovers
new boot sources during the next boot. How could the server be
configured to directly boot into the newly deployed operating system
when its boot source is unknown? It was overcome by using new iDRAC BIOS
attributes named 'SetBootOrderFqddNN' [2]. Those make it possible to
specify the boot source for the next boot without requiring it to be
present in the current boot's boot source list. The server is configured
to directly boot from the disk on which the operating system was just
deployed. An additional reboot is not required. Note that those new
attributes are presently available on only 13th and 14th generation
servers. Also, this approach is only possible for configuring a
persistent boot source.
[1] http://en.community.dell.com/techcenter/extras/m/white_papers/20444495
[2] "Configuring server boot options on 14th generation Dell EMC
PowerEdge servers", section 3.5.2 SetBootOrderFqddNN, pp. 13-14
(http://en.community.dell.com/techcenter/extras/m/white_papers/20487489)
Conflicts:
ironic/tests/unit/drivers/modules/drac/test_management.py
Story: 1656841
Task: 9711
Change-Id: Idad1db1807420eab62c44318afafe10ea8c52ee5
(cherry picked from commit eb14f5750f6387a0a6b771caffb9f17a9bce5ba0)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes an issue seen during node tear down where a port being deleted by
the Bare Metal service could be deleted by the Compute service, leading
to an unhandled error from the Networking service. This change simply
ignores the PortNotFoundClient exception raises, as is done when
attempting to unbind a port that does not exist. See [1] for details.
[1] https://storyboard.openstack.org/#!/story/2002637>
Change-Id: Icd2aaa1276e75f08f99553bbc9a873102d896fb9
Story: 2002637
Task: 22285
(cherry picked from commit bfed31bb4c599b7063da80798db8078a64c13368)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, when unprovisioning a node, the console was left
running. This allowed a user to view the console even after the instance
was gone. Stop the console during unprovisioning to block this.
ConductorManager._set_console_mode will now bubble up any exceptions
raised, so that we can explode as needed during unprovisioning. This
does not have any side effects, as elsewhere it is run in it's own
thread and execution was complete after handling the exception.
Also change a few mock.ANY in the relevant unit tests to the actual task
object, as cleanup.
Conflicts:
ironic/tests/unit/conductor/test_manager.py
Change-Id: Iec128444d692e0b0fbc1737eb21b0e6f69b7ec1e
Partial-Bug: #1769817
Story: #2002000
Task: #19634
(cherry picked from commit 7a8b26db6b48f5593786bb92cf09fa1d6afcc1ea)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These additions will allow us to filter nodes
by node uuid and id. This filter API is used
in many places throughout the code base. It is
natural to expect that this API would allow us to
filter by node id and uuid in addtion to the other
supported parameters. This also fixes a 3 year old bug.
This change from lucasagomes has a bug:
https://review.openstack.org/#/c/197141/
In conductor/manager.py, he calls _fail_if_in_state()
and uses the node_id as a filter. However this filter
effectively does nothing because sqalchemy does not
know how to filter by node id on the backend. My changes
fix this problem and make the API more intuitive
Closes-Bug: #1749755
Change-Id: I4efc0d5cd5d5d6108a334f954e1718203b47da0a
(cherry picked from commit 366a44a1bb4e235f6382af02962ba2a192cffa4d)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the driver_info is passed as is to the ramdisk when calling
get_clean_steps or execute_clean_step. This may lead to their exposure,
as ironic<->ramdisk communication is currently not secure.
This change applies the same logic we use in the API to filter
the fields.
Change-Id: I4fd44786fea6c7092d2b0029cea6d680d31babde
Closes-Bug: #1744836
(cherry picked from commit c2185469c4a9246fa62ceae76676a08ed84e686d)
|
|
|
|
|
|
|
|
|
| |
On whole disk images a root partition is already created and populated, so
validating its size makes no sense. We don't do it for direct deploy.
Change-Id: I7a4114979afb310aeb77f99fbcf09ef7c54862d6
Closes-Bug: #1742451
(cherry picked from commit a7623d92dc4d7c7bcc436656b93c8fe963e79bfd)
|
|
|
|
|
|
|
|
|
|
| |
Calls to 'get_service_url' should use the
'region_name' parameter. Before they were
incorrectly using 'region' as the parameter name.
Change-Id: Ic839ba6dbd5ca4dc9c7d87cf23582b8cfc393731
Closes-Bug: #1687866
(cherry picked from commit 21d89c0f641e9a03c47a7ffe42af2150af31016c)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix errors in log messages. These were detected by a patch that catches
these types of errors. Submitting these fixes first as the patch to
detect the errors will likely take more time to get merged.
Conflicts:
ironic/dhcp/neutron.py
ironic/drivers/modules/irmc/boot.py
ironic/drivers/modules/oneview/deploy_utils.py
Closes-Bug: #1722597
Change-Id: Ibe451f9cd97971cb83366fdc6f7f5c31d2af4793
(cherry picked from commit df5da4ce7a32e64e34a489b741bd911f9c55ea34)
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
There might be cases when user deleted port before doing vif_detach.
With this patch info message will be shown in the logs for such cases.
Change-Id: I60deab450b427f1a1b4ccb0bb5963ec30d255d48
Closes-Bug: #1685592
(cherry picked from commit 940c87d6c49be181d969e85d343b745149b6db10)
|
|/
|
|
|
|
|
|
|
|
| |
Switching from provisioning to tenant network was missed in
reboot_and_finish_deploy for OnView Driver.
The affected code was completely removed in the Pike release,
hence this patch is not a cherry-pick.
Change-Id: I36920741640981b5e85bbb08bfc1e2beff0b605f
Closes-Bug: #1716023
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change fixes an issue that caused a node using a Dell EMC
integrated Dell Remote Access Controller (iDRAC) classic driver,
'pxe_drac' or 'pxe_drac_inspector', to be placed in the 'clean failed'
state after a double manage/provide cycle, instead of the 'available'
state.
The deploy interface implementation used by iDRAC classic drivers has
been class ironic.drivers.modules.drac.deploy.DracDeploy, which is
derived from class ironic.drivers.modules.iscsi_deploy.ISCSIDeploy. The
only difference between them is that DracDeploy overrides the
prepare_cleaning() method to prevent the booting of the Ironic Python
Agent (IPA) ramdisk when only out-of-band RAID clean steps are
requested. However, it caused the issue and did not have its intended
effect, because Ironic Conductor boots the ramdisk regardless. The
Ironic Conductor should be modified to preclude the booting of the IPA
ramdisk fix, rather than leaving it to individual drivers.
The iDRAC classic drivers' deploy interface implementation has been
changed to ISCSIDeploy. Since class DracDeploy is no longer needed, its
source code and automated tests have been removed.
Change-Id: Ib2c9b7f9f780aaf5f6345825b1f6c9ddb4f9c41f
Closes-Bug: #1676387
Related-Bug: #1572529
Related-Bug: #1705741
(cherry picked from commit 86e3a100a3a6fcfcf9d498886e1d7784f07ecd73)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the system is set to use MyISAM engine as default, during upgrade
a new conductor_hardware_interfaces table will be created with MyISAM
engine. This will cause a mix of InnoDB and MyISAM tables in single
database, and obsolete a foreign key to conductors table.
This bug in particular fails test_models_sync unit test, when it is
executed on a system, where MyISAM is set as default option for local
MySQL server.
Change-Id: Ic47426b1a12eda5728e9971a27ad3767c0245d50
Closes-Bug: 1702158
(cherry picked from commit 1a0c7091a6bb5ab8ca83ad6a7244fcb84c7f99b4)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduces a new validation to ensure the node deallocation
process will only be performed to nodes that have Server
Profile applied in OneView. When the allocation process
fails, the machine will have no Server Profile applied in
OneView and in ironic it will have no reference to any
Server Profile. Under these conditions if the deallocation
process be performed the driver will try to delete a
nonexistent Server Profile in OneView, leaving the node
in error state in ironic.
Change-Id: I83cef7fafac4e22ebf5eb4fe83f6da26ec132c99
Closes-Bug: #1657892
(cherry picked from commit 0b23a041f1111ad112d28619fa020173805edbbe)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If original disk image has ID of 0x00000000 it's overwritten by parted
with a non-zero value. The original ID is stored in pxelinux.cfg/* config
file and the node fails to boot.
Reading the ID was moved to after config drive setup so that the final ID
is returned.
Change-Id: Icbfa3e93bf6252177a0baa5f89bf4565ff331520
Closes-Bug: #1685093
(cherry picked from commit cbc29a9b7b78eafa830e2752e2c7f43604917259)
|
|/
|
|
|
|
|
|
|
| |
An issue when it was impossible to update ``node.driver``
to classic if the current driver is one of hardware types.
Change-Id: I348a27a13d3025fe7e8ddfa31992b895a3809730
Closes-Bug: #1668579
(cherry picked from commit 3d02084559e91c0a5c156b259e615eac42a5d882)
|
|
|
|
|
|
|
|
|
| |
core_interfaces and standard_interfaces are both static members of BaseDriver
we need to take a copy of them before appending to them.
Change-Id: Ic6edc5e49a25849c7871dbc9e6e1d5a5eb229e57
Closes-Bug: #1672457
(cherry picked from commit 338651eae5b7c416f04970b9d60f09dc2dab8adb)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We apply specific rules when doing VIF attach, do not duplicate them
in vif_detach just walk over all port and portgroup objects.
This also fixes an issue when VIF was attached to port manually
(set vif_port_id key in port.extra) and it is impossible to detach
such VIF via v1/nodes/<node_ident>/vifs API.
Closes-Bug: #1663660
Change-Id: I70fe87bb4ae15a506fec705d10beaed572c0b45e
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a follow-up patch of "iRMC power driver for soft reboot and
soft power off" [1] to fix a nit of exception handling code and to
make soft reboot wait logic more robust.
[1] I8c69904063ac0a9e042f54158a20347f0c2325e1
Change-Id: I25bd413eb0f3e6c6229bf4fa053ca6ed31a5691d
Partial-Bug: #1526226
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
An instance of UcsOperationError was being instantiated with an
invalid argument, just remove it.
Change-Id: Ib71e8dd37713c7649712b43f62e3c512933d55b7
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes the minor issues with SNMPv3 inspection
Closes-Bug: 1609622
Change-Id: Ic5c397e57060f4d6d01fa9f16f371408af7aae3e
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes an irmc test and oneview mock that were causing timeouts
in unittests with driver-requirements installed, as they were trying
to establish a connection to oneview/irmc management controller.
Change-Id: I1c01e6744064e3f0b8ed8188fb5d5edf9f544682
Closes-Bug: #1663709
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch fixes missed import of '_' in
ironic/api/controllers/v1/drivers.py
Change-Id: Ie076000b441ada7f45aff26e96fe627a961f7336
Related-Bug: #1524745
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch allows to get the disk size by OOB Inspection
using snmpv3 if RIBCL/RIS is unable to get it.
Closes-bug: 1609622
Change-Id: Ib315dabc50b1f0b627b69781ef1c14de0d5d972c
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When we try to save() object after its refresh(), it leads to a
TypeError. Let's not keep track of changed fields in refresh(),
all fields are reloaded from database.
Closes-Bug: #1612666
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Change-Id: I0f47552c424973af3704903a52f98db819b18c3f
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In accordance with ironic CI policies, this patch removesi some drivers
that are not tested on upstream or third-party CI
and for which maintainers have not communicated any plans
to have such testing.
This includes:
- virtualbox drivers
- seamicro drivers
- msftocs drivers
Change-Id: Ia3a7d798c877f4628946ee6c56d850b9847e6c3e
Closes-Bug: #1663018
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Classic drivers have their interfaces (except for
network and storage) pre-determined. Unlike dynamic
drivers, it is not possible to change these interfaces
for nodes with a classic driver. If that is attempted
(when creating or updating a node), an exception
MustBeNone is raised (and HTTP status 400 is returned).
So that we don't break existing ironic clusters that
have nodes with classic drivers and interfaces specified,
a warning is logged (instead of raising an exception)
when a TaskManager is created.
Change-Id: I290b10f735d0da9710d1ee3b50c3252f73956428
Partial-Bug: #1524745
|
|\ \ \ \ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently, during rebuild, tenant ports are bound to tenant network
when we call add_provisioning_network. We need to unbind them first.
Closes-Bug: #1657083
Change-Id: I475a089ee646872f7874c3d257c1dc571ea94f4d
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
since v3.2.0 swiftclient supports instantiating the API client from
keystonauth session, and we already require this version as minimal in
ironic.
This patch removes existing workarounds in SwiftAPI code which were there
only to accomodate for absence of session handling in swiftclient,
and now the keystoneauth session built from the [swift] config section
is used directly to instantiate the swift API client.
Change-Id: I52f1386df45ebe0a43b11fe1583e012dfa3af532
Related-Bug: #1518938
|
|\ \ \ \ |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch adds missed space in the log.warning message from
ironic/common/neutron
follow-up to: Icb8298b9be0d8ba62192580263feafa0e1708129
Change-Id: I5ab976d734c538d4027c0cdf53cf5861e62ab04d
|
|\ \ \ \ |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In addition to validating the power interface before cleaning
is started, the conductor will also validate the network
interface.
Change-Id: Id8938c4e426243de721ce781f28fd1dbeff6b8ab
Fixes-Bug: #1662372
|
|\ \ \ \ |
|