Commit Graph

79 Commits

Author SHA1 Message Date
Dmitry Tantsur 3d8f3ec1a9 Remove the iRMC classic drivers
This changes removes pxe_irmc, iscsi_irmc and agent_irmc.

Change-Id: Ie829ee1758fce38acdd3ae2bb3525bcea37ac6d4
2018-06-26 14:30:38 +02:00
Dmitry Tantsur 6deb0c3b0b Remove the deprecated pxe_snmp driver
Change-Id: I3e9d102698cb09171c3ca3031098bc9f1d829a72
2018-06-26 14:30:11 +02:00
Dmitry Tantsur 575640cfac Remove the deprecated classic drivers for Cisco UCS hardware
This change removes pxe_ucs, agent_ucs, pxe_iscsi_cimc and
pxe_agent_cimc. Best effort clean up was done to the documentation.

Change-Id: I4fe75e0d4a36228f2f6be6bf6ced6d37424b6fd3
2018-06-26 14:29:56 +02:00
Dmitry Tantsur 9c7729d6b7 Remove the ilo classic drivers
This removes pxe_ilo, iscsi_ilo and agent_ilo. Also removed is
the whole documentation section dedicated to them.

Change-Id: Ie6f8a65d68ce4eb9c8467c416df5f3a35f0abe98
2018-06-22 16:55:20 +02:00
Dmitry Tantsur d1062cfbdd Migrate the remaining classic drivers to hardware types
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
2018-02-01 18:38:24 +01:00
Dmitry Tantsur cc6f7bc73e Automatically migrate nodes to hardware types
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
2018-01-26 21:17:26 +00:00
Pavlo Shchelokovskyy 3d9895cc0b Remove SSH-based driver interfaces and drivers
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
2017-08-01 12:39:39 +00:00
Dao Cong Tien e7664a161d Adds clean step 'restore_irmc_bios_config' to iRMC drivers
- 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
2017-06-29 10:06:20 +00:00
Shivanand Tendulker 485a3315d7 Follow-up patch of 7f12be1b14
This commit addresses outstanding minor comments of the review
7f12be1b14.

Change-Id: I6c3511dd9366daf12ab578f60cc6f106a4aa43c4
2017-04-19 00:37:48 -04:00
Jenkins 2a2548336d Merge "Changes 'deploy' and 'boot' interface for 'pxe_ilo' driver" 2017-04-15 16:47:44 +00:00
Shivanand Tendulker 7f12be1b14 Changes 'deploy' and 'boot' interface for 'pxe_ilo' driver
Code of 'pxe_ilo' drivers has been refactored to change 'deploy'
and 'boot' interfaces to iscsi_deploy.ISCSIDeploy() and
ilo.boot.IloPXEBoot() respectively.

Change-Id: Iebfc78e24ee9481ffb615cc6afea12519635645e
Partial-Bug: #1666787
2017-04-04 06:36:30 -04:00
Jay Faulkner 96eafdc866 Remove deprecated, untested ipminative driver
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
2017-03-30 10:34:21 -07:00
Pavlo Shchelokovskyy 02ce7246ec Remove most unsupported drivers
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
2017-02-09 08:09:03 +00:00
Dmitry Tantsur 797544316e Add hardware type for IPMI using ipmitool
Created a new Python module ironic.drivers.ipmi to contain all
supported IPMI-related drivers (both new and old).
Backward compatible aliases are left at old locations.

Change-Id: I526b8505d08b25b668af76d3fcd8f2feab31e420
Partial-Bug: #1524745
2017-01-26 14:22:23 +01:00
Pavlo Shchelokovskyy 87c2db4dc6 Remove iBoot, WoL and AMT drivers
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
2016-12-13 09:31:08 +02:00
Martin Roy e806cf7a88 Remove deprecation of snmp drivers
Now that there is a gate running with virtual pdu we can officially
keep it an support it

Change-Id: Ie6accaa2a29007fa2e0c97329e37efd5f907fc7b
2016-12-09 11:28:10 -05:00
Pavlo Shchelokovskyy 206e246d25 Remove agent vendor passthru from most drivers
This patch removes the deprecated agent lookup/heartbeat as vendor
passthru functionality from most of the drivers in following modules:
- ironic.drivers.agent
- ironic.drivers.pxe
- ironic.drivers.drac
- ironic.drivers.irmc

