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 adds additional constraints to the help messages for the
enabled_*_interfaces config options. It also checks if they are
empty at conductor startup, and if any are empty, errors out
with a better error message than previously provided.
Change-Id: I97fc318ce00291d5e43b70423930981c2f5a2de0
Partial-Bug: #1524745
The method _send_sensor data is executed in a single
thread for all nodes consequently and slow down
collecting sensor data process.
This makes this task concurrent by node distribution
among configured in conductor number of workers using
synchronized queue.
Change-Id: Ic97bd798f2aa74998d185b6f50635f5862a677f5
Closes-Bug: 1642285
The configuration option [deploy]/erase_devices_iterations was
deprecated in the Newton cycle (6.0.0). It is no longer supported.
The option [deploy]/shred_random_overwrite_iterations should be
used instead.
Change-Id: I808849a94c862b59f7e78c94409f2dd8d6f7eaea
Fixes-Bug: #1660838
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
This patch enhances iRMC power driver to support SOFT_REBOOT_SOFT and
SOFT_POWER_OFF.
Partial-Bug: #1526226
Change-Id: I8c69904063ac0a9e042f54158a20347f0c2325e1
This patch updates the generic management interface and adds a new
REST API to support the injection of Non-Masking Interrupts (NMI) for
a node. This feature can be used for hardware diagnostics, and actual
support depends on a driver.
Partial-Bug: #1526226
Change-Id: I08d74f5ccbc386baca1fb29e428fe01924499d45
Glance V1 is deprecated we should start switching off it. Even more,
some features in Ironic already require V2 anyway.
This change switches everything to V2 by default, while leaving an option
to get previous behavior back. Features that already required V2 are
not affected by this option.
Change-Id: I6947a150fefb7fe3028a0a7c5208c6c343be8e0d
Closes-Bug: #1657475
This registers the intersection of supported and enabled interfaces for
each hardware type enabled in the conductor at conductor startup, and
unregisters them at conductor shutdown. Validation is left as a todo for
now.
Change-Id: I14e88bfc304de9414de008d1cc8568dda9115ecc
Partial-Bug: #1524745
We already have a check in Inspector.create_if_enabled. This additional
check prevents normal use of Inspector with hardware types, as it's not
enough to add "inspector" to "enabled_inspect_interfaces" to use it.
Change-Id: Iff29785002cd978702317d50ce52bdcebe06d0e3
Partial-Bug: #1524745
This patch adds the REST APIs for the virtual network interface API in
order to abstract the task of assigning logical network interfaces to
physical network interfaces.
Since Newton Ironic provides an interface for pluggable network
implementations. Different network implementations may want to handle
how logical to physical network interface assignment happens. To do this
the new API calls into new functions on the network implementation
loaded for the specified node.
This is part 3 of 3, and adds the node vif subcontroller to expose the
/nodes/<ident>/vifs REST API endpoint. API version is bumped to 1.28.
Co-Authored-By: Vasyl Saienko (vsaienko@mirantis.com)
Change-Id: I70f1166a15a26f392734e21d6bc30a03da4e5486
Partial-Bug: #1582188
This is needed to check the config-drive labels properly,
as the current way using blkid was failing under some use
cases. So we switched to lsblk instead.
Change-Id: I3676cd8e5c5e61fe4e3f67ab9e121c4cd0cd599b
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
In order to properly support booting and maintenance of
systems that boot from a remote storage device, we need an
interface to associate the driver with.
This commit adds a basic storage_interface and noop and fake
interfaces along with the appropriate handling for configuration
in the event that the driver list is blank, or is missing the
noop driver.
Co-Authored-By: Stephane Miller <stephane@alum.mit.edu>
Change-Id: Ib21eda88f207f18675c8580cd7fd37eab6fd70bf
Partial-Bug: #1559691
This change adds ironic.drivers.generic.GenericHardware which contains
useful defaults. Other hardware types are recommended to derive from it.
Add reasonable vendor-independent defaults to enabled_{deploy,raid,boot}_interfaces
configuration options. Add an entry point for "inspector" inspect implementation.
Also adding ironic.drivers.generic.ManualManagementHardware. This hardware
type is mostly introduced to make unit testing of GenericHardware possible.
However, it also has a potential use case: hardware not covered by
an existing driver or when an existing driver misbehaves. I personally
know people using fake_pxe currently in production for such use cases.
Change-Id: I328191524eb71c2ef51fec02c9cb28087dcf663b
Partial-Bug: #1524745
This change adds mode and properties fields into portgroup object
and adds a new API microversion to work with them.
It also makes portgroups' address field optional for all API
microversions.
Partial-Bug: #1618754
Change-Id: Id8c62fa56908040b0df16cc54c122ce2473a4587
This change introduces a new module ironic.drivers.hardware_types
with AbstractHardwareType class. It also updates driver_factory
code to support loading hardware types and creating dynamic drivers.
Interfaces validation code extended to cover hardware types.
This change also introduces the FakeHardware class for testing.
It is special-cased to bypass compatibility validation completely.
No hardware types are loaded on conductor start up yet, as hardware
types still do not participate in the hash ring. Thus, nodes with
hardware types cannot still be created via HTTP API.
Change-Id: If8e3342baf818a9e37aa82b43aec71898d48c29b
Partial-Bug: #1524745
Add regex validation of api_url specified in configuration file.
Oslo config will raise exception if no supported protocol prefix
is included in Ironic api address in configuration file.
Supported protocols are http and https.
Regenerated the config file.
Change-Id: Iabe576134d804211d7f552bfd5a76c404524ffef
Closes-Bug: #1630785
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
If audit is enabled ironic API service does not start with default
value (None) of "ignore_req_list" config option. This patch changes
default value to empty string. Related modification added to ironic
sample config.
Closes-Bug: 1648387
Change-Id: Ifbbbed4012670b4b05fcf63e5586024f3c927875
This updates the help string for [neutron]provisioning_network
configuration option to indicate that the value can also be a
network name.
The release note for this new configuration option is also
updated.
This is a follow up to b6a2919b6198c8fb24d6f7e597f79a08f6ffe049.
Change-Id: I5773b20c5578fa4d14f80de9119e442edfe98dd0
This change fixes nits mentioned in reviews of commit 295b35c48f7dcc
* Renaming ironic_api_audit_map.conf.sample file to
api_audit_map.conf.sample
* Doc change --> changing to [oslo_messaging_notifications]/driver
as notification_driver is deprecated
* Renaming path_keyword vendor_passthru in api_audit_map.conf.sample
Change-Id: Ib073598cea1e9acc9788e2db85f814f0295134ef
Names are easier to use for humans, so let's allow them.
The actual name -> UUID convertion happens during validation and its
result is cached for each interface instance.
This change will allow recreating a network without changing Ironic
configuration or setting a network name in advance (e.g. by an installer).
Note that when names are used, an administrator is responsible for ensuring
that no other networks have the same name (names are not unique in Neutron).
Change-Id: I9905bdc3f778310ba191b2bed6eb11bad11a2846
Closes-Bug: #1614938
This patch adds support for Neutron Security Groups
to the baremetal severs when neutron network interface is used
for deployments.
Specifically, this patch adds support so that security
groups could be specified (and applied) for provisioning
and cleaning networks.
Change-Id: I0cf652bdd220480b104e478f2096bf89a9ba8bdf
Partial-bug: #1594242
This change also removes most of the logic from ironic's
RequestContext to reuse the oslo_context as much as possible.
Usage of domain_id and domain_name in policy files is deprecated
and their support will be removed in the Pike release. domain_id
field was removed from the context class completely, domain_name
value now mathces the oslo_context expectations.
ContextHook is changed too so as not to duplicate from_environ
functional from oslo_context.
to_dict method left as is, so that we don't break an older service
receiving the context over RPC. It will be changed in Pike release
to reuse the base oslo_context class' to_dict.
Closes-Bug: #1602081
Closes-Bug: #1627173
Closes-Bug: #1641972
Co-Authored-By: Jamie Lennox <jamielennox@gmail.com>
Co-Authored-By: Devananda van der Veen <devananda.vdv@gmail.com>
Change-Id: I9afe89bc6aee282ee4b7579d661e3fa83cc0ce84
This patch adds the portgroups API object and REST controller
to Ironic. Additionally this patch provides a PortgroupsCollection
class and PortgroupsPatch class. API version has been bumped to 1.23.
This commit includes changes to:
- the API (addition of portgroup API)
- the API tests
Partial-bug: #1618754
Co-Authored-By: Jenny Moorehead <jenny.moorehead@sap.com>
Co-Authored-By: Will Stevenson <will.stevenson@sap.com>
Co-Authored-By: Vasyl Saienko <vsaienko@mirantis.com>
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Co-Authored-By: Zhenguo Niu <Niu.ZGlinux@gmail.com>
Co-Authored-By: Michael Turek<mjturek@linux.vnet.ibm.com>
Change-Id: I03ab55c15c1ee2fdd4b2786e366f9502c1ad8972
'writable' is more common than 'writeable' in the commit message.
http://wikidiff.com/writable/writeable
Change-Id: I45aa36014f910f34e6d1a6bb3488887482c80ce3
This is the first step to changing the default boot option from netboot to local.
The new configuration allows setting the default boot option globally.
A warning is issued if no explicit value is provided for this configuration.
Change-Id: I3bd4a165fa2ec1105f34bf5a2150da99136ba4a6
Partial-Bug: #1619339
Ironic is flexible for x86/x86_64 servers by supporting BIOS and UEFI.
But to deploy servers of other architectures, such as aarch64 or ppc64,
configuration(PXE boot file and config template) must be modified,
which means one Ironic conductor can only deploy baremetal machines of
one architecture.
This patch adds multi arch deployment support. For example, to deploy
x86_64 and aarch64 servers by one Ironic conductor.
Closes-Bug: #1582964
Change-Id: I628320aeb44b232a262d0843bc726a68d297e1f8
For now we have to carry both in both trees, and they have gone out
of sync. This changes updates the copy here with two new commands.
Change-Id: Ife131cf825518012a3b04d2c7d713beeb4f8f770
This patch is changing the default bootloader for PXE + UEFI to Grub2.
Prior to this patch Elilo was the default but, Elilo is no longer
maintained with the last release dating 2014.
Ironic should have sane defaults therefore we should not rely on an
unmaintained project.
Change-Id: Ib34fcbd37e4698bf272582c96b1540b511b5a892