28 Commits

Author SHA1 Message Date
Vladyslav Drok
68a5e31a54 Mock out the correct greenthread sleep method
It seems at some point oslo_service loopingcall started using
eventletutils from oslo_utils to sleep during the loopingcall
retries, and some untittests started taking up to 40 seconds
to complete. This change mocks out the correct method offering
significant speedup to unittests' run time.

The EventletEvent class is introduced to eventletutils in version
3.38.0 so lower constraints are bumped as well.

Change-Id: Id7e6ff2a4748b5301e2259acdc760ac7f56b96c3
2019-11-20 17:52:33 +01:00
Steve Baker
7ebad2e344 Allow vendor_data to be included in a configdrive dict
configdrive can contain a vendor_data2.json file containing key/value
pairs injected by nova's vendordata mechanism[1].

This change lets Ironic accept a vendor_data key when configdrive is
provided as json, allowing parity with nova.

This change requires an openstacksdk release 0.37.0

[1] https://www.madebymikal.com/nova-vendordata-deployment-an-excessively-detailed-guide/

Change-Id: Id990b970619a113c5d5ead47fb550870d91b5e04
Task: 36756
Story: 2006597
Blueprint: nova-less-deploy
2019-10-31 08:55:39 +13:00
Riccardo Pittau
61c8364703 Raising minimum version of oslo.db
oslo.db was not compatible with Python 3.7 until version 4.40.0
because Python 3.7 makes "async" a keyword [1].
To prevent bad surprises, this patch increases the minumum version
required for oslo.db to 4.40.0.

[1] https://review.opendev.org/574833

Change-Id: I3271fd2d7d81261db6da079e55fb87656c833686
2019-10-07 14:50:58 +02:00
Kaifeng Wang
9aab525d45 Build pdf doc
The is one of community goals that each project could produce a
single PDF file. The pdf should be in the output of openstack-tox-docs
job.

TeX packages are required to build PDF locally, following is recommended:

* inkscape
* texlive-latex-base
* texlive-latex-extra
* texlive-fonts-recommended

More about the goal:
https://governance.openstack.org/tc/goals/train/pdf-doc-generation.html
https://etherpad.openstack.org/p/train-pdf-support-goal
https://etherpad.openstack.org/p/pdf-goal-train-common-problems

Change-Id: Icf1e4b58675b23e82ee6f6d79eb8852436ed55bb
2019-09-06 14:50:02 +08:00
Zuul
e518bebe03 Merge "Support power state change callbacks to nova using ksa_adapter" 2019-08-24 02:20:13 +00:00
Surya Seetharaman
d693d4c06c Support power state change callbacks to nova using ksa_adapter
Add power state change callbacks of an instance to nova by
performing API requests. Whenever there is a change in the
power state of a physical instance (example a "power on"
or "power off" IPMI command is issued or the periodic
``_sync_power_states`` task detects a change in power state)
ironic will create and send a ``power-update`` external event
to nova using which nova will update the power state of the
instance in its database. By conveying the power state changes
to nova, ironic becomes the source of truth thus preventing
nova from forcing wrong power states on the instance during
the nova-ironic periodic sync. It also adds the possibility of
bringing up/down a physical instance through the ironic API
even if it was put down/up through the nova API.

Note that ironic only sends requests to nova if the target
power state is either "power on" or "power off". Other error
states will be ignored. In cases where the power state change
is originally coming from nova, the event will still be
created and sent to nova and on the nova side it will be a
no-op with a debug log saying the node is already powering on/off.

NOTE: Although an exclusive lock (task_manager.upgrade_lock()
method) is used when calling the nova API to send events,
there can still be a race condition if the nova-ironic power sync
happens to happen a nano-second before the power state change
event is received from ironic in which case the nova state will
be forced on the node.

Credit for introducing ksa adapter: Eric Fried <openstack@fried.cc>
Depends-On: https://review.opendev.org/#/c/645611/
Part of blueprint nova-support-instance-power-update
Story: 2004969
Task: 29424

