Commit Graph

33 Commits

Author SHA1 Message Date
Dmitry Tantsur 1a07137118 Remove the ipmitool classic drivers
This change removes pxe_ipmitool and agent_ipmitool. Some tests
and documentation bits are removed, since we no longer have any
classic drivers to provide examples.

The Inspector.create_if_enabled method is no longer used and was
removed. The [inspector]enabled option will be deprecated in
a follow-up.

IRONIC_ENABLED_DRIVERS is removed from devstack to prevent
devstack-gate from injecting the removed drivers into it.
A temporary migration from queens is updated to disable all
classic drivers. It will be removed when the enabled_drivers
option is completely removed.

Change-Id: Iab247e3b3336f90446ef0687edb340cf8282a925
2018-06-27 13:08:42 +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 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
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
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
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
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
Dan Prince 030304d7c2 Add agent_iboot entrypoint
This patch adds a new driver combination/entrypoint so that
the Iboot power driver can be used with an IPA agent
based deployment workflow.

Change-Id: I677e60a333ec65cbd2852270fb091f17428e5e36
Closes-bug: #1514439
2015-11-10 09:30:53 +00:00
Yuriy Zveryanskyy 977d1f1f78 Add "agent_wol" (AgentAndWakeOnLanDriver)
This patch adds new driver with WakeOnLanPower and AgentDeploy
interfaces. Automatic deploy is possible because AgentDeploy
does soft power off at the end of deploy cycle.

Change-Id: I09dc41c1523fafc5155a02829f9528d65cf2f5b0
2015-11-02 13:51:56 +02:00
Jim Rollenhagen 42d203a9a5 Add agent_amt driver
This combines the AgentDeploy deploy driver with the AMT power and
management drivers, to allow the agent-based deploy mechanism on AMT
hardware.

Co-Authored-By: Devananda van der Veen <devananda.vdv@gmail.com>
Closes-Bug: #1499489
Implements: blueprint agent-amt-driver
Change-Id: Ideaa68d97477a9a924c33e76b4da3aa8fb02f503
2015-10-12 00:09:37 +00:00
Julia Kreger f0ee68289b Add agent inspection support for IPMI and SSH drivers
Previously pxe_ssh and pxe_ipmitool were the only way to inspect
a host utilizing ssh or ipmitool. With this patch, it extends the
ability for a user to call for inspection of nodes utilizing agent
drivers.

Change-Id: I27caa1122a72ac655958b7a6aa14b7566964f998
2015-10-01 16:54:21 +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
Ramakrishnan G 5dd42ff66d Add support for inband raid configuration agent ramdisk
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
2015-09-14 15:52:31 +00: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 72b20fec75 Refactor agent driver with pxe boot interface
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
2015-08-26 05:47:39 +00:00
stephane 1d82c93652 Fix warnings on doc builds
In the sphinx config, mock out the nova imports we do for the
compute manager so the docs will build with fewer errors.

Exclude the alembic migration environment from autodoc.

Fix the remaining markup errors, which are now easier to spot
given the other fixes.

Note that this leaves one remaining warning, which is that the
generated API documentation isn't currently included in a
toctree. This is easy to fix but it would be good to discuss
whether/where to include it in the documentation hierarchy.

Closes-Bug: 1277282
Change-Id: Iee5fc3eeb95a09198d5234d0ea05e150ab26f16b
2015-08-07 11:36:17 -07: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
Mario Villaplana 0818ffd3b0 Fixes some docstring warnings
Some warnings related to whitespace, improper indentation,
and improper use of literals are fixed.

Change-Id: I86b245e44a48518ca077b4b84a09e7d72d372702
Partial-Bug: 1277282
2015-05-15 19:57:58 +00: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
Lucas Alvares Gomes 3dd4b0fa6e Remove unnecessary mapping from Agent drivers
Both vendor methods comes from the same VendorInterface, so no need to
use the MixinVendorInterface.

Change-Id: I9d6cea289555a79f1ccb1c6698809e196e9e4255
2014-09-05 09:54:06 +01:00
linggao bf0091e407 Interactive console support for ipminative driver
This patch adds interactive serial console support for ipminative
driver using shellinaboxd and pyghmi. A new class called
NativeIPMIShellinaboxConsole implements the ConsoleInterface.

Closes-Bug: 1359758
Change-Id: I9117c695af40044491fb7f213aa15e841e803d1c
2014-09-03 14:38:34 -04:00
Ruby Loo d511d6ca7a Add console interface to agent_ipmitool driver
The agent_ipmitool driver (ironic.drivers.agent.AgentAndIPMIToolDriver)
doesn't have a console interface. It should be using IPMITools'
IPMIShellinaboxConsole().

Change-Id: I780ff2df9ed1d673fa5f124efb73ca3ecd945c85
Closes-Bug: #1359466
2014-08-27 01:30:20 +00:00
Ramakrishnan G 05ef988f36 Add management interface for agent drivers
This commit adds management interface for the agent drivers
AgentAndIPMIToolDriver and AgentAndIPMINativeDriver, which is
required for setting boot device.

Change-Id: I90a9277357e490761567b76e13ca33da65ba476d
Closes-Bug: #1360224
2014-08-22 17:33:02 +05:30
Jim Rollenhagen 3e568fbbbc Add ironic-python-agent deploy driver
This commit adds a deploy driver for the ironic-python-agent
project. Caveats:

* Only basic functionality (deploy and tear_down) is implemented.
* Only whole disk images are supported.

Implements: blueprint agent-driver

Change-Id: Iebf8d8f756770549d6fcd1bb2fe94d2585d576b1
2014-07-30 23:27:11 +00:00