init_host currently sets self._driver_factory and self.drivers, but
those aren't used elsewhere in the code. Don't set them as instance
attributes, but rather let them be discarded after init_host.
Additionally, BaseConductorManager._get_driver appears to be a copy of
driver_factory.get_driver; just proxy over to the driver_factory method
instead.
As tests appear to enforce ordering of the drivers in init_host, use an
OrderedDict in driver_factory.drivers() to maintain this. I don't
believe this is required for correctness, however I don't intend to
change behavior in this patch.
Change-Id: I861980d4402a7b0744376c274ce15631547368f3
I39637e22c344703ad48fc271f6f866aa018bbdd1 introduces the use of wipefs
to clean a disk, this through the ironic_lib.disk_utils module. wipefs
has been added to ironic_lib's rootwrap filter filter as expected.
We need to keep this one in sync because:
- of the gate: devstack uses it instead of the one from ironic_lib
- to preserve exsisting deployed installation where ironic_lib's filter
is not properly deployed yet.
This commit also comes with a NOTE message to explain the situation.
Change-Id: Id69706d7a78ff37a360cc23d6a076bc13bbdf14c
Instead of using assertFalse(A * B) / assertTrue(A * B),
developers should use assertEqual/NotEqual/Less//Greater
The * operator: '==', '<', '>'
Change-Id: Ic4952ee034c8c8f6da70403cb767bb027058eeb0
The previous requirement was restricting any upgrade in the minor
version field of the python-oneviewclient library. According to
semver, only changes in major version field denote backwards
incompatible changes.
This patch changes the current upper limit from <2.1.0 to <3.0.0 --
where backwards incompatible changes are expected.
Change-Id: Id8880ad7cafaee1818a8aef6cbaec98b534b0ab1
Exception might be raised as result of async worker thread execution
but thread does not set last_error field. Add a functionality to
write error message to last_error in TaskManager for that case.
Typical use cases: quick debug, help with vendor's methods.
Change-Id: I98e287fa8438c833ee3834409f872304323b0373
This patch follows up nits of the commit [1], that includes exception
message update and release note typo fix.
[1] 37590a86338e94845c74e1b1f7d8d6f61003d447
Change-Id: I07de363d37dcd2bdd58a492e731c565094a5b5d3
Name is an optional property and should be removable(set back to None).
Enable removing name when updating node with 'remove name' argument.
Also add test cases for that.
Change-Id: Ie89b6bd80ac773b357861ca8dc77f72fdc137aed
Closes-Bug: #1533248
- set/unset node tags
- get node tags
- add/delete single tag
- check whether node tag exists
- Delete all tags attached to the node when it's destroyed
This will not support creating node with tags, just ignore
the specified tags.
Change-Id: Ibe83a726d904fd33b8550c8bec134cf05644560e
Partial-bug: #1526266
This commit updates the proliantutils version required in Ironic
to 2.1.6 for Mitaka release. This version of proliantutils
includes defect fixes and feature enablement related to iLO based
firmware upgrade.
Change-Id: Ic895dcbf70fa0cc02d49e17bc8e9d2de40ab9ec8
Configuration options has a parameter called "deprecated_for_removal" to
indicate that one option is planned to be removed in a future release.
This patch is extending the config generator script to add this
information to the output .sample file.
Change-Id: I3d3a69ea9ca700edf96ede947ff7b074e7978484
Closes-Bug: #1549351
In Ia575ba803a0fb70f39146bd75d381ed19414bd23, oslo.context
added roles support in the context itself. Once that change
is released in oslo.context and the global requirements has
been updated, we should switch to passing in the roles in
the __init__ parameter. Until then we should set
self.roles *after* the constructor since the constructor
sets the roles to None when the new library gets released.
Closes-Bug: 1549317
Change-Id: Ie28a4144ccac5d6894405ba7f801617376e35c51
This change switches the conductor to using Futurist library executor and
periodic tasks worker instead of oslo.service periodic tasks. This allows
running periodic tasks in parallel and relying on more standard interfaces
(futures, executors) when dealing with asynchronous execution.
A green thread executor is used instead of using an eventlet green pool
directly. The maximum number of workers is taken from the existing
workers_pool_size configuration option, and no tasks are allowed
to be enqueued to mimic the previous behaviour (might be lifted later).
The periodic tasks worker is using the same executor, and its main loop thread
is also running on it. For this reason minimum value for workers_pool_size
is now 3: periodic task main loop, keep alive thread and at least one thread for
other tasks. A special decorator for driver-periodic tasks is now deprecated,
as the generic decorator can be used there as well.
Closes-Bug: #1526277
Change-Id: I57bf7cebfb6db805b6c521bacfef2993b16ce1ee
Had five copies of the def _from_db_object() function in various
classes. Move this function into their common base class.
Change-Id: I543386a708d80f7c89455e556e2abc6d532661b0
It should be replaced by SERVICE_PROJECT_NAME and was removed
in the review I824b1121842eb5821034071874bf1bb2d7c3631e.
Change-Id: Icd03119788d17de221293bce4c0d628df42fdb9b
Automated cleaning fails for iLO driver if iLO is in System POST
state. iLO does not allow setting of boot device when it is in
System POST state. Node needs to be powered off before initiating
boot for cleaning.
Closes-Bug: 1536730
Change-Id: Icd0f39d718aabdcad56636e662dec788c4e1b427
This patch is adding support for deploying nodes with the pxe_ipmitool
driver and VMs.
The patch adds a dependency on the "virtualbmc" utility which is
responsible for creating a virtual/fake BMC that handles the IPMI
commands (using pyghmi.bmc) and convert it to calls to the
python-libvirt library.
The function "is_ironic_hardware" was converted into a variable called
"IRONIC_IS_HARDWARE" which can be set to True/False to indicate whether
DevStack is being setup for baremetal or VMs.
Partial-Bug: #1544642
Change-Id: I5edc51c7fc8b6f0bb7fe4ca129596709a32eb93e
Prior to this patch devstack only supported installing diskimage-builder
directly from pip. This patch adds support to also install it from git.
This is needed so we can run tests on the diskimage-builder gate to test
against Ironic.
Depends-On: I6cefac1eb4ebf0196a6b4d4bfc038c00921f0d70
Change-Id: I894b20fc41c195202d2545f6de2791cd6a1b1a30