The role reads the OS_* variables set by devstack through openrc
for the specified user and project and exports them as
the os_env_vars fact. It is meant to be used as a porting aid
for the jobs of the non-unified *clients only.
This is useful to run functional tests against the generated
environment. A slightly less generic version of this role
is currently used by python-cinderclient and python-novaclient
(get-os-environment).
In order to make this more useful, call it from
devstack-tox-functional and derived jobs. The role
execution is disabled by default and it can be enabled
by setting openrc_enable_export: true.
Change-Id: I15f5a187dbc54c82e8f4a08b4bb58d56e0d66961
process-stackviz role currently defined in Tempest repo[1] and used
in tempest jobs. Issue with having it in branchless Tempest is that any
fix in that role cannot be backported to older Tempest. Also stackviz is
not Tempest things it is only used by Tempest jobs.
Stackviz can be considered as a service similar to Tempest so inatlling it in
Devstack side make sense. Also that will give us advantage to handle the
branch specific fixes or backpoting the fixes.
This can solve the current issues we are facing on rocky branch
- https://zuul.opendev.org/t/openstack/build/c1e2da80537448bfb24331fb4198a931/console#4/0/29/controller
[1] https://opendev.org/openstack/tempest/src/branch/master/roles/process-stackviz
Change-Id: I0ba1fd05c6391cd8bb978119ecfbb891def2d497
The paths for the devstack source directories are currently hardcoded,
this patch allows overriding that list.
Change-Id: I2b673b0d110d84658b89bb14663584330deaf3aa
This change removes the .gz extension from the
service and syslog logs exported via journalctl.
This change nolonger gzip compresses the exported
logs so that they can be rendered in the browser
directly when served from swift.
Change-Id: I4557a737cb13b9c2406056be08ab8a32ddd45162
Reformat overlong table into a list-table to make it easier to edit.
The change contains no wording changes besides giving titles to the
list-tables.
Fix formatting for setup-devstack-source-dirs so that the variable does
not get displayed with a grey bar at
https://docs.openstack.org/devstack/latest/zuul_roles.html#role-setup-devstack-source-dirs
Change-Id: I7378d46c507b1d86f1d5319655a55f2a8c5a8f60
running chown and chmod on files and folders not created by
devstack causes a few issues:
* On nfs mounted directories it can take an extremely
long time to chown -R some of the git repos, especially
if any tox commands have been ran in the host
* chown can cause the host files to get into a weird state
if nfs is set up wrong.
If files and folders are pre-existing we should assume
they are in the correct state, and not modify them.
Fix setup-devstack-log-dir to create the logs directory with
correct permissions in the first place.
Change-Id: I5ebdaded3ffd0a5bc70c5e9ab5b18daefb358f58
Signed-off-by: Graham Hayes <gr@ham.ie>
With the new namespaces we have to look around a bit more to find
repos top copy into the DevStack working directory. Add:
* starlingx/
* x/
* zuul/
Depends-On: https://review.opendev.org/653988
Change-Id: I8a55522a5fee46f415f0c0ce580ded3476133460
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
When the role is used by grenade, the data directory is shared among
different devstack executions, and the base directory is different,
for example: /opt/stack/data vs /opt/stack/{old,new}.
The new devstack_data_base_dir parameter allows user to specify
a base directory for the data/ directory which is unrelated
to the devstack directory. The default value is devstack_base_dir,
so the default behavior is unchanged.
Change-Id: Ie69b7b51947cbf1a8b31d2701783de2fb56a2d33
When [0] introduced quoting all arguments, it broke existing consumers
that already quote their value themselves. Fix this by avoiding to add
additional quotes to the value when it already starts with a double
quote.
[0] https://review.openstack.org/636078
Change-Id: I92146e04731efc6dcc632ae6c3a7c374e783cdba
Closes-Bug: 1822453
Currently we only export the devstack@ services, and then separately
export the kernel & sudo logs to syslog.txt.
This leaves a lot of logs potentially behind in the journal for
various daemons. Just export the whole lot.
Using this output is currently very opaque and makes use of systemd
export tools that are very un-discoverable. Add a README that will
appear alongside the journal explaining how to actually use it. This
is a template as it would be nice to put into things like the list of
services that are in the journal, or maybe other magic.
Also make sure we export the logs since the start timestamp; currently
during a full run we drop the initial logs.
Change-Id: Id2626f9113d82c6d524039acda8a8ec74afb2081
If you have
devstack_localrc:
ARGUMENT: "argument with spaces"
The quotes get lost during YAML processing and the resulting file has
ARGUMENT=argument with spaces
which is a shell error.
Quote all arguments to avoid this sort of thing.
Change-Id: Ia63a53d745dfea7262bcdb5d46425f431c3ccfe5
TEMPEST_PLUGINS contains the list of the tempest plugins installed
alongside tempest by lib/tempest.
If TEMPEST_PLUGINS is not explicitly set, the new tempest_plugins
variable is used to fill it by combining its items with
the base devstack path.
Change-Id: I9f1fa2755e16871ff9d6ba33fdeaf3023eedf8d4
Plugins must be the last items in the local.conf file
otherwise the configuration set in the rest of the file
is not applied to them (for example a different value of DEST.)
Change-Id: Ia001badca179c3f3436d5ecd26b0755a3f3a3078
On CentOS/ Fedora machines, this can be useful when QEMU silently fails
to start up due to SELinux denials. For Debian-based machines, which
use AppAromor, DevStack already captures the output of 'kern.log' (via
`journalctl -t kernel` redirected into 'syslog.txt.gz').
Change-Id: I231b22664f0944b905e00568759785615a1d47c3
Acked-by: Clark Bolyan <clark.boylan@gmail.com>
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Infra are looking at implementing gitea for serving git, but this does
not have a git protocol handler ATM. Switch GIT_BASE, and some
testing, to https:// to be in a better position to handle this.
Change-Id: I97a7b0de7b1ec2dd15d15c58699a631b09273df1
Story: #2004627
Task: #29701
As the user on the node under test may not exist on
the zuul executor node we do not copy the log owner
or group to avoid the rsync task failing when it
tries to chown the files.
Change-Id: I500cf3692a4d27b0c2a0a4f5586580d180a8778e
There are already devstack plugins that contain a hyphen in the name,
like `networking-baremetal`. In order to allow ordering for these to
work properly, amend the regexes we are using to match any
non-whitespace characters instead of only alphanumerics.
Amend the test to cover this use case.
Change-Id: I91093a424f8d5e8007f140083e1ea36a81fe849f
Closes-Bug: 1809016
The test_plugin_deps function in the test code for the
write-devstack-local-conf role was missing the import part of actually
executing the code under test and asserting the expected result.
Change-Id: I125870b13d2581cdec0dede11157b19b702565cd
Allow the setup-devstack-source-dirs role to accept a target role
to be setup - when available - for the repos.
Change-Id: Iebcba0d4be6d9d71b783e10a82c35a406afbd6bf
This automatically always adds the project under test to LIBS_FROM_GIT
which effectively makes the normal "tempest full" job the same as the
"forward testing" job when it is applied to a library repo.
Change-Id: Ibbdd8a86e0ff55f67bef73e08e693b34a61b24df
For compute migration to work, the stack user needs to be configured
with passwordless ssh between all hosts involved in the migration.
Reuse the build ssh-key for this, which is already distributed for
user root.
Depends-on: https://review.openstack.org/563584
Change-Id: Id07f55fea06509466add35315c135dbfba6aa714
If a project shows up in zuul's required-projects list, add it
to LIBS_FROM_GIT automatically. This way, when a user specifies
that a job requires a zuul-project, it gets used in testing, but
otherwise, it doesn't (pypi is used instead).
Also add information about what happens behind the scenes for both
LIBS_FROM_GIT and plugin dependencies.
This moves the check performed in check_libs_from_git to
a helper function which is installed for most kinds of
installations. This means that if someone sets LIBS_FROM_GIT to
"foobar", devstack won't error anymore, as nothing is going to
try to install foobar, therefore the check won't run on that.
However, as we move to automated generation of the local config,
that error is not likely to happen. This check was originally
added due to an error in the upper-constraints file (where a
constraint name did not match a package name). This location of
the check would still catch that type of error.
Change-Id: Ifcf3ad008cf42d3d4762cfb3b6c31c93cfeb40db
Document that orchestrate-devstack requires a linear strategy in the
invoking play. Also enforce the strategy in devstack.yaml.
Change-Id: Ia081225ec2be959fc5a4ddfd491f526296a8ca10
Extend the devstack job so that it can support both single and multinode
cases. Multinode mode require extra settings in devstack configuration,
some of which as subnode specific, some controller specific.
Also keep a simple devstack-multinode job defined for now so we can run
a multinode job in devstack gate, until the full tempest multinode job
is ready to match the old
gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv.
Fixing multinode also requires sharing the CA configuration between
controller and peers, overlay network configuration for communication
between virtual machines and running discover_hosts for nova after the
subnode has been setup.
The extra orchestration required for multinode is encoded in a
dedicated role to allow for jobs in other repos to re-use it.
Change-Id: I2dcbd9bdb401860820e655d97aa3c4775af2827f
The role that sets up the user and its home folder must ensure that
the home folder is owned by stack as well.
Change-Id: I2e72d7b9d68a2a14f8a148ef82cbb3f569bd1cea
the shell script used is actually being run thru 'sh', not bash,
which does not understand "[[" test operators.
Explicitly run this script with /bin/bash instead.
Change-Id: I551d2631bcb6aef49550d69b3830ffcb509abfb7
We've called the jobs that don't run on our main Ubuntu targets
"platform" jobs; start at moving these jobs to native jobs.
Depends-On: https://review.openstack.org/541010
Change-Id: Ib64d91206a9ac677f4d77873bc54c6a84702d6c3
Ansible complains:
The task includes an option with an undefined variable. The error
was: 'dict object' has no attribute 'RedHat'
which is just a mismatch on the "Redhat" string
Change-Id: I447038256561740c224c68388fa5b6a068cc8fed
By default stat is pretty verbose, we can set no_log: true to avoid
adding this info to our logs.
Change-Id: Ia18ebfe179443382cc670ffc4363ab037c43bb85
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Round 2 to add no_log to more things. Specific looping over stats, it
is pretty noise in logs and doesn't seem to add any value.
Change-Id: I580171e0061fa331f3ed510713f1ac7a1a6cb5ea
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
With CentOS 7, ansible is expecting to have RedHat as an attribute for
the dict so Discover configurations task fails with an undefined
variable error.
Closes-Bug: #1750573
Change-Id: I5bf9c4057ca9f75d730add9e429d0ef050c6d900