Some drivers are left untouched though:
- iLO and OneView drivers are a bit more complicated and will be fixed
  in follow-up patches
- iBoot, WoL and AMT drivers will be fixed in ironic-staging-drivers
  repo first and then removed from ironic tree.

Change-Id: Ia9ee46cda68ef823d1fe8e5ea03c1d5948810a50
Partial-Bug: #1640533
2016-11-29 09:30:32 +02:00
Jim Rollenhagen 8758116f83 Mark untested drivers as unsupported
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
2016-09-16 10:48:58 -04:00
Yuiko Takada Mori 857372a226 IPMITool: add IPMISocatConsole and IPMIConsole class
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
2016-07-25 16:42:31 +09:00
Dmitry Tantsur 259a492243 Remove support for the old ramdisk (DIB deploy-ironic element)
To be specific, removed in this patch are:
* vendor passthru for the old ramdisk
* support for deploy_key
* various helper functions (like notify)
* devstack plugin support for the old ramdisk

Fixed:
* vendor passthru for drivers (add support for IPA to seamicro one)
* documentation for iSCSI-based deployment

Change-Id: I0fc25c64339bc4c1f03ccb35cbc4efad4a7ad966
2016-06-09 13:43:21 +02:00
Jenkins 4d9815f357 Merge "Add hardware inspection module for iRMC driver" 2016-02-12 10:43:19 +00:00
Naohiro Tamura 37590a8633 Add hardware inspection module for iRMC driver
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
2016-02-12 11:28:38 +09:00
Sam Betts 65efbfd2c4 Enable Ironic Inspector for Cisco Drivers
This patch enables inspection via the Ironic Inspector for the Cisco
UCS and CIMC drivers.

Change-Id: Ibec82663532c5f49edbb5fc9159220c967ecf498
2016-02-03 16:35:05 +00:00
Zhenguo Niu dc080b598b Add console feature to ssh driver
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
2015-12-22 15:35:49 +00:00
Shivanand Tendulker 229baafaf3 Refactor iLO driver console interface into new module
This commit moves IloConsoleInterface class to separate file.

Change-Id: I143064efdba9f3056c7f980d36a88ef1e9a793fa
Implements: blueprint ilo-driver-uses-boot-interface
2015-11-13 06:23:20 -08:00
Shivanand Tendulker 39e40ef12b Refactor iscsi_ilo driver to use new boot interface
This commit implements new boot interface IloVirtualMediaBoot and
refactors IloVirtualMediaIscsiDeploy to use the same.

Implements: blueprint ilo-driver-uses-boot-interface
Change-Id: I5481e705892f66cb3184ac16ff56c123f5c69087
2015-11-04 03:00:39 -08:00
Ramakrishnan G c6b64f77f1 Add self.raid for iSCSI based drivers
This commit adds self.raid = agent.AgentRAID()
for the drivers pxe_ipmitool, pxe_ipminative, pxe_ssh,
pxe_ilo, pxe_vbox. The same was done for agent drivers in
Ifa640d4839b2f08410ceec57c2972e2f9dc69db3.

It also adds test cases for these drivers which were
missing.

Change-Id: I5e7046ec56dd851a197da8571bd933cabd3dd210
Implements: blueprint inband-raid-configuration
2015-10-16 05:15:13 +00:00
Sam Betts 363c9c38df Add Cisco IMC PXE Driver
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
2015-09-21 18:29:43 +01:00
Vladyslav Drok bb74bb308c Add IPMINative vendor methods to *IPMINative drivers
Currently, ipminative.VendorPassthru methods are not used in any
driver, while they should be in *IPMINative drivers.

Related-bug: #1486148

Change-Id: I6a3855780e74c52821930a3f3c0589b0a468a8e3
2015-09-17 13:01:27 +03:00
Pavlo Shchelokovskyy 47b1b85b23 Use vendor mixin in IPMITool drivers
adds IPMITool-specific vendor-passthru methods to *AndIPMIToolDriver
classes.

