current latest stable Ansible releases to PyPI (2.1.4.0, 2.2.1.0) have
Jinja2<2.9 as hard-coded requirement to account for a bug present in
Jinja2 2.9.[0-4], while current OpenStack upper constraints have
Jinja2==2.9.5 (the global requirements.txt still allows Jinja2>2.8).
This makes those latest stable Ansible releases incompatible with current
OpenStack global requirements.
This patch might be reverted in the future if OpenStack's upper
constraint for Jinja2 is downgraded to 2.8.1 again.
Change-Id: I5e5648cb2dcf6fca01cb887b52f4a56b964b0c30
Allow switching the ironic nodes in DevStack to one of staging drivers.
This will enable running standard ironic tests against this driver
on a gate job.
Currently only pxe_ipmitool_ansible driver is handled,
as it can in priciple be tested on gates with virtual HW.
Change-Id: Ief19ccb2711aed03ad0c4f4feee73edaa5c554c9
It is possible to rebuild the pre-built tinyipa image available
at tarballs.openstack.org to make it usable with ansible-deploy driver.
The rebuild is rather fast, and only downloads 2 packages from TC mirrors
(SSH server and dependencies).
Change-Id: Ie39ce67dc93e7d53bf75937c7defacafad5fbfcf
Related-Bug: #1526308
The gating on python 3.4 is restricted to <= Mitaka. This is due to
the change from ubuntu Trusty to Xenial, where only python 3.5 is
available. There's no need to continue to keep it.
Change-Id: Iad33f7e1781432e17104d165aba377b7a6a40b1c
This patch overrides the default implementation of
get_supported_power_states() in the base power I/F for WOL Power.
The get_supported_power_states() is newly introduced in the base power
I/F to support SOFT_REBOOT and SOFT_POWER_OFF functions.
Change-Id: I4b46ebbbe8a976c382adb9e062c32d8670a15670
Partial-Bug: #1526226
Depends-On: I1c9bbd1f11f6a8565607c874b3c99aa10eeb62a5
Hash algorithm should be specified by user in image_checkusm parameter.
If not specified, 'md5' sets by default in deploy.py. Additional 'md5:'
is duplicated in playbook, which causes fail with error:
"md5:md5 checksums are not supported"
Change-Id: I693023cd8e226a5e8ba84c3672dfe6f5a65b9f8a
Changes include:
- callback plugin - fixed for Ansible 2.2
Apparently now `eventlet.monkey_patch()` breaks Ansible,
and since it is implicitly executed on any import from ironic package,
it breaks the callback plugin and the whole ansible-deploy driver
when using Ansible 2.2.
Instead, just copy-paste those several lines of code explicitly
into callback plugin module or use them from ironic_staging_drivers
code.
- ansible.cfg - add interprocess polling interval option.
Increasing it should decrease CPU load generated by each
ansible-playbook invocation and improve ironic-conductor performance
for parallel deployment of nodes with ansible-deploy driver
- in-memory inventory playbook - changed add_host module args to
correspond to Ansible 2.x
Change-Id: I365a82cd3592a7669599fe84674ca4abab8f576f
Closes-Bug: #1652326
Ansible require valid hostname in /etc/hosts file.
This file does not exists in ubuntu-minimal Xenial, which causes build fail.
This change ensures that /etc/hosts file exists and has required content.
This change requires dib > 1.25.2 (or current master branch).
Also, move openssh-server from package-installs to element-deps,
as there is a separate element for that.
Change-Id: I5ff78cf6591ef2228a3695d91d8b2c2095fc28b3
AMT drivers recently were removed from ironic,
but some unit tests for AMT driver in ironic-staging-drivers still try
to use AMT-specific exceptions from ironic package instead of from
ironic-staging-drivers.
This patch changes affected places to use those exceptions from
ironic_staging_drivers.common module.
Change-Id: I7982cd8043a0508df6e26b8ef75738b7d3a82ee7
Closes-Bug: #1651069
currently tox env for code coverage does not measure anything
as it tries to measure the coverage of 'ironic-staging-drivers' package,
while the actual package name is 'ironic_staging_drivers'.
This patch:
- erases current coverage data first
- fixes project name expected by 'coverage'
- adds coverage reporting in the end of 'tox -ecover' run
- omits tests file from both coverage and report
- adds 'cover' to .gitignore (auto-generated as part of coverage report)
Change-Id: I0044e3dd399934be706a06fd921972632efcceea
Ubuntu Xenial comes with Python 3.5 out-of-the-box,
and both ironic and ironic-staging-drivers are already gating against
py35 unit tests.
Change-Id: Ie1728d90b9eada194ae65aca15be5238edfa4ebc
Agent lookup/heartbeat as vendor passthru interface is deprecated and
is being removed from Ironic.
This patch updates all the drivers in ironic-staging-drivers to not rely
in this functionality.
Change-Id: Idfcfdff6a8657d6e6f09b8fe85ebaa0251969955
Related-Bug: #1640533
As part of the commit a9a1293312ca67c5e5dbb258146832516a41e939
to ironic, prepare_cleaning_ports and tear_down_cleaning_ports
methods from deploy_utils module were removed. This change
replaces their usage with network interface's add_cleaning_network
and remove_cleaning_network methods.
Closes-Bug: #1644874
Change-Id: I139c6284f93a63fbd5a02eef18610c7df236d2db
Based on:
- `ironic-agent` element and uses IPA for lookup/heartbeats
- `devuser` element to set user name, permissions and SSH keys.
Additionally:
- ensures OpenSSH is installed and configured properly
- correctly sets hostname to avoid some Ansible problems with elevation
- overrides DIB_DEV_USER_PWDLESS_SUDO to always be "yes"
Ironic callback functionality requires Ironic API >= 1.22.
Change-Id: I3f6c3baf0197d27f2d423f52611666ca186cd0a4
Related-Bug: #1526308
Releasenote translation publishing is being prepared. 'locale_dirs'
needs to be defined in conf.py to generate translated version of the
release notes.
Note that this repository might not get translated release notes - or
no translations at all - but we add the entry here nevertheless to
prepare for it.
Change-Id: I260e6d906e9bfac28523bb3a93d4d598f8a3d169
Requires Ironic API >= 1.22 when using heartbeats to Ironic API.
For better logging and proper deployment failure handling,
Ironic should be > '6.1.1.dev147' version.
Tested with and targets Ansible >= 2.1
Experimental DIB element: I3f6c3baf0197d27f2d423f52611666ca186cd0a4
Experimental TinyCore-based bootstrap:
Ie39ce67dc93e7d53bf75937c7defacafad5fbfcf
Tested with DevStack, Bifrost and Mirantis OpenStack,
with both VMs and real IPMI hardware.
Tempest's baremetal_server_basic_ops test reliably passes on DevStack
with `pxe_ssh_ansible` driver.
More elaborate documentation will be proposed in next changes.
Change-Id: Ib9317d365d7bc39aa00a9d9e1eadddd2f9b2947f
Related-bug: #1526308
Co-Authored-By: Yuriy Zveryanskyy <yzveryanskyy@mirantis.com>
Remove old and unused constraints environments from tox.ini. Those
have never been used.
Note that the repo has in the past not used constraints in OpenStack
CI, this change keeps the status quo.
For more information about constraints see:
http://lists.openstack.org/pipermail/openstack-dev/2016-August/101474.html
Change-Id: Idb24ac27d5653b5f0c7a5f618b475c9e278fcc8a
The iboot mock was pointing to the iboot module in Ironic
(ironic.drivers.modules.iboot), this patch is changing it to point to
the module in ironic-staging-drivers otherwise, once iboot is removed
from the Ironic tree it's likely to break the unittests in this project.
Change-Id: I85fbfa9a83143ad309ae0cf6d5d45c8b7e45391e
This patch is removing python-libvirt from test-requirements.txt and
mocking that library for the tests.
Closes-Bug: #1616906
Change-Id: Id067476c58bf9ddedd6cfc5fe80303f7d949cb9e
There is an internal Ironic docs reference left after moving
this driver from Ironic repo, which does not work and produces warnings
during docs build.
Change-Id: I8111d90b530708b3a0ce00361ae532b933553536
The commit a9216bb07f4ccd4dc202fd1f5c14b36a08ac6046 in Ironic refactored
the vendor passtrhru classes and removed the kwargs from the
continue_deploy() method, breaking the tests in here.
Closes-Bug: #1612210
Change-Id: Ie471dddb7d05a0fd5710518ab38b555e7dce0596
This patch is importing the iBoot driver and its documentation from
ironic to ironic-staging-driver.
Since we can't have duplicated entry points in setuptools we had to
rename the driver names as following:
pxe_iboot -> pxe_iboot_iscsi
agent_iboot -> pxe_iboot_agent
fake_iboot -> fake_iboot_fake
Change-Id: I2783b8e65408811858ffb00c372aa7ae269ad75b