Adds a new node field "manage_boot" to store this value. When it is set
to False, neither boot device nor power state are touched for this node.
Instead, we expect a 3rd party to handle them.
We still manage the PXE filter because the node may need DHCP.
Change-Id: Id3585bd32138a069dfcfc0ab04ee4f5f10f0a5ea
Story: #1528920
Task: #11338
The fake classic driver will be removed this release.
Depends-On: Ia0e95cbc1bb4dbd32793705b876ab8b474b753ad
Change-Id: I85f2a2a3ed1ca689c639c60e86853c821e808105
Option auth_uri from group keystone_authtoken is deprecated[1].
Use option www_authenticate_uri from group keystone_authtoken.
[1]https://review.openstack.org/#/c/508522/
Change-Id: Ie0d7c4268a49d3d3c6928b10987dd5eeede683d6
The devstack example configuration is synchronized with
https://docs.openstack.org/ironic/latest/contributor/dev-quickstart.html
Also remove setting IRONIC_VM_LOGS_DIR from the example local.conf,
as it does not work, at least not on CentOS.
Change-Id: Ife51165742a8b762e84d5ac7ad807480669bfedb
Now we have docs, lets point people there rather than attempting to
maintain a copy in tree.
Also update the devstack plugin to build ironic.conf from scratch rather
than from the sample.
Change-Id: Id65a4f803832fefe467d59147c39d2dea604ed3c
The openstack-ironic-discoverd package is no longer maintained in Fedora,
this patch removes it from the document.
Change-Id: I51eee948c039c3be9f6438eb07bd6ac825036888
1) Update doc links according to OpenStack document migration
2) Use https instead of http for docs links
Change-Id: Ic6ae704cc097e5f27d7f37e5a773f55f0c79a617
Multiple spots were not using DB transactions when processing the terminal
state transitions (error, abort, finish, timeout). The pattern looked like
this:
node_info.fsm_event(istate.Events.error)
# more code
node_info.finished(error='Oops!')
which led to brief periodes of state inconsistency of NodeInfo records in
the DB.
This patch refactors the NodeInfo.finished() method to require a terminal state
transition to perform as part of the NodeInfo state update:
NodeInfo().finished(istate.Events.finish)
NodeInfo().finished(istate.Events.abort, 'Canceled by operator')
This patch also introduces a new state: aborting to allow the inspector to
try call power-off the node before marking the introspection aborted.
There's a new DB migration since the new state implies a schema change too
(Enum).
Closes-Bug: #1721233
Closes-Bug: #1721230
Closes-Bug: #1723384
Change-Id: I0bb051d1956a996ed006d55a5ca2d670d9455047
This is a follow-up patch to address documentation nits from the patch:
I63fe91ee4f9ac3021bcfd9a4a378af56af800fac
Change-Id: If3e4ac1fcc3d3be1508086db122a11df71e7e3e6
A PXE filter driver is introduced that works by configuring and controlling
the dnsmasq service.
Closes-Bug: 1693813
Related-Bug: 1665666
Change-Id: I63fe91ee4f9ac3021bcfd9a4a378af56af800fac
The 'ironic' CLI is going to be deprecated [1]; the 'openstack baremetal'
(OSC) CLI should be used instead. This changes the documentation to refer
to the OSC CLI.
[1] https://bugs.launchpad.net/python-ironicclient/+bug/1700815
Change-Id: I737ba38c6130e7ba123368b6081c4923d1423d98
this patch introduces an oslo.policy-based API access policy
enforcement engine to ironic-inspector.
As part of implementation, a proper oslo.context-based request
context is also generated and assigned to each request.
Short overview of changes:
- added custom RequestContext class
- extends oslo.context to handle of "is_public_api" flag
(False by default)
- added context to request in each API route
- '/continue' api sets the "is_public_api" flag to True
- added documented definitions for API access policies and their
defaults
- added enforcement of these policies on API requests
- added oslo.policy-specific entry points to setup.cfg
- added autogenerated policy sample file with defaults
- added documentation with autogenerated policies
Change-Id: Iff6f98fa9950d78608f0a7c325d132c11a1383b3
Closes-Bug: #1719812
As described in https://bugs.launchpad.net/puppet-ironic/+bug/1714320,
a loop can occur in which dnsmasq always indicates ipxe.efi as the
bootfile if the client request has both UEFI and iPXE options set.
This fixes the documentation for the example dnsmasq.conf so that
loop won't occur.
In addition, some UEFI clients use architecture type 9 so that is
added to the example dnsmasq.conf.
Related-Bug: 1714320
Change-Id: Icdefba2b1be47622c9bd9c3bfb9b3413964c9dac
Documentation layout aligned with the OS standards.
The configuration page refactored, configuration options
documentation automatically generated by
oslo_config.sphinxext.
Closes-Bug: #1706175
Change-Id: I544d92d64833c0887b14509063334c39a0c428f1
If node receiving DHCP address and failing to get kernel and/or
ramdisk, it maybe the selinux is enforcing.
We can let TFTP packet through selinux by setting:
setsebool -P tftp_home_dir 1
Change-Id: I574f8fdf819ea65dd9177c5ce9a78825ea4feec1
Moving the installation and upgrade guides down the mandatory directory
structure. Had to change the upgrade headline level.
Partial-Bug: 1702142
Change-Id: If00d2e3d90ac89421c51d1b1530d7cc685fad78f
Moving the contributor "link" and API down the mandatory directory
structure.
Change-Id: I111cd55a06e40dc4db649728a5025354a85b3e1d
Partial-Bug: 1702142
This experimental feature was deprecated in the Ocata release,
as it was found unstable, untested and dangerous.
API version is bumped to 1.12 to indicate this change to users.
Change-Id: I1aad6ddfd03946edc19ae510accd6c8daf5fc268
Closes-Bug: #1654318
pydot2 is incompatible with python3[1]. Bumping the pydot release (through
the test-requirements.txt) rather than pinning basepython to fix this.
Also updating the states.svg with the tox -egenstates result of running
pydot3
[1] https://github.com/erocarrera/pydot/issues/107
Change-Id: I9aa0e701af3915b39e1a5681c2105a6afb687dd2
Depends-On: I82e3651eefd3186c9e131b0db29a328967fb3161
While reviewing the API--Worker split spec we discussed the issues
following from selecting oslo.messaging as the queue implementation.
Because of the at-most-once semantics of oslo.messaging it may well happen
that a task will end up hanging indefinitelly in an active state.
This change allows the node_cache.clean_up() function to pick-up these
"tasks" and "terminate" them by setting the error state.
Change-Id: I696f14d486f10d84aaae5675446138ebdd047ecd
Depends-On: Iaeb99ab1954a1d5303c9bd10b81f7f8d6aa7e731
When using the Inspector rules API to query existing introspection
rules, inspector does not return 'invert' or 'multiple' attributes of
conditions associated with the rules.
Change-Id: I08606cea676ecf57bbb3b73077c4832240fbe0d2
Closes-Bug: #1670372
Exception along the `starting` inspection code may causes
`no defined transition` error as there is no transition for
`starting` state on timeout event.
Also it could happen if small timeout configured, so there
is not enough time for starting -> waiting transition,
e.g. new greenthread spawn is blocked due to missing of
available slots.
Closes-Bug: #1662494
Change-Id: I66cf0374a2ba4ab4692110daafd4a3d2d20d56d6
This adds the node state when the GET /v1/introspection/<node uuid or
name> API is performed.
Change-Id: I81c6834933f789cb644a854313aacaf49a4856a7
Closes-Bug: #1665664
Set it to True for the PXE-booting port, to False for all the others.
Create an extended functional tests covering various operations with ports.
Change-Id: I435a5c04884b6c4da70cb7260b305fbde23eebc0
Closes-Bug: #1667472
This change uses the processed lldp stored by the lldp_basic plugin
to populate the local_link_connection port_id and switch_id.
If processed lldp data cannot be found, the raw lldp data is processed by
this plugin as currently implemented. This patch changes the
processing to use the construct lib as implemented in the common
definitions in lldp_tlvs.py to parse the LLDP TLVs.
A minor change is also made to pass node_info into warning log messages.
Change-Id: Iae3fa41736898df2c73350d8dc61ed24f2963e32