The current wait_for_boot method uses a socket connection to port 22
to determine whether commands can be run via SSH on a given node.
However this is not definitive as even if a connection to port 22
can be made, SSH may not be immediately available. A more robust
approach is to repeatedly attempt a basic command until it executes
successfully.
Change-Id: Ib80e29f947a47e1b5349236a7e9db42b59c09b10
Respect upper-constraints.txt
To prevent pip installing the latest and greatest packages
(which may break Bareon), pin the version to those specified
in the upper-constraints.txt file from the openstack
requirements repo.
Fix hacking module version
Change hacking version in pep8 tox tests to prevent conflict
with other openstack requirements.
Change-Id: I0c13b8f94212cc8e77db2a2d1d1bc63318a14fda
To avoid preinjected SSH key on bareon image built time new deployement
protocol extesion was added into bareon-ironic and bareon projects.
This change adopt our "stub web server" to use this new SSH key
injection schema.
Change-Id: I916326f4e7e53bacde79e7c35284bf68ca053d72
Allow caller to provide "images" branch of deployement config structure.
Also provide called API to make "correct"/"default" images branch.
Till now setup method of environment object silentlry override "images"
branch.
Change-Id: I1bdb0f91c7bf83e3c888650b2f8917dde80dea42
Due to usage of '&&' in bash command joining, if file is missing,
read_file method skips umount step. As result we have a problem with
"busy" mounts.
Add write_file method to complete file manipulation toolbox.
Change-Id: I1f2957c9e6b697b00868c3592ed67e6912b190af
We make loop mount of OS-image in some cases into .setup() method. But,
by mistake, umount happened only in teardownclass.
Change-Id: I14e05f6aa943e42344cb53d472f1703ccc9ad7b5
Replace OS specific "pidof" call on more common and mostly equivalent
"ps" call. It allows to use framework not only on RedHat based OS.
Change-Id: I4ac1c145e30d7f2b43fcb371e819f9943eab91f1
There is too small chanse to switch template engine in this project. In
this case there is no need to maintain abstraction layer under template
engine API.
Switch to direct calls to jinja2 API.
Change-Id: I200770b74b7bcbff28948155de994bb8bbf9f966
Provide mixin capable to initialize all framework subsystems. Moving all
initialization into this mixin increases framework code isolation. As
result it makes adding changes into framework easier.
Change-Id: Ib1154bc8e8bd69d36bfbdfb77de0b0d8ffafe1a8
The code use lxml, but setup.py does not list it as dependency. So add
'lxml>=2.3' to the dependency list.
Change-Id: I6ff82d77aefdfe6e9d92705b267894522e4e30e8
Main goals - avoid "path math". There was an ugly path math in stub
webserver start phase. Also there was mostly same path math in lookup of
static files served by this stub webserver.
Change-Id: Id0c348ceefb257dff0950adcd778edd69e6ad11e
Till now global config object was used. So we and project owns
functional test fill same config object. This can lead to options/groups
overlaps (two separate package add option with same name). Also second
"read config" call will reset config and remove loaded options. "Read
config" call happenes twice because we and package that own functional
test both make this call.
That why we must use separate config object.
Change-Id: I7bc4ec995317fb6454deb19e75b82793e3d027a4