Change-Id: I6d105524e1645d9a40dfeae2850c33cf2d110826
2019-08-12 19:29:57 +02:00
Dmitry Tantsur
d6774c294d Use openstacksdk for accessing ironic-inspector
Change-Id: Ibe4f6bf0b38364b5dd214e6c7e58d45a4d71ffdf
2019-07-31 15:23:39 +02:00
Riccardo Pittau
8d8402ee12 Clean lower-constraints.txt
Reduce the number of packages in lower-constraints.txt based on:
requirements
test-requirements
doc/requirements

Change-Id: I33e434347f6ca3ed0e3f86c28c62b5bdd63d7afb
2019-07-19 16:08:06 +02:00
Zuul
78085ad549 Merge "Bump keystonauth and warlock versions" 2019-07-19 12:45:20 +00:00
Riccardo Pittau
2d5f0c8b91 Bump keystonauth and warlock versions
openstacksdk 0.25.0 requires keystoneauth1>=3.11.0
python-glanceclient 2.8.0 requires warlock!=1.3.0,<2,>=1.0.1

Change-Id: Iaf80327538d2395fe61bd0e77743d1b6021a66f7
2019-07-15 18:08:42 +02:00
翟小君
1becd6dda9 Bump openstackdocstheme to 1.20.0
Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.

Change-Id: I308c3296bc56fdb623a9fc6b021c388be2d33330
2019-07-02 10:18:03 +08:00
Zuul
adecc670f7 Merge "Incorporate bandit support in CI" 2019-06-19 05:45:10 +00:00
Zuul
d1e842c4b4 Merge "Switch to use exception from ironic-lib" 2019-06-12 07:33:26 +00:00
Riccardo Pittau
f5dbf8ba0c Switch to use exception from ironic-lib
The exception modules in ironic and ironic-lib contain the same
almost identical class IronicException.
With this patch we directly use the one in ironic-lib.

Updating requirements and lower-constraints to use compatible
version of ironic-lib.

Also deprecating duplicated fatal_exception_format_errors
option.

Change-Id: I1ce0d12d912020346425fd658d3b1807607455a4
Story: 1626578
Task: 10515
2019-06-11 12:03:44 +02:00
Kaifeng Wang
caf925349a Incorporate bandit support in CI
Change-Id: I0ffe0c12e9e32f32d2b400b5756fc2148a2993a0
Story: 2005791
Task: 33518
2019-06-10 09:26:04 +08:00
Ilya Etingof
234dea98bb Bump lower mock version to 3.0.0
Previously used mock 2.0.0 has a nasty bug which prevents mocking
`@staticmethod` callables [1][2].

1. https://github.com/testing-cabal/mock/blob/master/CHANGELOG.rst#300
2. https://bugs.python.org/issue23078

Change-Id: I38d78cb8de92e9ecfc3dda5ffafcb4ffe175169e
2019-06-04 17:05:01 +02:00
Dmitry Tantsur
c36a01a439 Publish baremetal endpoint via mdns
This change adds an option to publish the endpoint via mDNS on start
up and clean it up on tear down.

Story: #2005393
Task: #30383
Change-Id: I55d2e7718a23cde111eaac4e431588184cb16bda
2019-05-23 17:11:50 +02:00
Jan Gutter
d52aacd29d Bump sphinxcontrib-pecanwsme to 0.10.0
Sphinx 2.0 requires at least 0.10.0

Depends-on: I50f778e639acd2b4d9b0069a0081ff78b574ba7c
Change-Id: If88c529a60b0a58eb9439af1115ab558b6d7f6dd
Signed-off-by: Jan Gutter <jan.gutter@netronome.com>
2019-04-02 14:52:39 +02:00
Kaifeng Wang
2eceb3c8ab Fix lower-constraints job
lower-constraints job is broken due to fail to install psycopg.

Spotted log:

http://logs.openstack.org/02/642402/6/check/openstack-tox-lower-constraints/ca317fe/job-output.txt.gz#_2019-03-14_01_51_01_006156

Add libpq-dev to the bindep and bump psycopg version to >= 2.7 as evidence
shows it has a bug to support PostgreSQL >= 10.0 [1]

[1] https://github.com/getredash/redash/pull/2111

