Now that we've released Pike and master is open for Queens
development, we need to remove the release mapping information
for Ocata, to prevent unsupported rolling upgrades from
Ocata to Queens. We only support rolling upgrades from Pike
to Queens (master).
Change-Id: I440b9a4c8ef6024a47b66b0de4fd841b7f15df2e
The policy-and-docs-in-code Queens goal outlines the work
required for projects to move policy into code and document the
operations and defaults.
This commit replaces occurrences of RuleDefault
with DocumentedRuleDefault where appropriate,
which requires additional attributes when used that supply more
documentation in rendered policy files.
Using DocumentedRuleDefault produces more descriptive generated policy
descriptons in 'configuration' section of ironic docs.
Change-Id: Idc35a5fbe2583e5fd712108a48eb9cec7cbecb76
Closes-Bug: #1716772
Currently ironic explicitly or implicitly sets the API urls
for most services in the config.
This is quite fragile and we should move to discovery from
the keystone catalog eventually.
To support this, this patch registers `keystoneauth1.adapter.Adapter`
options to all config sections for service clients auth.
Among others it exports `interfaces` option that we set to
['internal', 'public'] by default.
Other exported options are `service_type`, `service_name`, `region_name`
and `endpoint_override`.
The latter will eventually be used by all clients to specify a specific
endpoint to use (for example in noauth mode).
Effectively this patch starts to move all clients code to load client
configuration from config for all of auth, session and adapter.
The first to move is [service_catalog] section, with [conductor]api_url
option being deprecated in favor of [service_catalog]endpoint_override.
A sane default of 'service_type' = 'baremetal' is set for this config
section as well.
More patches moving other clients to consume these new options and
deprecate some other options will follow.
Change-Id: I1283ef3b4d736ac089df0cc74a5850a93b24b6ab
Partial-Bug: #1699547
Related-Bug: #1699542
SNMP timeout and retries are now configurable through ironic.conf. This
allows to have custom configurations when certain PDUs are slower than
others.
The config defaults are the same defaults that cmdgen.UdpTransportTarget
uses (1.0 second timeout and 5 retries). The config is now reflecting
these defaults.
Closes-Bug: #1640932
Change-Id: I2490902ad2e39e8e4dc34484799a0dae96bc57f8
This adds release '9.1' to the list of releases for doing
rolling upgrades.
This also changes the 'pike' release to point to '9.1' since
we are considering 9.1 as the official pike release. In actuality,
it makes no difference since the rpc & object versions are the
same for both 9.0 and 9.1
Change-Id: Id7913a56cd0848a68708a91e6ad055bdee08b465
We just released 9.0.0, so this adds '9.0' and 'pike' to the list of
releases that can be specified, for rolling upgrades.
Change-Id: Ib3d2c662f96c0c5eb308b3db5be1874dcc63a274
Rolling upgrades works so this removes the warning from the
help for the [default]/pin_release_version config option.
Change-Id: I0ba440a4136267e676370377394cee534505fdcd
Partial-Bug: #1502887
Now that we're getting close to Pike release and final releases for
libraries have been done, it's time to update ironic.conf.sample to
reflect any config changes from the libraries.
Change-Id: I8bf9615ca0fcf130a0ba241b48e06399d10610b3
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
The help string for [ipmi]/command_retry_timeout is incorrect. From Sam Betts [1]:
so looking at when this option was introduced ... it was originally introduced
by the ipminative driver which used it as the timeout for waiting until the power
state changed to the requested state. Reading between the lines in the commits
that added this option and documentation, the "setting this too low might break
things" comment originates from bugs in IPMInative. Later on the IPMItool driver
then overloaded this configuration option and changed its meaning by introducing
the min_command_interval config option. It continued to be used for the timeout
for waiting for requested state, but it also now contributed to the the number
of times a IPMItool command would retry retryable errors, which was/is worked out
by dividing retry_timeout by min_command_interval. Now IPMInative no longer in
tree I think we should clean up some of this information.
[1] https://review.openstack.org/#/c/482631/
Change-Id: I8cd8e25a2fb224d477799a2e561573406f9427a9
This is a follow-up patch to the patch so that the power status
is not retried if a power action fails:
ee5d4942a1c33736ffe05ec01619142be400c2f4
It addresses the comments as well as adds more clarification
and updates the documentation to refer to the new
[ipmi]command_retry_timeout config option.
Change-Id: Ib21544da260565ae399e2d07b32af9bd8b810280
Related-Bug: #1692895
This patch does the following:
* Adds osprofiler wsgi middleware
This middleware is used for 2 things:
- It checks that person who wants to trace is trusted and knows
secret HMAC key.
- It starts tracing in case of proper trace headers
and adds first wsgi trace point, with info about HTTP request.
* Adds initialization of osprofiler at start of service
- Initialize and set an oslo.messaging based notifier instance
to osprofiler, which will be used to send notifications to Ceilometer.
* Traces HTTP/RPC/DB API calls and SQL requests
NOTE to test this patch:
1) Make the following changes in localrc to configure DevStack to enable
OSProfiler:
enable_plugin panko https://git.openstack.org/openstack/panko
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler
# Enable the following services
CEILOMETER_NOTIFICATION_TOPICS=notifications,profiler
ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral
ENABLED_SERVICES+=,ceilometer-anotification,ceilometer-collector
ENABLED_SERVICES+=,ceilometer-alarm-evaluator,ceilometer-alarm-notifier
ENABLED_SERVICES+=,ceilometer-api
NOTE: the order of enabling plugins matters.
2) Run stack.sh. Once DevStack environment is setup, enable profiler options
in ironic.conf and restart ironic services:
[profiler]
enabled = true
hmac_keys = SECRET_KEY
trace_sqlalchemy = true
3) Use openstackclient and run baremetal command with
--os-profile SECRET_KEY
[--profile can be used, but it is deprecated.]
For example, the following will cause the <trace-id> to be printed
after node list:
$ openstack --os-profile SECRET_KEY baremetal node list
.....
.....
Trace ID: <trace-id>
Display trace with command:
osprofiler trace show --html <trace-id>
4) The trace results can be saved using this command:
$ osprofiler trace show --html <trace-id> --out trace.html
OSprofiler spec: https://review.openstack.org/#/c/103825/
Co-Authored-By: Tovin Seven <vinhnt@vn.fujitsu.com>
Co-Authored-By: Hieu LE <hieulq@vn.fujitsu.com>
Partial-Bug: #1560704
Change-Id: Icd3d7c62cf7442de8a77fc67f119ae9b03725f02
When ironic supports VLAN, the management network is usually not
the same as provision network, where TFTP server resides.
This patch adds a new configuration for socat address, namely
[console]/socat_address, and defaults to $my_ip for backward
compatibility.
Change-Id: I329a1707c74dc187d890231376e8ddf9eb36390b
Closes-Bug: #1691344
This change addresses review feedback from change
I55229f0ab37e657b7668dd4fe402fe6b5a6cda40 in the release
note, as well as the parameter text. Accordingly, the sample
configuration has been updated.
Change-Id: Ieea574f1bcc9b6c663aeb8d89475c1dd8cf6964d
This patch introduces following REST API endpoints to get/set volume
connector and volume target in Ironic.
- GET /v1/volume
- GET /v1/nodes/<node_uuid or name>/volume
- {GET, POST} /v1/volume/connectors
- {GET, PATCH, DELETE} /v1/volume/connectors/<volume_connector_uuid>
- GET /v1/nodes/<node_uuid or name>/volume/connectors
- {GET, POST} /v1/volume/targets
- {GET, PATCH, DELETE} /v1/volume/targets/<volume_target_uuid>
- GET /v1/nodes/<node_uuid or name>/volume/targets
This also adds CRUD notifications for volume connector and volume
target.
Co-Authored-By: Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com>
Co-Authored-By: David Lenwell <dlenwell@gmail.com>
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Change-Id: I328a698f2109841e1e122e17fea4b345c4179161
Partial-Bug: 1526231
- Adds new boot interface 'irmc-pxe'. Deprecates 'pxe' boot interface
from using with hardware type 'irmc'.
- Adds functions backup_bios_config and restore_bios_config to iRMC
management interface for implementing the BIOS BACKUP/RESTORE
mechanism supporting iRMC S4 hardware. The function backup_bios_config()
will be called automatically before deploying.
- Adds clean step restore_irmc_bios_config to restore BIOS config
for a node during automatic cleaning.
Change-Id: I04aa5bc2f5e287e048d0b52fee123e53ae2eaa99
Partial-Bug: #1639688
The old code blindly required power status even if the power action
failed. Now, it will retry the power action only when it detects a
retryable failure, and will only poll for power status if the power
action is successful. This patch also moves the logic for handling
waiting for power status into the conductor so that the logic is
standardised between drivers.
Change-Id: Ib48056e05d359848386ac057b58921f40b7bdd60
Co-Authored-By: Sam Betts <sam@code-smash.net>
Related-Bug: #1675529
Closes-Bug: #1692895
This is needed to fix the CI broken by glance switching to running
under wsgi, and thus breaking our assumption that glance is accessible
by host:port only.
The options glance_host, glance_port and glance_protocol were
deprecated. Standalone deployments should use glance_api_servers
instead.
Also removes two unused utility functions.
Change-Id: I54dc04ab084aeb7208c9dd9940c6434c029bf41c
Partial-Bug: #1699542
This extends versioned objects and uses the object's
convert_to_version() to perform conversions between different
versions of the object. This conversion is only done at the
"boundaries" of the api and conductor services. That is, when
reading/writing to the database and when serializing/deserializing
(for RPC). Internally, the services deal with the latest versions
of the objects.
Version column is introduced to make sure reading the DB object
versions happens transparently for the developer. An exception
is raised in case of a version compatibility error.
The version column is null at first and will be filled with the
appropriate versions by a data migration script in a following patch.
Change-Id: I34629a5cbab7ff3f246ea19c0cb766badc7061db
Partial-Bug: #1526283
Co-Authored-By: Ruby Loo <ruby.loo@intel.com>
To create a boot ISO for netboot with virtual media boot, ldlinux.c32
is required for syslinux 5.00 or later. This patch copies ldlinux.c32
in building ISO from general paths by default. A new configuration
parameter [DEFAULT]/ldlinux_c32 is added for another distribution
or feature changes.
Change-Id: I55229f0ab37e657b7668dd4fe402fe6b5a6cda40
Closes-Bug: #1694645
In commit[1], we allowed to specify permission to be applied to
TFTP directories using ``[pxe]/dir_permission``. This configuration
is an integer value. This patch adds a note stating that this value
should be an octal number.
[1] 0f7a85e1ecd7b3e7bdbc297f47a498139ed40107
Change-Id: Iba8d88bd6faba600d6b66d27f1700dae8dd29eee
This fixes a few grammatical issues with the description for
the [cinder] action-retries configuration option.
The ironic.conf.sample file is updated to reflect this change
as well as a couple of other changes from imported packages.
Change-Id: If010d57a518c60b951a20e45c6a6fa3b6f240c76
instead of specifying URL config options as StrOpt + regex enforcing
the string starting with 'http://' or 'https://'.
URIOpt is already available in minimal version of oslo.config that is
required by ironic.
Change-Id: I47089e215f730b3990004a66e0f35262a5f9d9bd
A cinder interface driver that can be called in order to signal
cinder to attach and detach volumes.
Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Co-Authored-By: Mike Turek <mjturek@linux.vnet.ibm.com>
Change-Id: I3d6bb126ef34b30f316ed5a10fd13a3106d1400b
Partial-Bug: #1559691
Currently method "_ensure_config_dirs_exist" creates tftpboot/<uuid>
dir with wrong permission. This is due to the system umask setting
which overrides the default permission of 0777 to 0755 or 0750. When
the permission is 0750, BM can't get deploy_kernel and ramdisk from
tftpserver. This may happen only when tftp process is launched from
other user than root and as result can't read files created by Ironic.
So this patch tries to fix the issue by explicitly changing the
permissions defined in the config option ``[pxe]/dir_permission``.
Change-Id: I3119ec7ae31bf82f716bf082fa4c3296d6aa3587
Closes-bug: #1655568
This updates etc/ironic/policy.json.sample so that the default
rules/values are commented out (since they don't need to be
specified).
The change was done by oslo-config-generator, the utility that
generates this sample.
Change-Id: I1df564992336862c00e3b7213e230f32cba3d789
The default log level of oslo.messaging was set on the python package
name, which means it didn't take effect for all logs. This fixes it
adding it on the namespace name as well.
Related-Bug: #1685148
Change-Id: I0263717b9fd4d3c6ee4083c71df9b4b26401a39b
Adds configuration parameter ``terminal_timeout``
to section [console] to allow operators to set the timeout
value for the Socat console session.
Change-Id: I9a83a3e2b2d16117df0f9c01b6c8b6c86639696c
Closes-Bug: #1675404
oslo.config 4.0 will check overridden value type by default[1],
which exposes a couple issues in Ironic:
- default_storage_interface is defined as ListOpt, when it should be
StrOpt.
- test_get_client_with_endpoint_override sets an invalid url for config
option url, which fails when checked by oslo.config.
[1] https://review.openstack.org/#/c/328692
Change-Id: Id166da73a41c8c46d9f3e239579d0cafb93bf69f
Closes-Bug: #1517839
The way it is done in this patch is recommended by the oslo.config
documentation in [0], so that the updated default_log_levels value
is correctly reflected in the generated ironic.conf.sample file.
An oslo.config.opts.defaults entry point is added.
[0] https://docs.openstack.org/developer/oslo.config/generator.html
Change-Id: Ic200e8d0d721a6c94bd17068a6e5000db930eefd
This is a follow up to 459fe314fa65111d4b1fd4f8210117903a778093
Minor issues in the code and tests are fixed, the release note is added,
configuration options are described as part of not yet exposed feature.
Change-Id: Ib466ee3970dcc1e141ddac38a54544f6a011549e
Partial-Bug: #1559691