master
457 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Jenkins
|
cd06b2ee81 | Merge "Enable graceful shutdown for services" | ||
|
Javier Pena
|
6bd4924cec |
Ignore stderr when checking for Python version
https://review.openstack.org/504171 prevented Python version detection from failing when python3 is not installed. However, "which python3" returns a message in stderr when python3 is not there, and this output can make diskimage-builder get confused when parsing source-repository-images. Change-Id: Idb649dc341ede73c39954b0432ef3cacf379ed37 |
||
|
Jenkins
|
f56a0ae2ec | Merge "Fix devstack python detection if python3 is missing" | ||
|
Sean Dague
|
4324f4ecd9 |
Fix devstack python detection if python3 is missing
On platforms without python3 installed devstack fails the python version check. This does it more gracefully. Change-Id: I4d79a41eb2d66852ab1a1aa8bd383f8e3e89cdc0 |
||
|
Ihar Hrachyshka
|
387aadd14e |
Install neutron rpms/debs when lib/neutron is used
lib/neutron service prefixes are neutron-* not q-*. We should install those packages either way. The patch moves files/*/neutron into files/*/neutron-common so that we can correctly match */neutron against service specific dependency files (f.e. */neutron-agent) and load the common packages if any neutron-* service is present. Change-Id: I57b36f2ed3f33737223a35d9ed734bb414f31e0b |
||
|
James E. Blair
|
35a0c573b3 |
Update gate clone error message for Zuul v3
Change-Id: I351de28aa5d5f25187953f1a4502445bc2ce76cc |
||
|
Jenkins
|
5b42dcef5d | Merge "Get default python versions from interpreter" | ||
|
Dinesh Bhor
|
ef60f2b718 |
Enable reloadable config in services
uwsgi services: [1] By default uwsgi is set to exit on reload this breaks config reloading of the service [1][2]. It needs to be set to 'false'. [2] Requires to add 'systemctl reload' command support by adding ExecReload in unit file. Non uwsgi services: [1] Non uwsgi services only requires to add ExecReload in unit file. There was a similar patch submitted by Matthew Treinish [3] but it was already set to workflow +1(not merged as having dependency on other patch) and it was having some issues as specified in comment and missing reload functionality for other services. [1] https://etherpad.openstack.org/p/uwsgi-issues [2] http://uwsgi-docs.readthedocs.io/en/latest/Options.html#exit-on-reload [3] https://review.openstack.org/#/c/490904/2 Change-Id: I78f5e9d4574671c74a52af64724946feb41c2d7a |
||
|
Jenkins
|
1ad91a7d4b | Merge "Remove screen support from devstack completely" | ||
|
Matthew Treinish
|
477a962861 |
Enable graceful shutdown for services
1] Process using uwsgi:
uwsgi services doesn't support for graceful shutting down [1].
It requires some changes in unit files [2] including adding below
graceful shutdown hook and changing KillSignal:
--hook-master-start "unix_signal:15 gracefully_kill_them_all
All the steps and changes required are specified in etherpad [1].
2] Non uwsgi services needs below changes:
In [service] section:
a. Add KillMode = process
b. Add TimeoutStopSec = infinity
NOTE:
Creating unit file for services other than uwsgi is handled by the
'write_user_unit_file' function [3]. This function is common for all
the services so this patch adds the above mentioned parameters for
services using ServiceLauncher also though they don't require.
Added a new stackrc variable WORKER_TIMEOUT which is required to add
graceful shutdown support to uwsgi services. It will be set as a value
to 'worker-reload-mercy' [4] in uwsgi file of service. The default
value set to this variable is 90.
[1] https://etherpad.openstack.org/p/uwsgi-issues
[2] https://www.freedesktop.org/software/systemd/man/systemd.kill.html
[3]
|
||
|
Sean Dague
|
cdba1b3716 |
Remove screen support from devstack completely
This tears out the alternative path of using screen, so that we only use systemd enabled paths. This simplifies the number of ways that devstack can be run, and provides a much more reliable process launcher than the screen based approach. Change-Id: I8c27182f60b0f5310b3a8bf5feb02beb7ffbb26a |
||
|
Ian Wienand
|
6d213dfda7 |
Get default python versions from interpreter
Query the python2/python3 interpreter for it's version to fill in PYTHON3_VERSION and PYTHON2_VERSION defaults. This means on a python3.6 platform such as Fedora 26, we don't need to override the default. Change-Id: Id826f275b99b9f397b95e817941019fc503daa1d |
||
|
Omer Anson
|
5158486124 |
Add function is_plugin_enabled
Add a function which tests if a plugin has been enabled with enable_plugin. This is helpful if two co-ordinating projects want to run specific setup in devstack in one only if the other is enabled. Change-Id: Ibf113755595b19d028374cdc1c86e19b5170be4f |
||
|
Jenkins
|
2967ca3dfd | Merge "Actually check if roles are set" | ||
|
Jenkins
|
2b06b1a072 | Merge "Change restart Always to always" | ||
|
Jenkins
|
3ed001821b | Merge "Revert "systemd: Always create the systemd unit files"" | ||
|
YAMAMOTO Takashi
|
c087c71834 |
Revert "systemd: Always create the systemd unit files"
This reverts commit
|
||
|
Jenkins
|
418bbddc81 | Merge "Provide timings for OSC during devstack run" | ||
|
Sean Dague
|
85cf2933cc |
Provide timings for OSC during devstack run
The OSC number remain high, and it's useful to understand how much time we spend making OSC calls, especially to surface it relative to other items. The way we embed this in our code makes it hard to instrument. This patch creates a wrapper function for OSC which collects the timings then aliases `openstack` to that function. This means any invocations of the openstack utility goes through our function while devstack is running. Because this is an alias it only affects the stack.sh shell and any subshells. This also moves the time tracking infrastructure to count in ms, instead of s, because some of these operations are close enough to a second that rounding early is losing way to many significant digits. We divide by 1000 before reporting to the user. Change-Id: Ic5f1844ce732d447ee980b3c9fdc417f72482609 |
||
|
Clark Boylan
|
3e9b562d0b |
Actually check if roles are set
In the helper functions to check if roles are set and if not add the role and return the id we weren't actually checking if the role was set. The reason for this was we grepped for name values while outputing only uuid values with OSC. Fix for this is straightforward, we just add the --role argument to OSC which will filter for us then we don't have to use a grep on the wrong value type. Change-Id: I2691b347d2a6273100deb4a1750ab353a8e49673 |
||
|
Markus Zoeller
|
15b0a5f1eb |
systemd: Always create the systemd unit files
Commit
|
||
|
gong yong sheng
|
07b3bc24a3 |
Change restart Always to always
Change-Id: I1cb00cc012eda72ff50e958ba1fb04daeac69e26 Closes-bug: #1695822 |
||
|
Jenkins
|
8085df74a8 | Merge "Use the proper keystone endpoints in clouds.yaml" | ||
|
Jenkins
|
3420019d9d | Merge "remove some unused *_PROTOCOL from export" | ||
|
Jenkins
|
37a6b0b2d7 | Merge "Set SyslogIdentifier for uwsgi processes" | ||
|
Sean Dague
|
f41bf2a92f |
Set SyslogIdentifier for uwsgi processes
Now that we aren't using native journal messages by default, the syslog identifier of all the uwsgi processes is the same. We should be more explicit with those. Change-Id: Id5406d02407b022d4016517c2e18890973876d88 |
||
|
Sean Dague
|
148d58c351 |
Make devstack fail early for common systemd pitfalls
There are a couple of issues that have ended up being hit by devstack plugin authors which we can detect and error in a much nicer way instead of them having a cryptic systemd failure. Change-Id: I45e4ac363aeefb4503015f9e1b57c58f79b58f40 |
||
|
Sean Dague
|
803acffcf9 |
Make ./clean.sh work in more situations
When transitioning between different wsgi modes, or service modes, we should really safely stop and cleanup things that are started in any service mode, which makes it easier to ensure that we don't leave things around from past runs. Change-Id: I33acbee39e1a2da2bfd79a5dd54b84a12a778be1 |
||
|
Sean Dague
|
c006bbdeb2 |
make USE_SCREEN=False imply USE_SYSTEMD=True
In order to start making the transition in the gate make USE_SCREEN=False also mean USE_SYSTEMD=True. We'll never actually declare USE_SYSTEMD=True in the gate (as that doesn't exist for stable branches), but this will let us roll over the existing transition. We also have to install systemd-python 234 because we are recording exception info in the journal, and all versions before that had a bug in processing that. Remove the somewhat pointless screen following journalctl commands. We really don't want or need those, and they tend to build up over time. Depends-On: I24513f5cbac2c34cf0130bf812ff2df6ad76657c Change-Id: I6af6d1857effaf662a9d72bd394864934eacbe70 |
||
|
Monty Taylor
|
e43f60ba2a |
Use the proper keystone endpoints in clouds.yaml
KEYSTONE_SERVICE_API is the keystone endpoint and it is what we should use. The admin url should DIAF - but until it does, it CERTAINLY should not be the thing we put into clouds.yaml. Change-Id: If8196a04f852f633e0b7548793f68c92376aa6da |
||
|
Sean Dague
|
1b245cef7f |
Cleanup duplicate get_or_add_user_domain_role
It turns out that we ended up with duplicate versions of this function merging on top of each other within 3 days, and gerrit didn't catch it. Boo gerrit. Boo bash. Change-Id: Ic6aa2f9bafdec906de2bc51d5929beeec48a6a40 |
||
|
Sean Dague
|
0effa1a6cb |
remove some unused *_PROTOCOL from export
Things like SERVICE_PROTOCOL and KEYSTONE_AUTH_PROTOCOL shouldn't really be exported in openrc as they encourage using them directly to build up keystone urls instead of actually using the OS_AUTH_URL. Remove them. Change-Id: I4b7cc680f7f14dae29b706a227be540c9e212cad |
||
|
Jenkins
|
602e2e93b6 | Merge "Handle uwsgi on systemd properly" | ||
|
Jenkins
|
03fbc0d71b | Merge "Do not use libvirt-bin package anymore" | ||
|
Matthew Treinish
|
9c5ffd8d13 |
Handle uwsgi on systemd properly
uwsgi is a different service type under systemd and shouldn't be run as a standard oneshot type. The uwsgi docs outline a good pattern for writing systemd unit files: http://uwsgi-docs.readthedocs.io/en/latest/Systemd.html This commit takes those suggestions and creates a separate path for writing uwsgi unit files. Change-Id: I9b541b86781afdded311dba058cedd783e1a0dfa |
||
|
Sean Dague
|
5edae54855 |
initial work to enable systemd service running
During the PTG there was a discussion that the screen developer workflow wasn't nearly as useful as it once was. There were now too many services to see them all on one screen, and one of the most common service restart scenarios was not restarting one service, but a bunch to get code to take effect. This implements a 3rd way of running services instead of direct forking via bash, or running under screen, which is running as systemd units. Logging is adjusted because it's redundant to log datetime in oslo.log when journald has that. Swift needed to have services launched by absolute path to work. This is disabled by default, but with instructions on using it. The long term intent is to make this the way to run devstack, which would be the same between both the gate and local use. Some changes were also needed to run_process to pass the run User in. A hack around the keystone uwsgi launcher was done at the same time to remove a run_process feature that only keystone uwsgi uses. Change-Id: I836bf27c4cfdc449628aa7641fb96a5489d5d4e7 |
||
|
David Rabel
|
682e0abe1a |
Do not use libvirt-bin package anymore
The package libvirt-bin is a transitional package in Debian and should not be used anymore. Ubuntu Xenial is an exception here. Because of that this change also adds the possibility to use "not:" to exclude distros in files/debs/* just as "dist:" limits distros. Depends-On: Icc59ea79f54d4ff8751f2e353ee3530fff3d961e Closes-Bug: #1673840 Change-Id: I3998a7178d14ec40eae5cb199d66da9546cd6ccf |
||
|
Jenkins
|
6523d6e097 | Merge "Make declared variables global" | ||
|
Sean Dague
|
afef8bf097 |
Make declared variables global
When variables use the 'declare' directive, it is by default a local variable. While other variables have global scope. For example: declare -A AN_ARRAY # local in scope foo=1 # global in scope This causes errors to occur as some of the variables will be local only and others will be global. Update the code, as appropriate, so that variables using the 'declare' directive also include the '-g' flag to have them also be global. Not every instance of a declared variable has been updated. Closes-Bug: #1669509 Co-Authored-By: John L. Villalovos <john.l.villalovos@intel.com> Change-Id: I2180b68fe861ad19c6d4ec0df0f9f8a528347862 |
||
|
Jenkins
|
b9ed1ffc7d | Merge "Added printing exit code of component process if it failed to start" | ||
|
Jenkins
|
71640bfe39 | Merge "Remove distro support based on new libvirt minimum" | ||
|
Matt Riedemann
|
ff10ac318c |
Remove distro support based on new libvirt minimum
Nova is going to increase the minimum required libvirt
in Pike to 1.2.9 in change:
I9a972e3fde2e4e552f6fc98350820c07873c3de3
Based on the libvirt distro support matrix wiki [1] that
drops support for Ubuntu Trusty and Debian 7.0/Wheezy.
Trusty has libvirt 1.2.2 and Wheezy has 0.9.12 (the Wheezy
support should have been removed long ago apparently). The
7.0 removed here is for Wheezy also based on commit
|
||
|
Sean Dague
|
11eb2017ef |
simplify endpoints used in devstack
The proliferation of internal/admin endpoints is mostly legacy and based on some specific deployment patterns. These are not used by everyone, and for the devstack case aren't really that useful. We should simplify our service catalog down to the minimum we need for development. Change-Id: Ided7a65c81b3a0b56f0184847fc82e17c29a771e |
||
|
Joanna Taryma
|
9d49ed9834 |
Added printing exit code of component process if it failed to start
When command failed and component failed to start, original exit code was overwritten due to original command being executed in background. This commit adds information about command's exit code to echoed message about component's start up failure. Change-Id: I8a3dd485b1b1f2d70d42c5610baac7c0c713f53a Signed-off-by: Joanna Taryma <joanna.taryma@intel.com> |
||
|
Davanum Srinivas
|
51ecf0a869 |
Introduce a PYTHON env var
* $PYTHON will have the path to python runtime to be used * Use $PYTHON to run all the scripts Change-Id: Ib5ab7820fc18cae5e50ea47302b610494197ad47 |
||
|
Jenkins
|
fefd3e9c46 | Merge "Make deprecated() output to stderr" | ||
|
Zane Bitter
|
95ed7c6f05 |
Don't buffer log output in sed
Services that run inside Apache use tail -f on the corresponding log file to display output in the screen session. However, they also use sed to replace some control characters, and this means that the output is buffered. This results in debugging experiences that range from "impossible" (the log you want isn't shown) to "Kafkaesque nightmare" (the log you want isn't shown, except that sometimes it is, and sometimes it isn't even though you double-checked and you're completely sure that you must have output a log, but when you check back later you realise it actually is and you wonder if history is actually not mutable after all and begin to question what is real and what is not). This adds the --unbuffered option to ensure streaming output. Change-Id: I665ff5f047156401d8152f478d834ac40ff31658 |
||
|
YAMAMOTO Takashi
|
8b1bbd690c |
Make deprecated() output to stderr
So that it can be used by functions like _determine_config_server, which is used like RESULT=$(_determine_config_server). Change-Id: Ia4e641c5529b95ada30ae662221f370bc7fa88a7 |
||
|
Jenkins
|
9a69a1abfc | Merge "If plugin is enabled multiple times fail" | ||
|
Jenkins
|
f5e78b6fb6 | Merge "Allow provider network to be used for ssh validation" |