Change-Id: I79d6f67eab2bd0c8d78852bf5c96ac9f1d0ce322
Closes-Bug: #1486148
2015-08-31 11:57:56 +00:00
Ramakrishnan G b25906c804 Refactor pxe - New PXEBoot and ISCSIDeploy interfaces
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
2015-07-28 13:50:05 +01:00
Lucas Alvares Gomes c92fac1e5a Wake-On-Lan Power interface
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
2015-06-12 10:01:25 +01:00
saripurigopi 8c26a8c33b Add pxe_ucs and agent_ucs drivers to manage Cisco UCS servers
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
2015-06-10 19:16:04 +05:30
Sam Betts 8c07c4fda3 Enforce flake8 E123/6/7/8 in ironic
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
2015-06-04 12:56:51 +01:00
Dmitry Tantsur 06c8fc9ad1 ironic-discoverd is being renamed to ironic-inspector
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
2015-06-01 12:32:14 +02:00
Alessandro Pilotti 6a87c8a6ca Adds OCS Power and Management interfaces
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
2015-05-06 15:25:46 +03:00
Jenkins 930f479dc1 Merge "iLO implementation for hardware inspection" 2015-03-18 18:49:21 +00:00
Nisha Agarwal 7d5345af6b iLO implementation for hardware inspection
This inspects the iLO to get the essential scheduling properties
and create the ironic ports for the requested macs.

It creates ports if the operator has provided the port numbers
in driver_info of the driver as there is no mechanism out-of-band
to know if server port is physically connected with a ethernet
cable.

Implements: blueprint ironic-node-properties-discovery

DocImpact

Change-Id: I0427f2657dab1145b90738760b1853689536a1e1
2015-03-17 22:34:08 -07:00
Dmitry Tantsur dc05d18b56 Start using in-band inspection
Start using in-band inspection with ironic-discoverd, but do not
instantiate the driver interface when discoverd support is disabled in
the config file.

* Check the CONF option prior to instantiating DiscoverdInspect class
  and binding it to any driver interface
* Updates unit tests to better test the loading (or lack thereof) of the
  driver.inspect interface, based on the CONF option

If in-band discovery is enabled by setting [discoverd] enabled=True in
the config file, then the following drivers will bind it to their
inspect interface:
* pxe_ssh
* pxe_ipmitool
* pxe_ipminative
* pxe_drac

This patch also fixes a few nits (copied from previous reviews).

The bug tagged below presently affects only the "fake" driver. Without
the above-mentioned changes, enabling discoverd for any
production-facing driver would have led to the problem described there.

Updated UnsupportedDriverExtension error message to suggest that
the extension might be disabled.

Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>

Closes-bug: #1431999
Implements: blueprint inband-properties-discovery
Change-Id: I1dd844525852b1ec806f286d01dfc95313c6ad94
2015-03-16 17:02:01 +01:00
Lin Tan f72a694784 Add AMT-PXE-Driver Power&Management&Vendor Interface
Introduce a new driver pxe-amt to extend Ironic's range to desktops.
AMT (Active Management Technology)/vPro is widely used in desktops
to remotely control the power, similar to IPMI in servers.
It will use AMT as power management and PXE as deploy management.
This patch only provides basic operations to support the workflow of
remotely deploying on AMT/vPro system.

This adds power, management and it's own vendor interface.
This also adds a new fake-amt driver.

Implements blueprint amt-pxe-driver
Change-Id: Idd9b63d124f52e24efab8b49dfe1f2e25b8387e6
2015-03-10 00:19:27 +08:00
Naohiro Tamura 49ca371a5b Add iRMC Management module for iRMC Driver
This module inherits ipmitool.IPMIManagement and overrides the
following two functions for iRMC Drivers in order to make use of iRMC
IPMI boot mode get/set capability and SCCI get sensor data.

* set_boot_device()
* get_sensors_data()

Implements: blueprint irmc-management-driver
Change-Id: I8dd6e76a7e85eb477dcde11e322fa1e308fe968c
2015-02-25 16:08:39 +09:00
jiangfei c67fa26416 Use oslo_utils replace oslo.utils
oslo.utils 1.2.0 has changed its namespace from oslo.utils to
oslo_utils.

Co-Authored-By: Victor Sergeyev <vsergeyev@mirantis.com>

