The following drivers are removed here:
* fake_ilo
* fake_drac
* fake_irmc
* fake_ucs
* fake_cimc
* fake_oneview
Some clean up can be done in the unit tests, but this is out of scope
for this change.
Change-Id: Ifce3f9102384e1424d4ab624d32929f5e832206d
* Adds 'bios' interface to 'BaseDriver'
* Adds BIOSInterface driver class
* Adds fake & no-bios drivers and entries
* Implements it for 'fake-hardare' hardware type
* Adds configuration parameters:
+ [DEFAULT]/enabled_bios_interfaces
+ [DEFAULT]/default_bios_interface
* Adds 'bios_interface' field to Node object
* Handle 'bios_interface' field in _convert_to_version
* Adds bios in CLEANING_INTERFACE_PRIORITY
Drivers can implement this interface to do BIOS
configuration.
Co-Authored-By: Yolanda Robla Mota <yroblamo@redhat.com>
Co-Authored-By: Luong Anh Tuan <tuanla@vn.fujitsu.com>
Change-Id: I7e57130242b6cab21b54e35dc3c0b7819bdc43c0
Story: #1712032
I've tried my best to provide a correct matching for these, but
there are two exceptions:
* fake_drac uses iscsi deploy with None boot, which cannot work,
so changing both to fake
* some fake drivers are migrated to the 'fake' power interface,
which is changed to include soft power as well.
The latter means that all fake classic drivers now support fake
soft power actions, while previously only fake_soft_power did.
Now fake_soft_power is identical to fake and is left for backward
compatibility
Also wrote more tests to check correctness of this migration.
Change-Id: I00c9c6ed698b10f035e65428e1a20d733c7e544a
Partial-Bug: #1690185
This change adds a new data migration: migrate_to_hardware_types.
It works by walking through known classic drivers, detecting matching
hardware types and interfaces and updates nodes accordingly.
Nodes that cannot be updated (e.g. matching hardware type is not
enabled) are skipped. A new migration option reset_unsupported_interfaces
can be set to True to allow resetting optional interfaces to their
no-op versions.
The example implementation are provided for the community supported
IPMI and SNMP drivers, as well as for fake drivers based on them.
Change-Id: I732b44f2ab1ef73f56b352415ffd9cdd8a0e232b
Partial-Bug: #1690185
This patch removes the ``python-oneviewclient`` library from
``oneview`` hardware type since it was migrated to ``hponeview``
and ``python-ilorest-library``.
Change-Id: I3393189abdff6a0e56f54375877cc310d72ff5b1
Closes-Bug: #1693788
Reverting these changes because python-hpOneView does not provide HTTPS
secure connection with custom CAcert and could cause a possible security issue.
This reverts commit 037360f64d.
Change-Id: I2a95f3cd23f20c363fe97fc347c9d2619d2ab5e9
This patch removes the python-oneviewclient library from
OneView drivers since it was migrated to python-hponeview
and python-ilorest-library.
Change-Id: I061381a941e7d7f82863b326bb7555d41395e661
Closes-Bug: #1693788
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
SSH drivers are being unsupported for about a year now. All current
stable branches of ironic are officially supporting IPMI-capable HW
simulation via virtualbmc.
All ironic-related gate jobs have already been switched
to not use or enable those drivers.
This patch finally removes SSH-based power and managemtnt driver interfaces
and all classic drivers using those from ironic code and documentation.
Related exceptions and `ssh_connect` function, together with dependency
on `paramiko` package are removed as well.
Change-Id: Ieda7249b9cd78e3be1eff37804996295fc8d3969
Closes-Bug: #1570301
Depends-On: I9b60c9fa24652e9e64e787cd4e5b0152f51e7a28
The ipminative driver was marked as unsupported on September 28, 2016,
and an email was sent to the list on March 9th, 2017 asking for
volunteers to run third-party CI to save the driver from deprecation.
Additionally, many ironic contributors who also deploy ironic have
reported instability while using this driver. For these reasons it's
being removed from the main ironic tree. If there are any users still
interested in this driver, they are invited to host it elsewhere.
Change-Id: I9bc9f4cbd916f040a636b967ec5556197ad3d8a8
Closes-bug: #1671532
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
This patch updates the generic power interface to support SOFT_REBOOT
and SOFT_POWER_OFF. And also it introduces "timeout" optional
parameter for all power operations.
Partial-Bug: #1526226
Change-Id: I1c9bbd1f11f6a8565607c874b3c99aa10eeb62a5
This patch removes all the basic classes for lookup/heartbeat as vendor
passthru from Ironic code, as well as removes those API endpoints from
list of API public routes.
It also removes the agent vendor passthru from fake drivers.
Change-Id: Ia133a63ed4e8ed99551f6d2656d24e990300f3a2
Closes-Bug: #1640533
This patch removes the mentioned drivers from ironic code tree.
Per our third-party drivers policy they are unsupported,
and there is no existing plan to have third-party CI for them.
Nevertheless, if anybody still needs them, they are available in
ironic-staging-drivers repo.
Change-Id: I1219892bbc1b814d80b62c8ec89b90819071870f
Related-Bug: #1640533
This change is about adding the ability to the OneView drivers of doing
hardware inspection. In this context, for enable hardware under
management by OneView been inspected, is essencial a Server Profile
applied to that hardware. A Server Profile, in OneView context, means
a configuration that makes booting and connectivity operations settings
possible.
Considering in-band inspection as the inspection process that involves
booting a ramdisk on the target node and fetching information directly
from it, in this patch we extend the
ironic.drivers.modules.inspector.Inspector class to inherit the ironic
implementation for in-band inspection behaviours and to address our
needs, we override the 'inspect_hardware' method to apply the needed
Server Profile and we also override the '_periodic_check_result'
periodic task to remove the Server Profile after the inspection
process is over.
Change-Id: I77ebf4b9175c2c1df1baa6d58714ff54c97c17ff
Closes-Bug: 1621530
This will cause them to log a warning at startup, that it is unsupported
and may be removed later.
The drivers marked unsupported are any driver that uses:
* SSHPower / SSHManagement
* NativeIPMIPower / NativeIPMIManagement
* seamicro.Power / seamicro.Management
* IBootPower
* SNMPPower
* VirtualBoxPower / VirtualBoxManagement
* AMTPower / AMTManagement
* MSFTOCSPower / MSFTOCSManagement
* WakeOnLanPower
See the release note in this change for the full list of the setup.cfg
names for the drivers.
The remaining drivers are tested via OpenStack CI, and/or have a
third-party CI listed here[0] and are making an honest effort toward
having stable CI.
[0] https://wiki.openstack.org/wiki/ThirdPartySystems
Closes-Bug: #1526410
Change-Id: I9c09be6b7a734426a4c0b18cb61ece5389428cd5
Issue is caused by checking node.driver_internal_info['clean_steps']
which might not exist.
Change-Id: I8fbf340bb0b20caa85e2b5809677d97ddbb3e64b
Closes-Bug: #1621385
Implements out-of-band inspection in the DRAC driver using inspection
interface.
Change-Id: I0d63f31473776551550f917dbc7237564881f566
Closes-bug: #1603454
IPMISocatConsole is a new console interface class using ipmitool and
socat. It has the same APIs of IPMIShellinaboxConsole class and
provides TCP4/TCP6 connection service to connect serial-on-LAN of
nodes.
IPMIConsole is a new console interface class using ipmitool and used
as parent class of IPMIShellinaboxConsole and IPMISocatConsol class.
This patch set implements new console driver interfaces
IPMISocatConsole.
To use PXE + IPMItool + socat, specify pxe_ipmitool_socat.
To use IPA + IPMItool + socat, specify agent_ipmitool_socat.
Spec: https://review.openstack.org/#/c/319505/
Partial-Bug: #1553083
Change-Id: I35a7dcb7e89baf16d096501fd44dbc12adc8c61e
Previously, all node vendor passthru methods required an exclusive lock
on the node to validate and start the task. This allows node vendor
passthru methods to specify require_exclusive_lock=False in their
passthru decorators to let the conductor acquire a shared lock on a
node.
Change-Id: I43cf43bc5c17f44a735e16c3c5cb744cf6911d27
Closes-Bug: #1481665
This module enables iRMC out-of-band hardware inspection for FUJITSU
PRIMERGY bare metal nodes having iRMC S4 and beyond.
Change-Id: I8f406a9beb3fd3c01b15f764211ffd18494464f6
Closes-Bug: #1525108
DRAC specific code from Ironic is moving to its own project, to
python-dracclient project. This patch finishes refactoring code in
Ironic to use the new library.
Change-Id: I6223dbbeb770d773ebdd72277017156cbdb1d035
DRAC specific code from Ironic is moving to its own project, to
python-dracclient project. This patch continues refactoring code in
Ironic to use the new library.
Note that this is a backwards incompatible change. In addition to the
dependency change, return values of the following methods changed in
ironic.drivers.modules.drac.vendor_passthru:
- set_bios_config returns the 'commit_required' key
- commit_bios_config returns the 'job_id' and 'reboot_required' keys
- abandon_bios_config returns nothing
Change-Id: Iaa4cee0dae8980817803ca55cdb53789b4051bc2
Partial-Bug: #1454492
Depends-On: I574696e460f08cececc47a69b5c2b090a6cd44a2
Currently there is no support to get console in dev and
test environments, this patch implements a console driver
ShellinaboxConsole to add ability of console access for
SSH driver using 'virsh console'.
For non-virsh ssh drivers, a 'GET /v1/drivers/properties'
request will return False for the console interface (as
opposed to None) with a 'not supported ...' reason.
Change-Id: I2764e0cb4b5b489762e00cd266212b902acc0746
Closes-Bug: #1526305
DRAC specific code from Ironic is moving to its own project, to
python-dracclient project. This patch starts using the new library.
Change-Id: I68251fc2b5dd169bb22bbbe38fe9eea16c5ac806
Partial-Bug: #1454492
Depends-On: Iab9d9f7e4e25e3d3fdec9b28fe49a7226e68c9ff
All Fake drivers in tree lives under the fake.py module, this patch is
moving the FakeOneViewDriver to that module as well so we keep things
consistent and organized.
Change-Id: Ie3ecbf87037b353950acd6dd78503cad2e8a0221
Current drivers only allow for control of UCS servers via either IPMI or
UCSM, the Cisco UCS C-Series operating in standalone mode can also be
controlled via CIMC using its http/s XML API. This provides finer
control over the server than IPMI can, and doesn't require the extra
infrastructure that UCSM needs.
Change-Id: Ibd39040e3d7e82a87960d33150750433beb2453b
Implements: blueprint cisco-imc-pxe-driver
This commit adds support for inband raid configuration
using agent ramdisk. Agent ramdisk will route the call
to appropriate hardware manager which will create the
desired raid configuration. This must be explicitly
invoked via setting the provision to 'zap'.
This commit also updates the code to not touch
node.target_raid_config in raid.update_raid_info()
method.
Implements: blueprint inband-raid-configuration
Change-Id: Ifa640d4839b2f08410ceec57c2972e2f9dc69db3
This patch adds vendor interface with send_raw() and bmc_reset()
methods to ipminative driver (like in ipmitool).
Change-Id: I388a97730c627f5184959b6dac64795d61ef140e
This commit refactors agent.AgentDeploy to use
the new PXEBoot interface.
prepare_cleaning will write the Neutron port IDs of the
ports created on extra field for each port. This is
for generalizing it into a single place from which
boot interfaces like pxe.PXEBoot can pick up Neutron
VIFS port IDs for preparing boot (for both deploy and
cleaning).
It deprecates the CONF options
CONF.agent.agent_pxe_config_template and
CONF.agent.agent_pxe_append_params, so that it can be
merged with their counter-parts in CONF.pxe. These agent
CONF opts will be deprecated in Mitaka release.
The CONF option CONF.agent.manage_tftp is deprecated and
is renamed to CONF.agent.manage_agent_boot.
Implements: blueprint new-boot-interface
Change-Id: Ia424db63547e91e44fe18a9044b6a490e641e887
This commit introduces a new standard interface
of a driver - RAIDInterface. Drivers can
implement this interface to do RAID configuration.
This commit also introduces some common code to
do validation of RAID configuration and updating
the node after doing RAID configuration.
Change-Id: I907447511e6f9ee9e1e3b96a94a0360e81f75cef
Implements: blueprint ironic-generic-raid-interface
This commit refactors pxe.PXEDeploy. It moves code
related to PXE booting into a new boot interface
pxe.PXEBoot and keeps rest of the iSCSI deploy related
code in iscsi_deploy.ISCSIDeploy.
Implements: blueprint new-boot-interface
Change-Id: Ie96c02709200bd50f56458079e27b1f1daa60081
This commit adds a new boot interface in Ironic
which can be used by deploy drivers to set up
the node to boot.
Implements: blueprint new-boot-interface
Change-Id: I0fdc0636c51a1b7803899dd09870806f1c81697e
This patch implements a simple Wake-On-Lan power interface. For those
that does not have any fancy hardware just old PCs at home.
Wake-On-Lan is only capable of powering ON the machine, so it's
recommended to use the DIB ramdisk for testing the deployments with it
because it does a soft reboot on the machine at the end of the deployment.
After the machine is unprovisioned, you'll have to manually power it
off :-)
This patch also doesn't implement SecureON password feature for
Wake-On-Lan, I left a TODO in the code for those willing to implement it.
Implements: blueprint wol-power-driver
Change-Id: I6c0f98ef1cab1ebfb4a7e1d0aaae29672db1c5a4
This commit adds pxe_ucs, agent_ucs driver changes.
Adds support for the following:
- Power driver changes
- Management interface changes
- UCS Helper code, which can be reused with other parts of the driver,
ex: to support vendor apis.
Change-Id: I02211da5fad039dc7e6b509d547e473e9b57009b
Implements: blueprint cisco-ucs-pxe-driver
This patch enforces the rules E123, E126, E127, and E128 in the ironic
code base:
E123 - closing bracket does not match indentation of opening
bracket’s line
E126 - continuation line over-indented for hanging indent
E127 - continuation line over-indented for visual indent
E128 - continuation line under-indented for visual indent
This fixes any parts of the current code which fails these rules and
removes these rules from the tox.ini flake8 ignore list.
Change-Id: Ia96582b5e9abc088d6c1694afc93c59be4a4065c
Closes-Bug: 1421522
This patch changes module names, allows importing new module
name for inspector (will be later changed to ironic_inspector_client).
We need this patch to unbreak devstack support.
Change-Id: I34cc4336dcd7e8d44aebecf5c85b52c83f0c717b
Includes support for the Open CloudServer (OCS) chassis manager
power operations. The OCS design has been contributed by
Microsoft to the Open Compute project.
Implements blueprint msft-ocs-power-driver
Change-Id: Ic2c90ab5c8d79c55ae83dd485b3cf9281b600c23