Change-Id: I1d5f0dab41638be1df9d63ede267f5a6d9f8c566
2019-03-14 17:24:09 +08:00
Dmitry Tantsur
3e1e0c9d5e Allow building configdrive from JSON in the API
Extend the API with the ability to build config drives from meta_data,
network_data and user_data, where meta_data and network_data are JSON
objects, and user_data is either a JSON object, a JSON array or
raw contents as a string.

This change uses openstacksdk (which is already an indirect dependency)
for building config drives.

Change-Id: Ie1f399a4cb6d4fe5afec79341d3bccc0f81204b2
Story: #2005083
Task: #29663
2019-03-05 19:14:56 +01:00
Mark Goddard
ec2f7f992e Deploy templates: API & notifications
Adds deploy_templates REST API endpoints for retrieving, creating,
updating and deleting deployment templates. Also adds notification
objects for deploy templates.

Bumps the minimum WSME requirement to 0.9.3, since the lower constraints
job was failing with a 500 error when sending data in an unexpected
format to the POST /deploy_templates API.

Change-Id: I0e8c97e600f9b1080c8bdec790e5710e7a92d016
Story: 1722275
Task: 28677
2019-03-04 10:30:16 +00:00
whoami-rajat
1f1a2c3bd8 Add ironic-status upgrade check command framework
This adds basic framework for ironic-status upgrade
check commands. For now it has only "check_placeholder"
check implemented.
Real checks can be added to this tool in the future.

Change-Id: I7d5f018656322b92c663a2adaaf6330a55c00fb8
Story: 2003657
Task: 26133
2018-11-01 19:58:13 +00:00
Yolanda Robla
f532ec4f70 Enable configuration of conversion flags for iscsi
Add an option conv_flags, that will be passed at ironic.conf into
iscsi section. This will pass the conv_flags option to the iscsi
disk utils, and this will modify the behaviour of the image
copy to disk. It can be used for things as optimization (adding
an sparse flag)

Change-Id: Ia9e11dda35bb06e5b37b00e1b8fb42f9267a95d6
Story: #2004124
Task: #27573
2018-10-19 16:59:29 +02:00
Michael Turek
8f89954f9a Pass prep_boot_part_uuid to install_bootloader for ppc64* partition images
This patch gets the PReP Boot partition UUID when performing a local boot
partition image deployment on ppc64* hardware.

Depends-On: I8f9748dd58146bfb2411c229b02969e0faf18222
Change-Id: I2bc9f13ec605de7b7b96d96a1a4edebee0af76dc
Story: #1749057
Task: #22995
2018-07-31 19:52:29 +00:00
Dmitry Tantsur
31cc654fc1 Bump osprofiler minimum requirement to 1.5.0
Ironic cannot even start with 1.4.0. The lower-constraints job works
because it actually uses upper-constraints.

Change-Id: Id34909b9fb159cd2bb06f1512908db4836055c29
Story: #2002900
Task: #22864
2018-07-06 16:38:12 +02:00
Nguyen Van Trung
de6cfdb541 Fix stestr has no lower bound in test-requirements
This issue will occurs when they validate with test-requirements in
constraints.

issue logs:
  | ubuntu-xenial | Validating test-requirements.txt
  | ubuntu-xenial | Requirement for package stestr has no lower bound

Change-Id: I61a25bc6ccbc97006443db8f9086bec41506e940
2018-06-18 09:23:02 +07:00
Nguyen Hai
34277f6237 Fix incompatible requirement in lower-constraints
Fix lower-constraints don't match the lower bounds
in the requirements file(s). It causes fail in
requirements-check.

REF:
http://lists.openstack.org/pipermail/openstack-dev/2018-April/129056.html

Change-Id: Ib71b09be0de1bd52d64eebed913ac1ee14f2d154
2018-04-06 22:23:50 +09:00
Doug Hellmann
9143ec7baf add lower-constraints job
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.

Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.

Add openstack-tox-lower-constraints job to the zuul configuration.

See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.

Change-Id: I50af6344c8de6fae3602e6d0f5267623ce492dc9
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-26 11:56:56 +00:00