Change-Id: I07ce4791cfe3b32efb02be60f792bd1c4f03d82f
2015-02-19 11:39:21 +02:00
Ramakrishnan G 0818cb7627 Add VirtualBox drivers and its modules
This commit adds VirtualBox modules VirtualBoxPower
and VirtualBoxManagement for managing VMs
through VirtualBox web service.  It also adds two
new drivers pxe_vbox and agent_vbox.

Implements: blueprint ironic-virtualbox-webservice-support
Change-Id: I1e23d21534be30cc4b5a06e998cdce0c5cb04ab6
2015-01-31 02:15:51 +00:00
Naohiro Tamura 4412b83481 Add iRMC Driver and its iRMC Power module
Adding new iRMC Driver, namely pxe_irmc, to the list of available
drivers in Ironic and implementing the iRMC power module to interact
with ServerView Common Command Interface (SCCI) described in FUJITSU
Software ServerView Suite, Remote Management, iRMC S4 - integrated
Remote Management Controller.

Implements: blueprint irmc-power-driver
Change-Id: I90d8027877b0873ea13bfbd7731ff7bac3e35d13
2015-01-28 07:04:48 -08:00
Anusha Ramineni f71c36ec10 iLO Management Interface
This commit is to support management Interface for HP ProLiant Servers
using iLO client python library.

Change-Id: I2d909c682b0db6d6bc447c433e3448d31d3558a4
Implements: blueprint ilo-management-interface
2014-11-26 16:17:10 +05:30
Harshada Mangesh Kakad 5126dafe59 Add serial console feature to seamicro driver
Implements a console driver -- "ShellinaboxConsole" -- that uses
telnet+shellinabox to connect to serial console of physical servers
configured within the Seamicro Fabric Compute system.

SeaMicro System provides telnet facility to connect to any of
it's physical server's serial console. Port to which we telnet
depends on server-id.

Change-Id: I2e60f6402a984dbbb6e0f749729c5a7006310076
Implements: blueprint seamicro-serial-console
2014-11-20 07:42:30 -08:00
Vladyslav Drok 91fde155be Fix markup-related issues in documentation
This change fixes all markup mistakes in docstrings that lead to
warnings and errors during docs building.

Partial-bug: #1277282
Change-Id: I092a684b7587b802427d57f4292398bfd21deeb1
2014-10-09 15:06:22 +03:00
Anusha Ramineni c5bfba0f2f ilo* drivers to use only ilo credentials
Currently IloVirtualMediaIscsiDriver and IloVirtualMediaAgentDriver
and pxe_ilo driver uses ipmitool for console and management interfaces.
This imposes user/operator to specify ipmi credentials along with ilo
credentials (which are same) during creation of node.

This fix proposes to update the ipmi credentials on the fly by inheriting
IPMI console and Management Interface.

Change-Id: I81c1311b05bd00bb8245ceb71a140f6bdd2e7daa
Closes-bug:#1367182
2014-10-02 01:30:30 +05:30
Faizan Barmawer 56dcee473e pxe_ilo driver to call iLO set_boot_device
After switching from uefi to bios boot mode, one system reset is
required in iLO for persistent boot device settings.pxe driver call
set_boot_device() which internally calls ipmitool to set boot device
to pxe, will fail in such scenarios.

This fix proposes to change the management interface for pxe_ilo driver
to call ilo set_boot_device using proliantutils ilo_client functions
instead of IPMI call

Change-Id: Idc0e3a765f447ae1d1118299e4815a06995e5414
Closes-bug: #1370466
2014-09-24 05:55:13 -04:00
Ramakrishnan G 4433387970 Support for setting boot mode in pxe_ilo driver
This commit adds support for setting boot mode in pxe_ilo
driver with the help of iloclient.
It modifies the PXEAndIloDriver so that it uses
IloPower for power management,
IloPXEDeploy for image deployment,
IloPXEVendorPassthru for vendorpassthru,
IPMITool console and management interfaces.

Change-Id: Ifb29c6b4c60ce17a7e5c15af7fb62e1c1e1c9ad7
Implements: blueprint uefi-boot-for-ironic
2014-09-12 01:47:47 -04:00