Curly quotes(Chinese punctuation) usually input from Chinese input method.
When read from english context, it makes some confusion.
Change-Id: Id3de03359f2bc10c709a2e5baec96f05409e4d83
In order to radically simplify how we prepare the service
venvs, we use a common role to do the wheel builds and the
venv preparation. This makes the process far simpler to
understand, because the role does its own building and
installing. It also reduces the code maintenance burden,
because instead of duplicating the build processes in the
repo_build role and the service role - we only have it all
done in a single place.
We also change the role venv tag var to use the integrated
build's common venv tag so that we can remove the role's
venv tag in group_vars in the integrated build. This reduces
memory consumption and also reduces the duplication.
This is by no means the final stop in the simplification
process, but it is a step forward. The will be work to follow
which:
1. Replaces 'developer mode' with an equivalent mechanism
that uses the common role and is simpler to understand.
We will also simplify the provisioning of pip install
arguments when doing this.
2. Simplifies the installation of optional pip packages.
Right now it's more complicated than it needs to be due
to us needing to keep the py_pkgs plugin working in the
integrated build.
3. Deduplicates the distro package installs. Right now the
role installs the distro packages twice - just before
building the venv, and during the python_venv_build role
execution.
Depends-On: https://review.openstack.org/598957
Change-Id: Iecb64d28afe3acfbae7060af55c1a891310e5ef4
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: Ic2c970f3bc7baff38f72e4deaf9fc9c87271be71
Story: #2002586
Task: #24319
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: If3249c7e89ca3a0f65fc340e84d4e2e2c82d16db
Story: #2002586
Task: #24319
The TESTING_BRANCH environment variable is provided by the
run_tests.sh script and is derived from the .gitreview file.
This ensures that once the master branch becomes a stable
branch, the constraints from the stable branch in the
integrated repository will automatically get used once the
.gitreview file is updated.
To ensure that the required environment variables are present
we export them appropriately in run_tests.sh and modify the
tox configuration to pass them into the tox test.
Change-Id: Id3e0021ffe0ee8008bb0c16b7703ae8a5c34f9f4
Needed-By: https://review.openstack.org/579371
This reverts commit 6ee96f224c795e8f4d24b394dc95ccb3bb6d8920.
This variable is no longer referenced anywhere, so we can remove it.
Change-Id: I70a262020918d51b20486cf819dc9131abfce7f1
The python-keystonemiddleware is needed by swift-proxy-server otherwise
the systemd service fails to start with the following error:
[...]
File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 517, in _context_from_explicit
swift-proxy-server[11639]: value = import_string(found_expr)
File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 22, in import_string
swift-proxy-server[11639]: return pkg_resources.EntryPoint.parse("x=" + s).load(False)
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2321, in load
return self.resolve()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2327, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named keystonemiddleware.auth_token
Implements: blueprint openstack-distribution-packages
Change-Id: I2aaddc0c6b3bb5c28eb7f9b45e8d989f2824724d
The use of 'include_tasks' and a loop of variables creates
a situation where a user is unable to use tags to scope the
inclusion of only the MQ tasks when running the playbooks.
The use-case this is important for is when the rabbitmq
containers are destroyed and rebuilt in order to resolve
an issue with them, and the user wishes to quickly recreate
all the vhosts/users.
Ansible's 'include_tasks' is a dynamic inclusion, and dynamic
inclusions are not included when using tags. The nice thing
about dynamic inclusions is that they completely skip all
tasks when the condition does not apply, cutting down deploy
time. However, given the use-case, we should rather take on
the extra deployment time.
This patch changes the dynamic inclusion to a static one,
adds a 'common-mq' tag to cover all MQ implementations,
and re-implements the 'common-rabbitmq' tag for the tasks
that relate to RabbitMQ specifically.
It also implements conditionals for each task set so that
the rpc/notify tasks can be skipped if a vhost/user is not
required for that purpose (eg: swift does not use RPC, and
most roles will not use notifications by default).
Depends-On: https://review.openstack.org/588191
Change-Id: I994ccc0d20e4ec72955e625119a35856a7171ba3
In order to reduce the packages required to pip install on to the hosts,
we allow the service setup to be delegated to a specific host, defaulting
to the deploy host. We also switch as many tasks as possible to using the
built-in Ansible modules which make use of the shade library.
The 'virtualenv' package is now installed appropriately by the openstack_hosts
role, so there's no need to install it any more. The 'httplib2' package is a
legacy Ansible requirement for the get_url/get_uri module which is no longer
needed. The keystone client library is not required any more now that we're
using the upstream modules. As there are no required packages left, the task
to install them is also removed.
Depends-On: https://review.openstack.org/582359
Depends-On: https://review.openstack.org/587376
Change-Id: I68f3a0bf2b7a3a12cbf40d7d6a853d5b4c6dd0f3
The integrated build has no value for swift_rabbitmq_password
and yet the oslomsg vars reference it. Given that the integrated
gate is quite hard to merge anything into right now - set a
default value here temporarily until we can merge a fix there.
Change-Id: I8c13fe063cd5ec454196bc630cb6362f97c4f146
In order to have more centralized configuration, switch the role
to use the project-template instead.
Change-Id: I5d3a265ee6fd71c9f47dcd6226b1698eae3c470a
With the more recent versions of ansible, we should now use
"is" instead of the "|" sign for the tests.
This should fix it.
Change-Id: Ia1c412489554ab629a8ffa8e385a9b634f471861
There is no record for why we implement the MQ vhost/user creation
outside of the role in the playbook, when we could do it inside the
role.
Implementing it inside the role allows us to reduce the quantity of
group_vars duplicated from the role, and allows us to better document
the required variables in the role. The delegation can still be done
as it is done in the playbook too.
In this patch we implement the new variable:
- swift_oslomsg_notify_setup_host
This is used in the role to allow delegation of the MQ vhost/user
setup for each type to any host, but they default to using the first
member of the applicable oslomsg host group.
We also adjust some of the defaults to automatically inherit existing
vars set in group_vars form the integrated build so that we do not
need to do the wiring in the integrated build's group vars. We still
default them in the role too for independent role usage.
Depends-On: https://review.openstack.org/584630
Change-Id: I3d5e00e090d37ea7aa95460965749ef066b63b23
The 'httplib2' package is a legacy Ansible requirement for the
get_url/get_uri module which is no longer needed.
Change-Id: I420dfd74e78963486ed9d5a66b8c3b72372b5ae6
The rabbitmq/oslomsg groups are now required by the
keystone role, so we add them to the inventory and
ensure that the test playbook install the services.
Also, the multi-region tests are set to non-voting
to unblock the swift repo for other patches to
resolve the issue.
Change-Id: I4e2bbdff7a89b204723e7937667854c412051347
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I7abdeda5e90627776b588e196a72becfd599ebbf
The pypy job never worked and nobody contributed on making
it better.
We should remove it until people are explicitly wanting to
improve the situation.
Change-Id: I680b2c07f867db828774e906b6743e3957a40364
Using tox for requirements management requires in-repo
requirements files for all our repositories. Rather than
do that, we make use of the tests repo to capture our
common requirements and use this to install them.
This reduces our review requirement rate and simplifies
maintenance for us for the tox config. It also makes it
usable with 'Depends-On', which is marvellous!
The tox requirements definitions for docs/releasenotes
builds are left in-place as those are standard entries
across the community. If that changes at some point, we
can re-assess those entries too.
Depends-On: https://review.openstack.org/579208
Change-Id: I963ccbb3353387adb724ee5f5630978ac9fd4f9e
The rules are not currently maintained, nor do we have the resources
to maintain them. In addition, they most likely don't work in our
integrated repos.
For future, it would be best to depend on upstream packages for
SELinux support such as `openstack-selinux`.
Change-Id: I6203b98a96a341ce52930ceeed609d9c118ae8b8
There are times when a deployer will need to reconfigure parts of
an environment and having a general purpose tag to run said operation
will be important especicially should the deployer be needing to
reconfigure systemd unit files in a downtime event. This change adds
a general purpose systemd tag where include_role and systemd is found
which will assit operators with day2 operational tasks.
Change-Id: Id65084aff939a240922e46f31c7edb2fae013b38
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>