d755acf0a407c2c323f5092fa78dea02c6b340df
105 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Vasyl Saienko
|
1aac81ee88 |
Allow to enable atop
It may be required to troubleshoot performance related bugs during tests exection, to have ability to inspect environment processes and theirs status during test run this patch installs atop by default if not explicitly disabled. Related-Bug: #2095224 Change-Id: Iedbd61f3ce3cd2255ea5f2a7a93ba2f39ad28ff2 |
||
|
Ben Nemec
|
9a97326c3f |
Use OSCaaS to speed up devstack runs
OpenStackClient has a significant amount of startup overhead, which adds a non-trivial amount of time to each devstack run because it makes a lot of OSC calls. This change uses the OSC service from [0] to run a persistent process that handles openstack calls. This removes most of the startup overhead and in my local testing removes about three minutes per devstack run. Currently this is implemented as an opt-in feature. There are likely a lot of edge cases in projects that use a devstack plugin so turning it on universally is going to require boiling the ocean. I think getting this in and enabled for some of the major projects should give us a lot of the benefit without the enormous effort of making it 100% compatible across all of OpenStack. Depends-On: https://review.opendev.org/c/openstack/nova/+/918689 Depends-On: https://review.opendev.org/c/openstack/ironic/+/918690 Change-Id: I28e6159944746abe2d320369249b87f1c4b9e24e 0: http://lists.openstack.org/pipermail/openstack-dev/2016-April/092546.html |
||
|
Nobuhiro MIKI
|
0572d73f85 |
Disable memory_tracker and file_tracker in unstask.sh properly
stop_dstat() calls stop_process() for dstat, memory_tracker and file_tracker respectively. Inside stop_process(), a check for the existence of the service is performed by is_service_enabled(). So even if we apply this seemingly dangerous commit, is_service_enabled() is respected, so it's safe. Closes-Bug: #1998990 Change-Id: Ica58cdb1d60c4c796f582d82ed2cde0be94b1a7e Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp> |
||
|
Balazs Gibizer
|
7191c5e7e7 |
Use proper sed separator for paths
I941ef5ea90970a0901236afe81c551aaf24ac1d8 added a sed command that should match and delete path values but used '/' as sed separator. This leads to error in unstack.sh runs when the path also contains '/': +./unstack.sh:main:188 sudo sed -i '/directory=/opt/stack/ d' /etc/gitconfig sed: -e expression #1, char 13: unknown command: `o' So this patch replace '/' separator with '+'. Change-Id: I06811c0d9ee7ecddf84ef1c6dd6cff5129dbf4b1 |
||
|
Dan Smith
|
4baeb3b51f |
Write safe.directory items to system git config
This is necessary for more consistent behavior across multiple distro versions. Apparently somewhere along the way, git started looking at the current user's home directory instead of $HOME. Related-Bug: https://bugs.launchpad.net/devstack/+bug/1968798 Change-Id: I941ef5ea90970a0901236afe81c551aaf24ac1d8 |
||
|
Zuul
|
0486d4ccf3 | Merge "init_cinder() shouldn't always create DEFAULT_VOLUME_GROUP_NAME" | ||
|
Dan Smith
|
30d9bf9a6d |
Async task support
We have a *ton* of stuff in devstack that is very linear, specifically the ten-ish minutes we spend loading osc to run a single API command against something. We also generate configs, sync databases, and other things that use one core of our worker and make our runtime longer than it really needs to be. The idea in this patch is to make it super simple to run some things in the background and then wait for them to finish before proceeding to something that will require them to be done. This avoids the interleaving you would expect by redirecting the async tasks to a log file, and then cat'ing that log file synchronously during the wait operation. The per-task log file remains so it's easier to examine it in isolation. Multiple people have reported between 22-30% improvement in the time it takes to stack with this. More can be done, but what is here already makes a significant difference. Change-Id: I270a910b531641b023c13f75dfedca057a1f1031 |
||
|
Sean Mooney
|
ae21b3556f |
move cleanup of pyc files
Previously pyc files were only cleaned if clean.sh was run. with this change a new clean_pyc_files function was introduced with the logic that was previously in clean.sh but it is now invoked from unstack.sh With the previous behavior you could not stack with horizon enabled then unstack and stack again due to the presence of pyc files that were owned by root. By moving the clean to unstack in stead of clean.sh you can now stack, unstack and stack again without hitting the pyc issue. since unstack is invoked by clean the existing clean.sh behavior has not changed in practice except for the fact the pyc files are removed sooner in the process. This change also removes support for findutils < 4.2.3 Ubuntu 12.04 and CentOS 6 both have 4.4.2 since they were released 8 years ago and are now EOL its fair to assume that all modern distros have 4.2.3+ https://repology.org/project/findutils/versions Change-Id: I13c9aad9be7e0930a0d875b7d382090caf0b8982 |
||
|
Akihiro Motoki
|
85c5ec11c9 |
Cleanup VM instances during unstack
Currently VMs created by a previous DevStack run still exists even after re-run stack.sh. This leads to a failure in launching a VM after the second run of stack.sh. We need to check the reason of the failure by nova compute log and clean up remaining VMs. It is annoying. IIRC we cleaned up existing VMs. While I failed to identify which commit changed this behavior, I believe it is worth recovering it. This commit changes unstack.sh to call cleanup_nova. cleanup_cinder() already cleans up LVM volumes and some of them may be used by VMs, so I believe it is reasonable to clean up VMs in unstack.sh. Change-Id: I9fcbc5105e443037fada1ef6a76a078145964256 |
||
|
Matt Riedemann
|
b14665f0dd |
Revert "Remove deprecated PostgreSQL database driver"
This reverts commit
|
||
|
Stephen Finucane
|
168ca7f0a4 |
Remove deprecated PostgreSQL database driver
This was deprecated for removal in Pike. It's probably time to drop it. Note that the 'postgresql-devel'/'postgresql-server-dev-all' packages are retained since some packages still include 'psycopg2' in their general requirements. Change-Id: I51e8354e99972757253ce259e6c03c91da24398c Signed-off-by: Stephen Finucane <sfinucan@redhat.com> |
||
|
Huan Xiong
|
63beab5243 |
init_cinder() shouldn't always create DEFAULT_VOLUME_GROUP_NAME
DEFAULT_VOLUME_GROUP_NAME volume group is LVM ephemeral storage used by Nova. It is created by init_nova() if user sets NOVA_BACKEND to "LVM". However, init_cinder() is also hardcoded to create it, based on the asumption that CINDER_ENABLED_BACKENDS includes it. That assumption doesn't hold for the current code. What's more important, even if user wants to use DEFAULT_VOLUME_GROUP_NAME as one of cinder backends and adds it to CINDER_ENABLED_BACKENDS, the current code in init_cinder() are general enough and should work fine. This change removes relevant code in init_cinder(). It also moves DEFAULT_VOLUME_GROUP_NAME clean-up code from unstack.sh to cleanup_nova(). Change-Id: I53762f8eda6256f962cc4e1f1098406879bbcf5c |
||
|
Takashi NATSUME
|
7b1b6f3446 |
Fix that DISTRO is not set in unstack.sh
Change-Id: I36cab41fdb767e8e31073a4fa1f929090f702910 Closes-Bug: #1738938 |
||
|
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 |
||
|
Davanum Srinivas
|
c0d16c279a |
Get rid of zookeeper from devstack
In Ibbb430fb1dbf66942168e0cb52d990ab6a2eb8d7, we are adding etcd3 as a new base service. We should drop zookeeper and use etcd3 as the backend. Since cinder is the first service for this tooz+etcd3 DLM scenario and cinder uses eventlet we have cannnot use the grpc based driver in tooz. So new CINDER_COORDINATION_URL that defaults to the etcd3's grpc HTTP gateway based tooz backend. We need to hold this change until the tooz change (see Depends-On) is available in a tooz release. Depends-On: I6184ed193482dad9643ccb2b97133d4957485408 Change-Id: Ia187e1a86413edf25b909b6bb57e84fb4930a696 |
||
|
Davanum Srinivas
|
546656fc05 |
etcd3 as a base service
ETCD_DOWNLOAD_URL is set to github url, in our CI, we can point ETCD_DOWNLOAD_URL to a url in tarballs.openstack.org possibly in devstack-gate Download the etcd binaries and drop them into /opt/stack/bin and use it from there. Cache the tgz for subsequent use (local workflow) daemon-reload is called twice once from inside the write_user_unit_file and then when we adjust the entries with additional things recommended by the etcd team. We need a better way to do this in the future. Added a TODO to verify the downloaded artifact later. The etcd team posts gpg signature, we could verify that or run sha256sum and hard code that in lib/etcd3 file. We would have to update it whenever we bump the etcd3 version. We use the public key "CoreOS Application Signing Key <security@coreos.com>" with ID FC8A365E to verify the integrity of the downloaded file Any jobs that need to be run on architectures where v3.1.7 is not available should rey the v3.2.0-rcX release candidates. We can switch to v3.2.0 when it gets released. Initial version of this code was borrowed from the dragonflow repo: http://git.openstack.org/cgit/openstack/dragonflow/tree/devstack Change-Id: Ibbb430fb1dbf66942168e0cb52d990ab6a2eb8d7 |
||
|
Sean Dague
|
f3b2f4c853 |
Remove USE_SSL support
tls-proxy is the way we're now doing a standard install using https between services. There is a lot more work to make services directly handle https, and having python daemons do that directly is a bit of an anti pattern. Nothing currently tests this in project-config from my recent grepping, so in the interest of long term maintenance, delete it all. Change-Id: I910df4ceab6f24f3d9c484e0433c93b06f17d6e1 |
||
|
Jenkins
|
de7b435b14 | Merge "Load neutron-legacy only if enabled" | ||
|
YAMAMOTO Takashi
|
c74315e055 |
Load neutron-legacy only if enabled
To avoid using legacy functions accidentially. Depends-On: Ida1f83b6b3ef9b76be13c063c7e35a8703214078 Change-Id: I3ff136fc8330c92007cdfe91b77d7f9865eabd8d |
||
|
xiaolihope
|
8f985b6ff1 |
Remove heat code from devstack tree
This removes all of the heat code from the devstack tree, in favor of the devstack plugin in Heat's tree. Depends-On: I4bed1e5cef5afa7b049b07640086a86a3f881e13 Depends-On: Ic392bcc24bc374ee8511a94f1d8f6ac23131c7e3 Change-Id: I5b60422bf1f5fa78aa8f3383f7a222e0356d9e42 |
||
|
John L. Villalovos
|
bd42d4918e |
Remove call to undefined teardown_neutron_debug
Previously the usage of neutron debug ports was removed by
|
||
|
Clay Gerrard
|
40b433fb07 |
Make unstack.sh more independently deterministic
In some initialization conditions (having never ran stack.sh) the result of unstack.sh is dependent on if the user had previously installed lvm2 or disabled the cinder service. This change makes all results the same with a bit of LBYL. There's also a drive-by to put a comment back where it belongs after being accidentally moved in the related change. Related-Change: I09b1a7bee0785e5e1bb7dc96158a654bd3f15c83 Change-Id: I9a7e052677d60cbbbdd582877f3c6c48c387f668 Closes-Bug: #1619195 |
||
|
Chris Dent
|
4d6017566a |
Add support for placement API to devstack
Uses lib/placement, but relies on some functionality from lib/nova. This leads to some weirdness since the nova has special status in stack.sh. If/when placement is extracted it may be good to follow the devstack plugin structure instead. Because the placement code is currently a part of nova, there are dependencies in lib/placement on a some $NOVA_* variable and, if virtenv is being used, the virtualenv used by nova. Because placement currently runs using nova's configuration settings, not a lot actually happens in lib/placement: apache is configured and keystone accounts and endpoints are created. If PLACEMENT_DB_ENABLED is true then a separate placement db will be configured. When complete the initial version of the placement service will provide support for managing resource providers, inventories and allocations. The placement api only runs under mod-wsgi. Change-Id: I53dd3e6b41de17387a0e179fc9ac64c143b6a9eb |
||
|
Sean Dague
|
b8286a3a06 |
remove neutron 3rd party infrastructure
This was used solely by bigswitch, and everyone else has moved over to devstack plugins. Cleaning this out makes the core logic much simpler. Depends-On: I8fd2ec6e651f858d0ce109fc335189796c3264b8 (grenade removal) Change-Id: I47769fc7faae22d263ffd923165abd48f0791a2c |
||
|
Sean M. Collins
|
2a242519f7 |
Begin new lib/neutron
Background for this work can be read on the mailing list: http://lists.openstack.org/pipermail/openstack-dev/2016-May/094063.html Usage of the new Neutron is by setting the following in ENABLED_SERVICES: * neutron-api * neutron-l3 * neutron-agent * neutron-dhcp * neutron-metadata-agent For now, the new neutron library supports just the ML2 plugin, with the Open vSwitch and Linux Bridge agents supported. All other Neutron plugins should be creating their own DevStack plugin if they wish for DevStack to support them. Many of them already do. Other notable changes compared to neutron-legacy: * Rely on the Neutron defaults, and force Neutron to make sane defaults instead of all kinds of knobs in DevStack. * Default to rootwrap daemon support * Use the security group driver by default * interface_driver can now use NEUTRON_AGENT (linuxbridge, openvswitch), since they are entrypoints in neutron's setup.cfg * Use NEUTRON_AGENT variable to determine which agent to run Works with NEUTRON_AGENT set to either "linuxbridge" or "openvswitch" Default is openvswitch for the time being. * Set ML2 configuration for VXLAN support * Remove Xen hypervisor stuff - it should be a plugin * Move L3 crud into separate service file: There's a lot of L3 configuration that was in the main neutron file, but a lot of it is self contained and can be moved into its own file. The new l3 service file will contain all the previous L3 plumbing and configuration that the OpenStack Gate expects, while also eventually moving the whole l3 network creation step into a single hook that can be overridden by plugins. * Introduce a check for a function "neutron_plugin_create_initial_networks" which will become the mechanism through which different topologies, and networking plugins can create and wire the initial networks that are created during a stack.sh run. The new lib/neutron is considered experimental, and followup patches will build upon this one. Existing users of lib/neutron-legacy should remain unharmed. Co-Authored-By: Hirofumi Ichihara <ichihara.hirofumi@lab.ntt.co.jp> Co-Authored-By: Dean Troyer <dtroyer@gmail.com> Change-Id: I31b6362c6d9992f425f2dedbbeff2568390a93da |
||
|
Davanum Srinivas
|
7a9d78a59e |
Cleanup from zookeeper->dlm change
In I33525e2b83a4497a57ec95f62880e0308c88b34f, we switched from zookeeper to dlm. Somehow this got left behind. Change-Id: I41d13d33c9a81271d4a9752cbe98c0028a17ab1e |
||
|
Nikolay Fedotov
|
7f66503de0 |
Use SCREEN_NAME variable instead of hardcode in unstack and rejoin scripts
Change-Id: I7382eccf96d14df223777cd43344d554b8452a77 |
||
|
Mike Chester
|
8040e69a04 |
Check UNSTACK_ALL or -a flag set on unstack
These flags were not functioning as described. Check if UNSTACK_ALL is set in env or -a flag is set when calling script. Change-Id: I128d32b1e74ee46e24a9eb2e81560e58137b1553 Closes-Bug: #1546687 |
||
|
Jenkins
|
5073896cc9 | Merge "Only use lsb_release for distro tags" | ||
|
Sean Dague
|
e73f88e70b |
tweak ps4 for readability
After staring at a bunch of logs, try to crisp up the ps4 output for maximum readability. This also adds PS4 to all calling scripts by having a common PS4 in stackrc. It should make understanding when clean fails a bit more straight forward. Change-Id: Ia1f8dff5c1102c32c146a020a9f033c65d2c50de |
||
|
Ian Wienand
|
7710e7fc27 |
Only use lsb_release for distro tags
The existing GetOSVersion has a lot of unused code which is wrong in several ways - the only path tested in upstream CI is with lsb_release, because it's pre-installed on all nodes - the /etc/redhat-release checking probably still works, but is unnecessary - If using lsb_release, os_UPDATE has never actually been set. - the /etc/SuSE-release branch checking is broken if the lsb package is actually installed. lsb checking does not set os_UPDATE but yet the SuSE DISTRO setting relies on this to set a patch level (and so does some of the rpm tags). SuSE 11 is up to update 3, but the rpm matching is stuck hard-coded to update 2. I'm guessing installation is actually broken there. - the debian checking branch is broken. The VERSION tags have been removed and were not supposed to be relied on anyway (see notes in [1]) This simplifies things: - remove OSX checking (moved here after discussions in I31d0fdd30928ecc8d959a95838b1d3affd28ac6f) - only use the output of lsb_release. - A small best-effort check to pre-install lsb packages if not detected (that avoids chicken-egg-problem of package-install wrappers relying on os_* flags). - The unset os_UPDATE is removed. It's only previous use was for setting separate suse versions in the DISTRO element for matching during package installs (since removed) - DISTRO setting is modified to use the parts of os_RELEASE it wants. Per-above, this is the correct place to parse out specifics. - Call out the is_* functions, which are a better way to detect platforms - Export the variables as read-only, since they shouldn't be reset [1] http://sources.debian.net/src/base-files/7.5/debian/changelog/ Change-Id: I46a2c36d95327087085df07cb797eb91249a893c |
||
|
Sean Dague
|
5cad4d3fe9 |
refactor zookeeper into a slightly more generic dlm module
This attempts to make the zookeeper installation a bit more modular (assuming that other folks will want to add other dlms as plugins), and addresses the service start issues with zookeeper under ubuntu/upstart. Zookeeper is not going to be installed by default. Services need to ask for it with use_dlm. Change-Id: I33525e2b83a4497a57ec95f62880e0308c88b34f |
||
|
Davanum Srinivas
|
33a96ffc26 |
Zookeeper for DLM scenarios
In Tokyo, there was a cross project session on distributed key locking: https://etherpad.openstack.org/p/mitaka-cross-project-dlm In support of the discussion there, we'll need support for a zookeeper service in Devstack and ability to use libraries like Tooz for DLM functionality. In this review, we pick up some configuration files from monasca-api and copy the lib/template to implement the zookeeper lifecycle. Those services that need zookeeper need to add "zookeeper" in ENABLED_SERVICES. Change-Id: Icef26e5cdaa930a581e27d330e47706776a7f98f |
||
|
Jenkins
|
f845b22a45 | Merge "Remove ceilometer in favor of plugin" | ||
|
Wei Jiangang
|
be65c6f88d |
Fix typos in stackrc and unstack.sh
Componets => Components pluggins => plugins Change-Id: I82634a55fd5895599099c94817af7d8d2f602859 |
||
|
Chris Dent
|
e9a4750fe1 |
Remove ceilometer in favor of plugin
The ceilometer project is moving to using a devstack plugin rather than having ceilometer in the base devstack. This is to allow greater control and flexibility. Change-Id: I413ab159474b7d7231ad66d3a482201f74efe8a8 |
||
|
Jordan Pittier
|
23bf045c18 |
Check if cinder is enabled before doing anything lvm2 related
On some system Cinder is not enabled so we can't assume LVM is installed. So do not try to `sed` /etc/lvm/lvm.conf or clean LVM VG if cinder is not enabled Change-Id: I09b1a7bee0785e5e1bb7dc96158a654bd3f15c83 |
||
|
James E. Blair
|
9e220b9b2b |
Move trove into in-tree plugin
Once the trove code is copied into the trove repo and it is used as a devstack-plugin, we can remove trove-specific code from devstack. Change-Id: I8f9f1a015edb7ec1033e2eaf0b29ab15d89384ce Depends-On: I3506dec0e6097f9c2e9267110fdfb768faa23c85 |
||
|
Dan Smith
|
6cdb2e0f1a |
Remove the lvm.conf filter during cleanup
This avoids us leaving the filter in the global lvm config. Without cleaning this up, we can hit some failures to run stack.sh because devices are excluded that we need to be able to see. This resets it to what it was before when we do a cleanup. Also, do this before we add the line, so we don't add multiple lines on successive runs. Closes-bug: #1437998 Change-Id: Idbf8a06b723f79ef16a7c175ee77a8c25f813244 |
||
|
Dean Troyer
|
dc97cb71e8 |
Mostly docs cleanups
Fix documentation build errors and RST formatting Change-Id: Id93153400c5b069dd9d772381558c7085f64c207 |
||
|
Sean Dague
|
6e275e170c |
provide an override-defaults phase
during the glusterfs integration it was seen that plugins might need to set new defaults on projects before the project files load. Create a new override-defaults phase for that. Intentionally not adding to the documentation yet until we're sure this works right in the glusterfs case. Reported-By: Deepak C Shetty <deepakcs@redhat.com> Change-Id: I13c961b19bdcc1a99e9a7068fe91bbaac787e948 |
||
|
Dean Troyer
|
5a9739a4ca |
Rename lib/neutron to lib/neutron-legacy
Preparing to refactor lib/neutron to support Neutron as the default network config. lib/neutron will be renamed internally and refined to support a couple of specific configurations. Change-Id: I0d3773d14c4c636a4b915734784e7241f4d15474 |
||
|
Mahito OGURA
|
a519f429cf |
Fix unstack.sh to stop stop_dstat when it is disabled.
unstack.sh always stop dstat process, however unstack.sh show 'dstat: no process found' when dstat is disabled. This patch stop function of stop_dstat, when dstat is disabled. Change-Id: If9054826bed8a7fedd4f77ef4efef2c0ccd7f16e Closes-Bug: #1435148 |
||
|
Jenkins
|
4a9b154f5e | Merge "Fix is_keystone_enabled()" | ||
|
Dean Troyer
|
5ce44cd63b |
Fix is_keystone_enabled()
is_keystone_enabled() was calling is_service_enabled(), which is what called is_keystone_enabled() in the first place. Make it work as designed and also change calls to use the full service name. Note that this is all still comptible with the prior usage of 'is_service_enabled key'. Change-Id: I9c28377ecf074b7996461d2a4ca12d88dfc4d47e |
||
|
Jenkins
|
d26da45b98 | Merge "add gating up/down script for devstack" | ||
|
Sean Dague
|
9a413abcd4 |
add gating up/down script for devstack
This adds the test infrastructure for testing that unstack.sh and clean.sh do the right thing, and actually stop what's expected. This is designed to be used in upstream testing to make unstack and clean a bit more certain. It includes numerous fixes to make these pass in an errexit environment with the gate config. The scripts still don't run under errexit because we don't assume we've handled all possible cleanup safely. Change-Id: I774dfb2cc934367eef2bb7ea5123197f6da7565b |
||
|
Rob Crittenden
|
ebcb849634 |
Unconfigure the devstack CA when USE_SSL is True
Change-Id: I17cb5e5d93bfe6fc6746ee530f639e2ed42da85a |
||
|
Sean Dague
|
117c6c2048 |
remove lib/stackforge
Now that we have a working external plugin mechanism stackforge projects definitely don't need to be directly in devstack. These were largely unused previously anyway. Change-Id: I300686b2ac976d9b454404842b3f210fd7c239d9 |
||
|
Daniel Genin
|
d470867f08 |
Adds support for LVM ephemeral storage in Nova
DevStack currently lacks support for LVM ephemeral storage in Nova. This support is important for testing of Nova's LVM backend. The proposed change adds a default volume group, to be shared by Cinder and Nova. It also adds a configuration option NOVA_BACKEND, which must be LVM if it is set, that determines whether Nova should be configured to use LVM ephemeral storage. Change-Id: I4eb9afff3536fbcd563939f2d325efbb845081bb |