Commit Graph

65 Commits

Author SHA1 Message Date
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
2021-02-09 15:57:04 -08:00
Jenkins b719b55b1d Merge "Ensure testing configuration can run as late as possible" 2016-11-30 16:30:38 +00:00
Matt Riedemann c9f6327844 Remove lib/ceph
All jobs using ceph as a storage backend have been moved over
to using the devstack-plugin-ceph repo in project-config so we
should be safe to remove the now unused lib/ceph file.

The files are left in place because the devstack plugin does not
install xfsprogs but it's used by the create_disk function.

And the ceph cinder backend file is left in place since the
devstack-plugin-ceph repo uses that by setting
CINDER_ENABLED_BACKENDS=${CINDER_ENABLED_BACKENDS:-ceph}.

Change-Id: I3fb09fc92bc6ab614e86d701ea46d5741a76b7a8
2016-08-30 17:21:30 -04:00
Sam Betts 5c39154c39 Ensure testing configuration can run as late as possible
Before the code in the extra.d plugins was removed from the devstack
tree they could define the order they ran. When this code is decomposed
into a plugin, there is still a need to do some form of ordering. This
caused problems with the Ironic devstack plugin and Tempest because the
code is run in this order:

 1. The tempest configuration is run from extra.d, processing
    DEFAULT_INSTANCE_TYPE, and writing the flavor_ref to tempest.conf

 2. The Ironic devstack plugin is run, creating the flavor needed for
    DEFAULT_INSTANCE_TYPE

This leads to build failures as tempest can not find the required
flavor, so it writes which ever flavor it can find at the time into
flavor_ref. Ironic now has code it its devstack plugin duplicated from
the tempest plugin to work around this problem until this is merged.

This patch fixes this by using the test-config phase to move the tempest
plugin as late as possible in the devstack process.

Change-Id: I3d98692e69d94756e0034c83a247e05d85177f02
2016-08-10 15:58:27 +01:00
Matthew Treinish 7e603d1bf8
Move tempest plugin install to the end
For the tempest plugin install inside the tox venv to hold we need to
ensure that it's the last thing run that touches the tox venv before
devstack ends. Otherwise there is a chance we'll recreate the venv in
a later step of installing and configuring tempest. This commit
moves the plugin installation into it's own function and calls that
function as last phase of the tempest setup to make sure it runs last.

