- 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.
This adds an API to allow manual cleaning of nodes, via
PUT /v1/nodes/<node_ident>/states/provision. The argument
'target' is 'clean', and the argument 'clean_steps' (the
list of clean steps to be performed on the node) must be
The API version is bumped to 1.15.
Ironic should be able to provide the requisite connectivity
information to the Neutron ML2 plugin to allow drivers to
provision the top-of-rack switch for the bare metal server.
The addition of portgroups in Ironic allows the concept of
link aggregation to be handled in Ironic in order to provide
support for cases where multiple interfaces on the bare metal
server connect to switch ports of a single LAG.
This commit includes changes to:
- the DB models (extension of port model and addition of portgroup
- the DB tests
Co-Authored-By: Laura Moore (email@example.com)
Co-Authored-By: Jenny Moorehead (firstname.lastname@example.org)
Co-Authored-By: Will Stevenson (email@example.com)
The API should not return tracebacks in a production environment. As
deployers often run services in debug mode, because OpenStack is hard to
debug, we should not return tracebacks in debug mode. To allow
developers etc to continue to use this feature, add a new config option
'debug_tracebacks_in_api' that maintains this behavior.
Also add to troubleshooting docs.
Replace HTTP 'magic numbers' (also known as unnamed numerical constants)
with constants provided by the http_client/httplib library.
For example, use 'http_client.OK' instead of '200'
This was done before in commit 107e064ca1c981480f12fad03fdd02d1f4847422
but a few more HTTP numbers have slipped in since that commit.
Attributes which are mandatory (ie, required for object creation) should
not be removable. However, some attributes (such as Node.chassis_uuid)
are not required for object creation, but should not be removable if
they are set. This commit does the following:
- rename JsonPatchType.mandatory_attrs to non_removable_attrs to better
describe its meaning,
- change its return type to set-of-strings for faster lookup
- ensure all mandatory attributes on the type being patched are
included in the set of non-removable attributes,
- add a new field, JsonPatchType._extra_non_removable_attrs, which
should be a set of attributes that are not required for creation but
should not be removed if set.
Since the object to be patched does not exist at patch-validation time,
we leave the validation logic in methods of JsonPatchType and
subclasses. This means introspecting the types to be patched.
This returns 'min_version' (minimum supported version), 'version'
(current/maximum supported version), and 'status' (of the version,
is 'CURRENT' for v1) in the response to a GET / request.
It makes our response to / very close to Nova's one, and will allow
us to implement a `ironic version-list` command similar to Nova's.
As this change is needed for proper versioning support on client
side, it's not versioned itself. Otherwise we'll have a
Co-Authored-By: Ruby Loo <firstname.lastname@example.org>
Follow up patch to fix the issues from the patch:
Prepare for functional testing
Fix comment in tests/unit/__init__.py
Changed name of base test class from 'FunctionalTest' to 'BaseApiTest'
Prepare for functional testing by creating two new directories:
Move all files currently in ironic/tests/* to ironic/tests/unit/
Update imports from 'ironic.tests.YYY' to 'ironic.tests.unit.YYY'
Fix any PEP8 issues due to longer lines