Change-Id: Ie253171537e8c5a9887cc30aba1cad4b31e57663
2016-06-02 14:50:13 -04:00
Sean Dague c67d22e2ed make the alt_demo user during normal install
For testing reasons it's typically very useful to have a second non
admin user to cross check that it can't do a thing to the first
user. It was useful enough we always created it with tempest (though
we didn't always use it).

This makes devstack always create an alt_demo user, which is available
in occ as devstack-alt. This will help us unwind some of the keystone
v3 breaks with functional tests using keystone cli to build this
second user.

Change-Id: Iaaf02469180563e2d8c413fee0ee66ada2296cfa
2016-02-02 05:51:14 -05:00
Jenkins 6136c4e0bd Merge "remove configuration for boto section" 2016-01-06 19:18:34 +00:00
Jenkins 4847ee69ee Merge "[ceph] Deploy ceph failed at controller node for multiple node" 2016-01-06 18:35:59 +00:00
Andrey Pavlov ba23ba317a remove configuration for boto section
thirdparty.boto tests was removed from tempest and this section
is no needed more

Change-Id: Ibec0534d118423be7a51c2e2b82f1c61531503a0
2015-12-22 23:33:30 +03:00
Jim Rollenhagen 47367071cd Remove ironic code from tree
This removes all of the ironic code from the devstack tree, in favor of
the devstack plugin in Ironic's tree.

Depends-On: I659e3de5c64df798441798ff48ba5c9c0506585a
Depends-On: I2c52bc014f1b0dbc6b0ae22a4deb4132b4c28621
Change-Id: I5125fce295c79600781469c2f48bea80e7600081
2015-12-18 17:26:02 +02:00
Jim Rollenhagen 9fc3ba408a Ironic: add flag for using plugin
This adds a flag to skip ironic code if the ironic devstack plugin is in
use. This flag will be set to true in ironic's devstack plugin to
indicate that the plugin should be in control, rather than devstack.

This is for the transition period only, and will be removed with the
rest of the ironic code in the devstack tree, once the gate
is configured to use the ironic plugin.

Change-Id: Id01d97fd13fa9f866d645ec5077834ddb78b2b89
2015-12-10 15:41:32 +00:00
Deepak C Shetty 93e2499ee1 doc: document override_defaults phase
override_defaults phase was added to devstack in [1]
but documentation was pending. This patch adds the
same. For history around override_defaults, one can
refer to the mail thread [2]

Also fixes a small typo

[1]: https://review.openstack.org/#/c/167933/
[2]: http://lists.openstack.org/pipermail/openstack-dev/2015-March/059621.html

Change-Id: I1b58ca0ce0e4b85a1dbd710b4c426606fd4dcf45
2015-11-18 12:43:54 +05:30
Chung Chih, Hung 65a028bf1c [ceph] Deploy ceph failed at controller node for multiple node
Controller node wouldn't install libvirt package. The package will only
been installed at nodes which had enable nova-compute.
We only need to configure libvirt secret if it had enable nova-compute.

Change-Id: I9cd6baf1820ce9f71c276d7e8b670307833578a5
Closes-Bug: 1515960
2015-11-13 11:12:47 +00:00
Flavio Percoco 624ab1e65d Remove Zaqar from devstack
Zaqar's devstack code has been moved into a plugin in the Zaqar repo.
This patch removes the remaining code from devstack.

Depends-On: Iceefabb6cd528b23075a91e8039b8264eb3f33f5
Change-Id: Ifcf54fa2d4a5bf49b6757b593bb70cdeda8edb2a
2015-09-15 14:38:35 +02:00
Sergey Lukjanov 3381e09f72 Move Sahara into in-tree plugin
Once the Sahara related code moved to Sahara repo and used, we can
remove Sahara specific code from Devstack.

Partial-Implements: bp sahara-devstack-intree

Change-Id: I34412b5cb2e86944b8555b8fd04b43556eb2bbe6
Depends-on: I2e00b2ebc59dd3be6a0539dea2985f2e801a1bd7
Depends-on: I07c3fede473030e8a110cbf5a08309f890905abf
2015-07-01 16:09:56 +00:00
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
2015-05-14 07:57:23 -07:00
Steve Baker 249e36dec6 Remove lib/dib
diskimage-builder is a utility rather than a service, and is already
installed in devstack via pip when required.

lib/dib was created to allow an image to be created during a devstack
run for the heat functional tests, however this approach is no longer
being taken and there are no other known uses for lib/dib.

This change removes lib/dib and moves the pip mirror building to
lib/heat so that snapshot pip packages of the heat agent projects can
be made available to servers which the heat functional tests boot.

This also removes tripleo-image-elements, which has never
been utilised, and since images won't be created
during heat functional test runs it is no longer required.

Change-Id: Ic77f841437ea23c0645d3a34d9dd6bfd1ee28714
2015-03-06 10:57:52 +13:00
Jenkins 8ed3e40be8 Merge "Remove OpenDaylight from being in-tree for devstack" 2015-02-11 02:54:11 +00:00
Sean Dague b36a13a76a gantt is a dead project, remove it
The gantt source trees are dead projects, we should remove them from
devstack.

Change-Id: I0f271891846d2ad7a7a8edd975cdfb4f08419f0c
2015-02-09 13:32:47 -05:00
Sean Dague fa94dfcb17 remove tuskar
Tuskar server support is proposed as an external plugin here
I67dc8420582a40e18de7d5e00094bccc1184a7f9, we should remove Tuskar
from the main devstack tree.

Change-Id: I93e97e7ae8fd03cabc1245a10588c4474d7e3728
2015-02-09 13:32:46 -05:00
Jamie Lennox 85ff5323ff Isolate creating service users
The code for creating service users is almost exactly the same. Abstract
this into a function that can be reused and standardized.

Change-Id: I3a4edbff0a928da7ef9b0097a5a8d508fdfab7ff
2015-02-09 14:36:20 +11:00
Kyle Mestery 76a08f5a93 Remove OpenDaylight from being in-tree for devstack
Now that we have a patch to make this pluggable [1], lets remove this
from the devstack repository.

[1] https://review.openstack.org/#/c/153700/

Change-Id: Ia23f99476ec16df9cc12f63864189835a09eb644
2015-02-06 21:43:52 +00:00
Jamie Lennox 18f39bfb1f Remove the default project from all users
The default project means that a user gains token scoping information
for a project if they don't specify another. This is something we want
to discourage for user creation. User's should specify there own
authentication scope when they authenticate.

Change-Id: I42c3060d59edfcd44d04cd166bad500419dd99bc
2015-01-28 13:38:32 +10:00
Jenkins 222ff80869 Merge "Register heat image in sahara image registry for fake plugin" 2015-01-20 18:36:08 +00:00
Jenkins 955f80a7ef Merge "Enforce UTF-8 encoding when creating databases" 2015-01-20 15:44:07 +00:00
Sean Dague 537532931d Make changes such that -o nounset runs
This makes a bunch of variable cleanups that will let -o nounset
function, for the time being we hide nounset behind another setting
variable so that it's not on by default.

Because this is bash, and things are only executed on demand, this
probably only works in the config it was run in. Expect cleaning up
all the paths to be something that takes quite a while.

This also includes a new set of unit tests around the trueorfalse
function, because my change in how it worked, didn't. Tests are good
m'kay.

Change-Id: I71a896623ea9e1f042a73dc0678ce85acf0dc87d
2015-01-15 13:06:14 -05:00
Sébastien Han 4eb04a5f9e Ability to use a remote Ceph cluster
Sometimes we want to run some benchmarks on virtual machines that will be
backed by a Ceph cluster. The first idea that comes in our mind is to
use devstack to quickly get an OpenStack up and running but what about
the configuration of Devstack with this remote cluster?

Thanks to this commit it's now possible to use an already existing Ceph
cluster. In this case Devstack just needs two things:

* the location of the Ceph config file (by default devstack will look
for /etc/ceph/ceph.conf
* the admin key of the remote ceph cluster (by default devstack will
look for /etc/ceph/ceph.client.admin.keyring)

Devstack will then create the necessary pools, users, keys and will
connect the OpenStack environment as usual. During the unstack phase
every pools, users and keys will be deleted on the remote cluster while
local files and ceph-common package will be removed from the current
Devstack host.

To enable this mode simply add REMOTE_CEPH=True to your localrc file.

Change-Id: I1a4b6fd676d50b6a41a09e7beba9b11f8d1478f7
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-13 09:49:58 +01:00
Andrew Lazarev b31304829f Register heat image in sahara image registry for fake plugin
Fake plugin can work with heat image. Even more, sahara uses heat
to provision instances. So, registering image in sahara image
registry.

Change-Id: Ie498fc05d0afe7f276b6f29f20a61abb58a5c676
Closes-Bug: #1402856
2015-01-09 12:07:08 -08:00
Ihar Hrachyshka 157c84b876 Enforce UTF-8 encoding when creating databases
We use InnoDB everywhere, so there should be no issues with long unicode
keys. Dropped charset parameter for recreate_database since it's not
needed anymore.

Change-Id: Ib768402a9337c918309030a92ab81da17269f4f6
2015-01-05 15:57:23 +01:00
Steven Hardy d591a25e42 Add support for tuskar-api service
Adds initial support for configuring and starting the tuskar-api
service.

To enable, add the following to your localrc:

enable_service tuskar
enable_service tuskar-api

The aim of this addition is to provide a more accessible (non devtest)
way for developers to run up tuskar in a familiar devstack environment.

See the official repos for more information:
https://github.com/openstack/tuskar/
https://github.com/openstack/python-tuskarclient

Change-Id: Id0c3c0d3a38100c66dbe6e3adf1f715162f99742
2014-11-18 18:28:58 +00:00
Sean Dague 5cb190697c support installing clients at released versions
expand the devstack support for libraries from released versions to
support python-* clients and tempest_lib.

Depends-On: I81b0d228e7769758c61e5b0323ecfce8c8886d39

Change-Id: I26fac0ccf8fd4818e24618d56bf04b32306f88f6
2014-11-04 10:18:58 +01:00
Sébastien Han fa16ae92cd Add the ability to activate Nova ceph without Cinder
Prior to this patch, if we wanted to boot a VM in Ceph using
libvirt_image_type we must had Cinder enabled. This patch allows you to
use libvirt_image_type without having Cinder enabled.

Change-Id: Ia61e6effc5a4ccba69f4fa48f6e9984f15bb8979
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-10-09 19:25:23 +02:00
Masayuki Igawa 264174500c Remove sahara-dashboard
sahara-dashboard has been removed in the commit:
  Change-Id: I1f0e93e1dee3d065c4f00d8bf2042bebc8d45a22
However, there is still sahara-dashboard in extras.d/70-sahara.sh. This
causes an error.

/opt/stack/new/devstack/extras.d/70-sahara.sh: line 7:
/opt/stack/new/devstack/lib/sahara-dashboard: No such file or directory

So this commit just removes it.

Change-Id: Iae76dc5f92a1f0a557d43d74b9b5d2c347cc23a9
Closes-Bug: #1363828
2014-09-01 15:36:15 +09:00
Sergey Lukjanov a90898d904 Move sahara client installation to lib/sahara
All other projects installs their clients in the same lib file as the
main services.

Remove sahara-dashboard installation

Sahara dashboard is now merged into the Horizon and enabled by default
(when data_processing endpoint is available), so, we should stop
installing it as separated dashboard.

Change-Id: I1f0e93e1dee3d065c4f00d8bf2042bebc8d45a22
2014-08-27 17:00:01 -07:00
Steve Baker 122ab70330 A service to install diskimage-builder
Enabling service 'dib' will install the following repos:
* diskimage-builder
* tripleo-image-elements
* os-collect-config
* os-refresh-config
* os-apply-config

These repos are already pre-fetched in devstack-gate.

This will facilitate gating on changes in these projects by building
a custom image then running the heat-slow job against that image.

diskimage_builder is pip installed from the current git checkout
if the dib service is enabled. This allows devstack gating on
diskimage-builder changes while also allowing diskimage-builder to
be installed from releases for other scenarios (for example, ironic).

Change-Id: Ia911cdee86f5b2e2ba1557e5aa8bf392b92ef555
2014-08-20 09:06:34 +12:00
Malini Kamalambal 9504bb376d Rename Marconi to Zaqar
This patch changes all Marconi references to Zaqar.

Change-Id: Iec4aeca54c0f383c995fba564bc59daa550d3747
Implements: blueprint project-rename
2014-08-18 14:59:49 -04:00
Sébastien Han 36f2f024db Implement Ceph backend for Glance / Cinder / Nova
The new lib installs a full Ceph cluster. It can be managed
by the service init scripts. Ceph can also be installed in
standalone without any other components.
This implementation adds the auto-configuration for
the following services with Ceph:

* Glance
* Cinder
* Cinder backup
* Nova

To enable Ceph simply add: ENABLED_SERVICES+=,ceph to your localrc.
If you want to play with the Ceph replication, you can use the
CEPH_REPLICAS option and set a replica. This replica will be used for
every pools (Glance, Cinder, Cinder backup and Nova). The size of the
loopback disk used for Ceph can also be managed thanks to the
CEPH_LOOPBACK_DISK_SIZE option.

Going further pools, users and PGs are configurable as well. The
convention is <SERVICE_NAME_IN_CAPITAL>_CEPH_<OPTION> where services are
GLANCE, CINDER, NOVA, CINDER_BAK. Let's take the example of Cinder:

* CINDER_CEPH_POOL
* CINDER_CEPH_USER
* CINDER_CEPH_POOL_PG
* CINDER_CEPH_POOL_PGP

** Only works on Ubuntu Trusty, Fedora 19/20 or later **

Change-Id: Ifec850ba8e1e5263234ef428669150c76cfdb6ad
Implements: blueprint implement-ceph-backend
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-07-23 16:13:45 +02:00
Dean Troyer 5c3a63e633 Add pre-install phase for extras.d plugins
An additional call hook for the extras.d plugins that is called before
any service installation occurs turns out to be needed by Ceph and
useful for other plugins.

This is called between the installation of the system packages listed
as prerequisites and the installation of the actual services.

Change-Id: Id723bdc7542182d2b2eff40c0dc0127307f094c5
2014-07-09 11:35:16 -05:00
Flavio Fernandes 51783ccf38 Invoke create_nova_conf_neutron from odl-compute post-install
only if nova is enabled.

Change-Id: I4627ab97eccd7fd4a2ffc31b6a0bb939b2343659
2014-06-16 10:27:42 -04:00
Sam Hague 09b56b1c31 Add options to configure provider network mappings for
OpenDaylight

OpenDaylight needs to know the physical network mapping
used with vlan tenant isolation. This is similar to how
the bridge_mappings cofig is used to map the physical
network to the bridge,
i.e. bridge_mappings=physnet1:br-eth1,physnet2:br-eth2.

OpenDaylight needs the physical network device itself:
provider_mappings=physnet1:eth1,physnet2:eth2.

OpenDaylight needs the mapping because the device port is
used when pushing flows. The neutron API's provide the
physical provider network value for example as physnet1.

DocImpact:
Use of VLANs with ML2 and the OpenDaylight mechanism driver
requires OpenDaylight Helium or newer to be installed.

Closes-Bug: #1315492
Change-Id: If7af9ce5735b01c35315a54c79355ca87b72c4b4
2014-05-20 18:35:52 +00:00
Sam Hague 408efd2170 Add bridge_mappings to extras/80-opendaylight.sh to support vlan isolation.
OpenDaylight integration with Openstack requires some extra configuration
information to be set in the ovsdb via the other_config value. Currently
only the local ip address is set. bridge_mappings needs to be added to support
vlan isolation.

This requires changing the form of the existing ovs-vsctl command to set
the other_config value. The current command does a replace so the last
command to run overwrites any other values. The command is changed to
append values instead.

Change-Id: Ia001ecf27c8f5ace05af014ecce0b13f6d490ac1
2014-04-23 11:19:28 -04:00
Simon Pasquier cfc9ebba85 Set parameters for OpenDaylight ML2 driver
Now that https://review.openstack.org/#/c/85589/ is merged, the
OpenDaylight ML2 driver requires that url, username and password
parameters are set.

Change-Id: Iecbdd3275387bea145a5d274d359a15eceaee6b7
Closes-Bug: #1304226
2014-04-08 09:34:44 +02:00
Jenkins 5d4406c56d Merge "Complete moving Keystone setup out of keystone_data.sh" 2014-03-18 05:46:48 +00:00
Alexander Gordeev 06fb29c661 Integration testing preparation for Ironic
Add ability to create/register qemu vms for Ironic testing purposes

Implements bp:deprecate-baremetal-driver

Change-Id: If452438fcc0ff562531b33a36cd189b235654b48
2014-03-14 13:44:00 -07:00
Sergey Lukjanov 7ff8443e46 Rename all Savanna usages to Sahara
There are several backward compatibility nits.

Change-Id: I93cac543375896602d158860cc557f86e41bcb63
2014-03-12 22:25:20 +04:00
Dean Troyer 42a59c2bfa Complete moving Keystone setup out of keystone_data.sh
* Move remaining role creation to create_keystone_accounts()
* Move glance creation to create_glance_accounts()
* Move nova/ec2/s3 creation to create_nova_accounts()
* Move ceilometer creation to create_ceilometer_accounts()
* Move tempest creation to create_tempest_accounts()
* Convert moved code to use OpenStackClient for setup
* files/keystone_data.sh is removed

Note that the SERVICE_TENANT and ADMIN_ROLE lookups in the other service
implementations are not necessary with OSC, all operations can be done
using names rather than requiring IDs.

Change-Id: I4283ca0036ae39fd44ed2eed834b69d78e4f8257
2014-03-10 15:17:30 -05:00
Roey Chen 11b36c9b0a Fixed unconditioned source phase in OpenDaylight extras
Should source ``lib/opendaylight`` in ``extras.d/80-opendaylight.sh``
only when appropriate services are enabled.
Fix for bug/1290033

Change-Id: Ifa470e1e132029f3c5bf255f27c4e96373b339a8
Signed-off-by: Roey Chen <roeyc@mellanox.com>
2014-03-10 14:30:00 +02:00
Kyle Mestery d44517dfcf Add support for configuring OVS to work with OpenDaylight
This adds support for running OpenDaylight as an OpenStack Neutron plugin
under devstack. This entails downloading the latest version of OpenDaylight,
configuring it, and running it as a service under devstack. This code also
includes pieces which configure Open vSwitch on each devstack node to point
at OpenDaylight as their OpenFlow and OVSDB control interface. This is
required for compute hosts, which will not be running any Neutron software
on them at all. This post-devstack configuration is handled in the extras
directory because of the fact there is no Neutron code running on the compute
hosts themselves.

Closes-bug: #1273917

Change-Id: I696e7c7fe63c835f90c56105775def305a702877
2014-03-06 16:19:10 +00:00
Sergey Lukjanov de2057290a Improve savanna keystone auth configuration
We're doing to use common keystone configuration approach - section
keystone_authtoken with config opts from the python-keystoneclient
auth_token middleware.

Change-Id: Ibbe0c76ee3b00045f5cb5134bd7661e9cef6ccdd
2014-02-20 01:56:17 +04:00
Yuriy Zveryanskyy c86ec3568c Fix hook script for Ironic
cleanup_ironic should not be started on "unstack" phase,
otherwise API service not restarted because auth cache
directory removed.

Change-Id: I3da86b9fb8c3ce1185aff05df0fa83cf259708f4
2014-02-12 11:04:15 +02:00