Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a6a717a15 | |||
| a70d84ceed | |||
| 7adb4c59c2 | |||
| 3d3ab6bd4b | |||
| ba659bc0be | |||
| d18f37eb08 | |||
| 363e8cd6b8 | |||
| 601e71064c | |||
| 5fb49f5a72 | |||
| 6a0261d9ee | |||
| 7a8e2c2ff4 | |||
| f190f9a80e | |||
| 59880c4edd | |||
| 0c980c6f81 | |||
| b376719fc0 | |||
| d7738b35fd | |||
| 66827dda40 | |||
| 5a66ce224c | |||
| 4a1cedc8c3 | |||
| a074d82eee | |||
| 8ab40f4652 | |||
| af3c43f1f6 | |||
| 8cb43d098c | |||
| 1e21a2d70f | |||
| 2c7f377b15 | |||
| 727da57e81 | |||
| 894c83051b | |||
| 64582c2ac6 | |||
| 99a2c6c614 | |||
| 76a3ae6ca2 | |||
| 6e02b553b0 | |||
| 02752f5df2 | |||
| 55dc9aaa68 | |||
| 24bb870492 | |||
| be43083d93 | |||
| a7d927be23 | |||
| ad99d28f0f | |||
| a1daf9c003 | |||
| 969d0a392b | |||
| 841f09c99e | |||
| 0a313468a3 | |||
| 1aff8ff26c | |||
| 36b5bcb0f3 | |||
| da567a4ecd | |||
| c65ec071e9 | |||
| 9b7cf0176b | |||
| 21ad8a9d56 | |||
| 2c45d94e46 | |||
| 53bc172448 | |||
| eec5c1a5a9 | |||
| 49f5b9f5ec | |||
| 79c19b6af4 | |||
| d319ee9f48 | |||
| 14b3b96cfd | |||
| ac054783e9 | |||
| 28b034fc95 | |||
| 9379c95727 | |||
| d26bcdfa41 | |||
| 770f0432a9 | |||
| f61ca5fd61 | |||
| 00edb2f380 | |||
| c1921f75b1 | |||
| 291d2d4c6a | |||
| cead7a1ba9 | |||
| 58de94f277 | |||
| 572815e7dc |
+3
-2
@@ -1,4 +1,5 @@
|
||||
[gerrit]
|
||||
host=review.openstack.org
|
||||
host=review.opendev.org
|
||||
port=29418
|
||||
project=openstack-dev/devstack.git
|
||||
project=openstack/devstack.git
|
||||
defaultbranch=stable/ocata
|
||||
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
- project:
|
||||
templates:
|
||||
- integrated-gate
|
||||
- integrated-gate-py35
|
||||
- publish-openstack-sphinx-docs
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-bashate
|
||||
- ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa:
|
||||
voting: false
|
||||
- swift-dsvm-functional:
|
||||
voting: false
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-grenade:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-grenade-multinode:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-tempest-linuxbridge:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- tempest-multinode-full:
|
||||
voting: false
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-bashate
|
||||
- neutron-grenade-multinode:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-tempest-linuxbridge:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-grenade:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
experimental:
|
||||
jobs:
|
||||
- devstack-plugin-ceph-tempest:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-tempest-dvr:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- legacy-tempest-dsvm-neutron-dvr-multinode-full:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- neutron-tempest-dvr-ha-multinode-full:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- legacy-tempest-dsvm-lvm-multibackend:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- legacy-tempest-dsvm-neutron-pg-full:
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
@@ -35,7 +35,7 @@ You can also pick specific OpenStack project releases by setting the appropriate
|
||||
`stackrc` for the default set). Usually just before a release there will be
|
||||
milestone-proposed branches that need to be tested::
|
||||
|
||||
GLANCE_REPO=git://git.openstack.org/openstack/glance.git
|
||||
GLANCE_REPO=https://git.openstack.org/openstack/glance.git
|
||||
GLANCE_BRANCH=milestone-proposed
|
||||
|
||||
# Start A Dev Cloud
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
pbr>=0.6,!=0.7,<1.0
|
||||
|
||||
Pygments
|
||||
docutils
|
||||
sphinx>=1.1.2,<1.2
|
||||
oslosphinx
|
||||
nwdiag
|
||||
blockdiag
|
||||
sphinxcontrib-blockdiag
|
||||
sphinxcontrib-nwdiag
|
||||
@@ -176,7 +176,7 @@ machines, create a ``local.conf`` with:
|
||||
MYSQL_HOST=$SERVICE_HOST
|
||||
RABBIT_HOST=$SERVICE_HOST
|
||||
GLANCE_HOSTPORT=$SERVICE_HOST:9292
|
||||
ENABLED_SERVICES=n-cpu,n-net,n-api-meta,c-vol
|
||||
ENABLED_SERVICES=n-cpu,n-net,n-api-meta,c-vol,placement-client
|
||||
NOVA_VNC_ENABLED=True
|
||||
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
|
||||
VNCSERVER_LISTEN=$HOST_IP
|
||||
|
||||
@@ -567,7 +567,7 @@ you do not require them.
|
||||
Q_ML2_PLUGIN_MECHANISM_DRIVERS=macvtap
|
||||
Q_USE_PROVIDER_NETWORKING=True
|
||||
|
||||
enable_plugin neutron git://git.openstack.org/openstack/neutron
|
||||
enable_plugin neutron https://git.openstack.org/openstack/neutron
|
||||
|
||||
## MacVTap agent options
|
||||
Q_AGENT=macvtap
|
||||
@@ -622,7 +622,7 @@ For the MacVTap compute node, use this local.conf:
|
||||
|
||||
# Services that a compute node runs
|
||||
disable_all_services
|
||||
enable_plugin neutron git://git.openstack.org/openstack/neutron
|
||||
enable_plugin neutron https://git.openstack.org/openstack/neutron
|
||||
ENABLED_SERVICES+=n-cpu,q-agt
|
||||
|
||||
## MacVTap agent options
|
||||
|
||||
+133
-133
@@ -24,139 +24,139 @@ official OpenStack projects.
|
||||
====================================== ===
|
||||
Plugin Name URL
|
||||
====================================== ===
|
||||
almanach `git://git.openstack.org/openstack/almanach <https://git.openstack.org/cgit/openstack/almanach>`__
|
||||
aodh `git://git.openstack.org/openstack/aodh <https://git.openstack.org/cgit/openstack/aodh>`__
|
||||
app-catalog-ui `git://git.openstack.org/openstack/app-catalog-ui <https://git.openstack.org/cgit/openstack/app-catalog-ui>`__
|
||||
astara `git://git.openstack.org/openstack/astara <https://git.openstack.org/cgit/openstack/astara>`__
|
||||
barbican `git://git.openstack.org/openstack/barbican <https://git.openstack.org/cgit/openstack/barbican>`__
|
||||
bilean `git://git.openstack.org/openstack/bilean <https://git.openstack.org/cgit/openstack/bilean>`__
|
||||
blazar `git://git.openstack.org/openstack/blazar <https://git.openstack.org/cgit/openstack/blazar>`__
|
||||
broadview-collector `git://git.openstack.org/openstack/broadview-collector <https://git.openstack.org/cgit/openstack/broadview-collector>`__
|
||||
ceilometer `git://git.openstack.org/openstack/ceilometer <https://git.openstack.org/cgit/openstack/ceilometer>`__
|
||||
ceilometer-powervm `git://git.openstack.org/openstack/ceilometer-powervm <https://git.openstack.org/cgit/openstack/ceilometer-powervm>`__
|
||||
cerberus `git://git.openstack.org/openstack/cerberus <https://git.openstack.org/cgit/openstack/cerberus>`__
|
||||
cloudkitty `git://git.openstack.org/openstack/cloudkitty <https://git.openstack.org/cgit/openstack/cloudkitty>`__
|
||||
collectd-ceilometer-plugin `git://git.openstack.org/openstack/collectd-ceilometer-plugin <https://git.openstack.org/cgit/openstack/collectd-ceilometer-plugin>`__
|
||||
congress `git://git.openstack.org/openstack/congress <https://git.openstack.org/cgit/openstack/congress>`__
|
||||
cue `git://git.openstack.org/openstack/cue <https://git.openstack.org/cgit/openstack/cue>`__
|
||||
designate `git://git.openstack.org/openstack/designate <https://git.openstack.org/cgit/openstack/designate>`__
|
||||
devstack-plugin-additional-pkg-repos `git://git.openstack.org/openstack/devstack-plugin-additional-pkg-repos <https://git.openstack.org/cgit/openstack/devstack-plugin-additional-pkg-repos>`__
|
||||
devstack-plugin-amqp1 `git://git.openstack.org/openstack/devstack-plugin-amqp1 <https://git.openstack.org/cgit/openstack/devstack-plugin-amqp1>`__
|
||||
devstack-plugin-bdd `git://git.openstack.org/openstack/devstack-plugin-bdd <https://git.openstack.org/cgit/openstack/devstack-plugin-bdd>`__
|
||||
devstack-plugin-ceph `git://git.openstack.org/openstack/devstack-plugin-ceph <https://git.openstack.org/cgit/openstack/devstack-plugin-ceph>`__
|
||||
devstack-plugin-glusterfs `git://git.openstack.org/openstack/devstack-plugin-glusterfs <https://git.openstack.org/cgit/openstack/devstack-plugin-glusterfs>`__
|
||||
devstack-plugin-hdfs `git://git.openstack.org/openstack/devstack-plugin-hdfs <https://git.openstack.org/cgit/openstack/devstack-plugin-hdfs>`__
|
||||
devstack-plugin-kafka `git://git.openstack.org/openstack/devstack-plugin-kafka <https://git.openstack.org/cgit/openstack/devstack-plugin-kafka>`__
|
||||
devstack-plugin-mariadb `git://git.openstack.org/openstack/devstack-plugin-mariadb <https://git.openstack.org/cgit/openstack/devstack-plugin-mariadb>`__
|
||||
devstack-plugin-nfs `git://git.openstack.org/openstack/devstack-plugin-nfs <https://git.openstack.org/cgit/openstack/devstack-plugin-nfs>`__
|
||||
devstack-plugin-pika `git://git.openstack.org/openstack/devstack-plugin-pika <https://git.openstack.org/cgit/openstack/devstack-plugin-pika>`__
|
||||
devstack-plugin-sheepdog `git://git.openstack.org/openstack/devstack-plugin-sheepdog <https://git.openstack.org/cgit/openstack/devstack-plugin-sheepdog>`__
|
||||
devstack-plugin-zmq `git://git.openstack.org/openstack/devstack-plugin-zmq <https://git.openstack.org/cgit/openstack/devstack-plugin-zmq>`__
|
||||
dragonflow `git://git.openstack.org/openstack/dragonflow <https://git.openstack.org/cgit/openstack/dragonflow>`__
|
||||
drbd-devstack `git://git.openstack.org/openstack/drbd-devstack <https://git.openstack.org/cgit/openstack/drbd-devstack>`__
|
||||
ec2-api `git://git.openstack.org/openstack/ec2-api <https://git.openstack.org/cgit/openstack/ec2-api>`__
|
||||
freezer `git://git.openstack.org/openstack/freezer <https://git.openstack.org/cgit/openstack/freezer>`__
|
||||
freezer-api `git://git.openstack.org/openstack/freezer-api <https://git.openstack.org/cgit/openstack/freezer-api>`__
|
||||
freezer-web-ui `git://git.openstack.org/openstack/freezer-web-ui <https://git.openstack.org/cgit/openstack/freezer-web-ui>`__
|
||||
fuxi `git://git.openstack.org/openstack/fuxi <https://git.openstack.org/cgit/openstack/fuxi>`__
|
||||
gce-api `git://git.openstack.org/openstack/gce-api <https://git.openstack.org/cgit/openstack/gce-api>`__
|
||||
glare `git://git.openstack.org/openstack/glare <https://git.openstack.org/cgit/openstack/glare>`__
|
||||
gnocchi `git://git.openstack.org/openstack/gnocchi <https://git.openstack.org/cgit/openstack/gnocchi>`__
|
||||
group-based-policy `git://git.openstack.org/openstack/group-based-policy <https://git.openstack.org/cgit/openstack/group-based-policy>`__
|
||||
heat `git://git.openstack.org/openstack/heat <https://git.openstack.org/cgit/openstack/heat>`__
|
||||
horizon-mellanox `git://git.openstack.org/openstack/horizon-mellanox <https://git.openstack.org/cgit/openstack/horizon-mellanox>`__
|
||||
ironic `git://git.openstack.org/openstack/ironic <https://git.openstack.org/cgit/openstack/ironic>`__
|
||||
ironic-inspector `git://git.openstack.org/openstack/ironic-inspector <https://git.openstack.org/cgit/openstack/ironic-inspector>`__
|
||||
ironic-staging-drivers `git://git.openstack.org/openstack/ironic-staging-drivers <https://git.openstack.org/cgit/openstack/ironic-staging-drivers>`__
|
||||
karbor `git://git.openstack.org/openstack/karbor <https://git.openstack.org/cgit/openstack/karbor>`__
|
||||
karbor-dashboard `git://git.openstack.org/openstack/karbor-dashboard <https://git.openstack.org/cgit/openstack/karbor-dashboard>`__
|
||||
keystone `git://git.openstack.org/openstack/keystone <https://git.openstack.org/cgit/openstack/keystone>`__
|
||||
kingbird `git://git.openstack.org/openstack/kingbird <https://git.openstack.org/cgit/openstack/kingbird>`__
|
||||
kuryr-kubernetes `git://git.openstack.org/openstack/kuryr-kubernetes <https://git.openstack.org/cgit/openstack/kuryr-kubernetes>`__
|
||||
kuryr-libnetwork `git://git.openstack.org/openstack/kuryr-libnetwork <https://git.openstack.org/cgit/openstack/kuryr-libnetwork>`__
|
||||
magnum `git://git.openstack.org/openstack/magnum <https://git.openstack.org/cgit/openstack/magnum>`__
|
||||
magnum-ui `git://git.openstack.org/openstack/magnum-ui <https://git.openstack.org/cgit/openstack/magnum-ui>`__
|
||||
manila `git://git.openstack.org/openstack/manila <https://git.openstack.org/cgit/openstack/manila>`__
|
||||
manila-ui `git://git.openstack.org/openstack/manila-ui <https://git.openstack.org/cgit/openstack/manila-ui>`__
|
||||
masakari `git://git.openstack.org/openstack/masakari <https://git.openstack.org/cgit/openstack/masakari>`__
|
||||
meteos `git://git.openstack.org/openstack/meteos <https://git.openstack.org/cgit/openstack/meteos>`__
|
||||
meteos-ui `git://git.openstack.org/openstack/meteos-ui <https://git.openstack.org/cgit/openstack/meteos-ui>`__
|
||||
mistral `git://git.openstack.org/openstack/mistral <https://git.openstack.org/cgit/openstack/mistral>`__
|
||||
mixmatch `git://git.openstack.org/openstack/mixmatch <https://git.openstack.org/cgit/openstack/mixmatch>`__
|
||||
mogan `git://git.openstack.org/openstack/mogan <https://git.openstack.org/cgit/openstack/mogan>`__
|
||||
monasca-analytics `git://git.openstack.org/openstack/monasca-analytics <https://git.openstack.org/cgit/openstack/monasca-analytics>`__
|
||||
monasca-api `git://git.openstack.org/openstack/monasca-api <https://git.openstack.org/cgit/openstack/monasca-api>`__
|
||||
monasca-ceilometer `git://git.openstack.org/openstack/monasca-ceilometer <https://git.openstack.org/cgit/openstack/monasca-ceilometer>`__
|
||||
monasca-log-api `git://git.openstack.org/openstack/monasca-log-api <https://git.openstack.org/cgit/openstack/monasca-log-api>`__
|
||||
monasca-transform `git://git.openstack.org/openstack/monasca-transform <https://git.openstack.org/cgit/openstack/monasca-transform>`__
|
||||
murano `git://git.openstack.org/openstack/murano <https://git.openstack.org/cgit/openstack/murano>`__
|
||||
networking-6wind `git://git.openstack.org/openstack/networking-6wind <https://git.openstack.org/cgit/openstack/networking-6wind>`__
|
||||
networking-arista `git://git.openstack.org/openstack/networking-arista <https://git.openstack.org/cgit/openstack/networking-arista>`__
|
||||
networking-bagpipe `git://git.openstack.org/openstack/networking-bagpipe <https://git.openstack.org/cgit/openstack/networking-bagpipe>`__
|
||||
networking-bgpvpn `git://git.openstack.org/openstack/networking-bgpvpn <https://git.openstack.org/cgit/openstack/networking-bgpvpn>`__
|
||||
networking-brocade `git://git.openstack.org/openstack/networking-brocade <https://git.openstack.org/cgit/openstack/networking-brocade>`__
|
||||
networking-calico `git://git.openstack.org/openstack/networking-calico <https://git.openstack.org/cgit/openstack/networking-calico>`__
|
||||
networking-cisco `git://git.openstack.org/openstack/networking-cisco <https://git.openstack.org/cgit/openstack/networking-cisco>`__
|
||||
networking-cumulus `git://git.openstack.org/openstack/networking-cumulus <https://git.openstack.org/cgit/openstack/networking-cumulus>`__
|
||||
networking-dpm `git://git.openstack.org/openstack/networking-dpm <https://git.openstack.org/cgit/openstack/networking-dpm>`__
|
||||
networking-fortinet `git://git.openstack.org/openstack/networking-fortinet <https://git.openstack.org/cgit/openstack/networking-fortinet>`__
|
||||
networking-generic-switch `git://git.openstack.org/openstack/networking-generic-switch <https://git.openstack.org/cgit/openstack/networking-generic-switch>`__
|
||||
networking-huawei `git://git.openstack.org/openstack/networking-huawei <https://git.openstack.org/cgit/openstack/networking-huawei>`__
|
||||
networking-infoblox `git://git.openstack.org/openstack/networking-infoblox <https://git.openstack.org/cgit/openstack/networking-infoblox>`__
|
||||
networking-l2gw `git://git.openstack.org/openstack/networking-l2gw <https://git.openstack.org/cgit/openstack/networking-l2gw>`__
|
||||
networking-midonet `git://git.openstack.org/openstack/networking-midonet <https://git.openstack.org/cgit/openstack/networking-midonet>`__
|
||||
networking-mlnx `git://git.openstack.org/openstack/networking-mlnx <https://git.openstack.org/cgit/openstack/networking-mlnx>`__
|
||||
networking-nec `git://git.openstack.org/openstack/networking-nec <https://git.openstack.org/cgit/openstack/networking-nec>`__
|
||||
networking-odl `git://git.openstack.org/openstack/networking-odl <https://git.openstack.org/cgit/openstack/networking-odl>`__
|
||||
networking-ofagent `git://git.openstack.org/openstack/networking-ofagent <https://git.openstack.org/cgit/openstack/networking-ofagent>`__
|
||||
networking-onos `git://git.openstack.org/openstack/networking-onos <https://git.openstack.org/cgit/openstack/networking-onos>`__
|
||||
networking-ovn `git://git.openstack.org/openstack/networking-ovn <https://git.openstack.org/cgit/openstack/networking-ovn>`__
|
||||
networking-ovs-dpdk `git://git.openstack.org/openstack/networking-ovs-dpdk <https://git.openstack.org/cgit/openstack/networking-ovs-dpdk>`__
|
||||
networking-plumgrid `git://git.openstack.org/openstack/networking-plumgrid <https://git.openstack.org/cgit/openstack/networking-plumgrid>`__
|
||||
networking-powervm `git://git.openstack.org/openstack/networking-powervm <https://git.openstack.org/cgit/openstack/networking-powervm>`__
|
||||
networking-sfc `git://git.openstack.org/openstack/networking-sfc <https://git.openstack.org/cgit/openstack/networking-sfc>`__
|
||||
networking-vpp `git://git.openstack.org/openstack/networking-vpp <https://git.openstack.org/cgit/openstack/networking-vpp>`__
|
||||
networking-vsphere `git://git.openstack.org/openstack/networking-vsphere <https://git.openstack.org/cgit/openstack/networking-vsphere>`__
|
||||
neutron `git://git.openstack.org/openstack/neutron <https://git.openstack.org/cgit/openstack/neutron>`__
|
||||
neutron-dynamic-routing `git://git.openstack.org/openstack/neutron-dynamic-routing <https://git.openstack.org/cgit/openstack/neutron-dynamic-routing>`__
|
||||
neutron-fwaas `git://git.openstack.org/openstack/neutron-fwaas <https://git.openstack.org/cgit/openstack/neutron-fwaas>`__
|
||||
neutron-lbaas `git://git.openstack.org/openstack/neutron-lbaas <https://git.openstack.org/cgit/openstack/neutron-lbaas>`__
|
||||
neutron-lbaas-dashboard `git://git.openstack.org/openstack/neutron-lbaas-dashboard <https://git.openstack.org/cgit/openstack/neutron-lbaas-dashboard>`__
|
||||
neutron-vpnaas `git://git.openstack.org/openstack/neutron-vpnaas <https://git.openstack.org/cgit/openstack/neutron-vpnaas>`__
|
||||
nova-docker `git://git.openstack.org/openstack/nova-docker <https://git.openstack.org/cgit/openstack/nova-docker>`__
|
||||
nova-dpm `git://git.openstack.org/openstack/nova-dpm <https://git.openstack.org/cgit/openstack/nova-dpm>`__
|
||||
nova-lxd `git://git.openstack.org/openstack/nova-lxd <https://git.openstack.org/cgit/openstack/nova-lxd>`__
|
||||
nova-mksproxy `git://git.openstack.org/openstack/nova-mksproxy <https://git.openstack.org/cgit/openstack/nova-mksproxy>`__
|
||||
nova-powervm `git://git.openstack.org/openstack/nova-powervm <https://git.openstack.org/cgit/openstack/nova-powervm>`__
|
||||
oaktree `git://git.openstack.org/openstack/oaktree <https://git.openstack.org/cgit/openstack/oaktree>`__
|
||||
octavia `git://git.openstack.org/openstack/octavia <https://git.openstack.org/cgit/openstack/octavia>`__
|
||||
os-xenapi `git://git.openstack.org/openstack/os-xenapi <https://git.openstack.org/cgit/openstack/os-xenapi>`__
|
||||
osprofiler `git://git.openstack.org/openstack/osprofiler <https://git.openstack.org/cgit/openstack/osprofiler>`__
|
||||
panko `git://git.openstack.org/openstack/panko <https://git.openstack.org/cgit/openstack/panko>`__
|
||||
picasso `git://git.openstack.org/openstack/picasso <https://git.openstack.org/cgit/openstack/picasso>`__
|
||||
rally `git://git.openstack.org/openstack/rally <https://git.openstack.org/cgit/openstack/rally>`__
|
||||
sahara `git://git.openstack.org/openstack/sahara <https://git.openstack.org/cgit/openstack/sahara>`__
|
||||
sahara-dashboard `git://git.openstack.org/openstack/sahara-dashboard <https://git.openstack.org/cgit/openstack/sahara-dashboard>`__
|
||||
scalpels `git://git.openstack.org/openstack/scalpels <https://git.openstack.org/cgit/openstack/scalpels>`__
|
||||
searchlight `git://git.openstack.org/openstack/searchlight <https://git.openstack.org/cgit/openstack/searchlight>`__
|
||||
searchlight-ui `git://git.openstack.org/openstack/searchlight-ui <https://git.openstack.org/cgit/openstack/searchlight-ui>`__
|
||||
senlin `git://git.openstack.org/openstack/senlin <https://git.openstack.org/cgit/openstack/senlin>`__
|
||||
solum `git://git.openstack.org/openstack/solum <https://git.openstack.org/cgit/openstack/solum>`__
|
||||
tacker `git://git.openstack.org/openstack/tacker <https://git.openstack.org/cgit/openstack/tacker>`__
|
||||
tap-as-a-service `git://git.openstack.org/openstack/tap-as-a-service <https://git.openstack.org/cgit/openstack/tap-as-a-service>`__
|
||||
tricircle `git://git.openstack.org/openstack/tricircle <https://git.openstack.org/cgit/openstack/tricircle>`__
|
||||
trio2o `git://git.openstack.org/openstack/trio2o <https://git.openstack.org/cgit/openstack/trio2o>`__
|
||||
trove `git://git.openstack.org/openstack/trove <https://git.openstack.org/cgit/openstack/trove>`__
|
||||
trove-dashboard `git://git.openstack.org/openstack/trove-dashboard <https://git.openstack.org/cgit/openstack/trove-dashboard>`__
|
||||
vitrage `git://git.openstack.org/openstack/vitrage <https://git.openstack.org/cgit/openstack/vitrage>`__
|
||||
vitrage-dashboard `git://git.openstack.org/openstack/vitrage-dashboard <https://git.openstack.org/cgit/openstack/vitrage-dashboard>`__
|
||||
vmware-nsx `git://git.openstack.org/openstack/vmware-nsx <https://git.openstack.org/cgit/openstack/vmware-nsx>`__
|
||||
watcher `git://git.openstack.org/openstack/watcher <https://git.openstack.org/cgit/openstack/watcher>`__
|
||||
watcher-dashboard `git://git.openstack.org/openstack/watcher-dashboard <https://git.openstack.org/cgit/openstack/watcher-dashboard>`__
|
||||
zaqar `git://git.openstack.org/openstack/zaqar <https://git.openstack.org/cgit/openstack/zaqar>`__
|
||||
zaqar-ui `git://git.openstack.org/openstack/zaqar-ui <https://git.openstack.org/cgit/openstack/zaqar-ui>`__
|
||||
zun `git://git.openstack.org/openstack/zun <https://git.openstack.org/cgit/openstack/zun>`__
|
||||
zun-ui `git://git.openstack.org/openstack/zun-ui <https://git.openstack.org/cgit/openstack/zun-ui>`__
|
||||
almanach `https://git.openstack.org/openstack/almanach <https://git.openstack.org/cgit/openstack/almanach>`__
|
||||
aodh `https://git.openstack.org/openstack/aodh <https://git.openstack.org/cgit/openstack/aodh>`__
|
||||
app-catalog-ui `https://git.openstack.org/openstack/app-catalog-ui <https://git.openstack.org/cgit/openstack/app-catalog-ui>`__
|
||||
astara `https://git.openstack.org/openstack/astara <https://git.openstack.org/cgit/openstack/astara>`__
|
||||
barbican `https://git.openstack.org/openstack/barbican <https://git.openstack.org/cgit/openstack/barbican>`__
|
||||
bilean `https://git.openstack.org/openstack/bilean <https://git.openstack.org/cgit/openstack/bilean>`__
|
||||
blazar `https://git.openstack.org/openstack/blazar <https://git.openstack.org/cgit/openstack/blazar>`__
|
||||
broadview-collector `https://git.openstack.org/openstack/broadview-collector <https://git.openstack.org/cgit/openstack/broadview-collector>`__
|
||||
ceilometer `https://git.openstack.org/openstack/ceilometer <https://git.openstack.org/cgit/openstack/ceilometer>`__
|
||||
ceilometer-powervm `https://git.openstack.org/openstack/ceilometer-powervm <https://git.openstack.org/cgit/openstack/ceilometer-powervm>`__
|
||||
cerberus `https://git.openstack.org/openstack/cerberus <https://git.openstack.org/cgit/openstack/cerberus>`__
|
||||
cloudkitty `https://git.openstack.org/openstack/cloudkitty <https://git.openstack.org/cgit/openstack/cloudkitty>`__
|
||||
collectd-ceilometer-plugin `https://git.openstack.org/openstack/collectd-ceilometer-plugin <https://git.openstack.org/cgit/openstack/collectd-ceilometer-plugin>`__
|
||||
congress `https://git.openstack.org/openstack/congress <https://git.openstack.org/cgit/openstack/congress>`__
|
||||
cue `https://git.openstack.org/openstack/cue <https://git.openstack.org/cgit/openstack/cue>`__
|
||||
designate `https://git.openstack.org/openstack/designate <https://git.openstack.org/cgit/openstack/designate>`__
|
||||
devstack-plugin-additional-pkg-repos `https://git.openstack.org/openstack/devstack-plugin-additional-pkg-repos <https://git.openstack.org/cgit/openstack/devstack-plugin-additional-pkg-repos>`__
|
||||
devstack-plugin-amqp1 `https://git.openstack.org/openstack/devstack-plugin-amqp1 <https://git.openstack.org/cgit/openstack/devstack-plugin-amqp1>`__
|
||||
devstack-plugin-bdd `https://git.openstack.org/openstack/devstack-plugin-bdd <https://git.openstack.org/cgit/openstack/devstack-plugin-bdd>`__
|
||||
devstack-plugin-ceph `https://git.openstack.org/openstack/devstack-plugin-ceph <https://git.openstack.org/cgit/openstack/devstack-plugin-ceph>`__
|
||||
devstack-plugin-glusterfs `https://git.openstack.org/openstack/devstack-plugin-glusterfs <https://git.openstack.org/cgit/openstack/devstack-plugin-glusterfs>`__
|
||||
devstack-plugin-hdfs `https://git.openstack.org/openstack/devstack-plugin-hdfs <https://git.openstack.org/cgit/openstack/devstack-plugin-hdfs>`__
|
||||
devstack-plugin-kafka `https://git.openstack.org/openstack/devstack-plugin-kafka <https://git.openstack.org/cgit/openstack/devstack-plugin-kafka>`__
|
||||
devstack-plugin-mariadb `https://git.openstack.org/openstack/devstack-plugin-mariadb <https://git.openstack.org/cgit/openstack/devstack-plugin-mariadb>`__
|
||||
devstack-plugin-nfs `https://git.openstack.org/openstack/devstack-plugin-nfs <https://git.openstack.org/cgit/openstack/devstack-plugin-nfs>`__
|
||||
devstack-plugin-pika `https://git.openstack.org/openstack/devstack-plugin-pika <https://git.openstack.org/cgit/openstack/devstack-plugin-pika>`__
|
||||
devstack-plugin-sheepdog `https://git.openstack.org/openstack/devstack-plugin-sheepdog <https://git.openstack.org/cgit/openstack/devstack-plugin-sheepdog>`__
|
||||
devstack-plugin-zmq `https://git.openstack.org/openstack/devstack-plugin-zmq <https://git.openstack.org/cgit/openstack/devstack-plugin-zmq>`__
|
||||
dragonflow `https://git.openstack.org/openstack/dragonflow <https://git.openstack.org/cgit/openstack/dragonflow>`__
|
||||
drbd-devstack `https://git.openstack.org/openstack/drbd-devstack <https://git.openstack.org/cgit/openstack/drbd-devstack>`__
|
||||
ec2-api `https://git.openstack.org/openstack/ec2-api <https://git.openstack.org/cgit/openstack/ec2-api>`__
|
||||
freezer `https://git.openstack.org/openstack/freezer <https://git.openstack.org/cgit/openstack/freezer>`__
|
||||
freezer-api `https://git.openstack.org/openstack/freezer-api <https://git.openstack.org/cgit/openstack/freezer-api>`__
|
||||
freezer-web-ui `https://git.openstack.org/openstack/freezer-web-ui <https://git.openstack.org/cgit/openstack/freezer-web-ui>`__
|
||||
fuxi `https://git.openstack.org/openstack/fuxi <https://git.openstack.org/cgit/openstack/fuxi>`__
|
||||
gce-api `https://git.openstack.org/openstack/gce-api <https://git.openstack.org/cgit/openstack/gce-api>`__
|
||||
glare `https://git.openstack.org/openstack/glare <https://git.openstack.org/cgit/openstack/glare>`__
|
||||
gnocchi `https://git.openstack.org/openstack/gnocchi <https://git.openstack.org/cgit/openstack/gnocchi>`__
|
||||
group-based-policy `https://git.openstack.org/openstack/group-based-policy <https://git.openstack.org/cgit/openstack/group-based-policy>`__
|
||||
heat `https://git.openstack.org/openstack/heat <https://git.openstack.org/cgit/openstack/heat>`__
|
||||
horizon-mellanox `https://git.openstack.org/openstack/horizon-mellanox <https://git.openstack.org/cgit/openstack/horizon-mellanox>`__
|
||||
ironic `https://git.openstack.org/openstack/ironic <https://git.openstack.org/cgit/openstack/ironic>`__
|
||||
ironic-inspector `https://git.openstack.org/openstack/ironic-inspector <https://git.openstack.org/cgit/openstack/ironic-inspector>`__
|
||||
ironic-staging-drivers `https://git.openstack.org/openstack/ironic-staging-drivers <https://git.openstack.org/cgit/openstack/ironic-staging-drivers>`__
|
||||
karbor `https://git.openstack.org/openstack/karbor <https://git.openstack.org/cgit/openstack/karbor>`__
|
||||
karbor-dashboard `https://git.openstack.org/openstack/karbor-dashboard <https://git.openstack.org/cgit/openstack/karbor-dashboard>`__
|
||||
keystone `https://git.openstack.org/openstack/keystone <https://git.openstack.org/cgit/openstack/keystone>`__
|
||||
kingbird `https://git.openstack.org/openstack/kingbird <https://git.openstack.org/cgit/openstack/kingbird>`__
|
||||
kuryr-kubernetes `https://git.openstack.org/openstack/kuryr-kubernetes <https://git.openstack.org/cgit/openstack/kuryr-kubernetes>`__
|
||||
kuryr-libnetwork `https://git.openstack.org/openstack/kuryr-libnetwork <https://git.openstack.org/cgit/openstack/kuryr-libnetwork>`__
|
||||
magnum `https://git.openstack.org/openstack/magnum <https://git.openstack.org/cgit/openstack/magnum>`__
|
||||
magnum-ui `https://git.openstack.org/openstack/magnum-ui <https://git.openstack.org/cgit/openstack/magnum-ui>`__
|
||||
manila `https://git.openstack.org/openstack/manila <https://git.openstack.org/cgit/openstack/manila>`__
|
||||
manila-ui `https://git.openstack.org/openstack/manila-ui <https://git.openstack.org/cgit/openstack/manila-ui>`__
|
||||
masakari `https://git.openstack.org/openstack/masakari <https://git.openstack.org/cgit/openstack/masakari>`__
|
||||
meteos `https://git.openstack.org/openstack/meteos <https://git.openstack.org/cgit/openstack/meteos>`__
|
||||
meteos-ui `https://git.openstack.org/openstack/meteos-ui <https://git.openstack.org/cgit/openstack/meteos-ui>`__
|
||||
mistral `https://git.openstack.org/openstack/mistral <https://git.openstack.org/cgit/openstack/mistral>`__
|
||||
mixmatch `https://git.openstack.org/openstack/mixmatch <https://git.openstack.org/cgit/openstack/mixmatch>`__
|
||||
mogan `https://git.openstack.org/openstack/mogan <https://git.openstack.org/cgit/openstack/mogan>`__
|
||||
monasca-analytics `https://git.openstack.org/openstack/monasca-analytics <https://git.openstack.org/cgit/openstack/monasca-analytics>`__
|
||||
monasca-api `https://git.openstack.org/openstack/monasca-api <https://git.openstack.org/cgit/openstack/monasca-api>`__
|
||||
monasca-ceilometer `https://git.openstack.org/openstack/monasca-ceilometer <https://git.openstack.org/cgit/openstack/monasca-ceilometer>`__
|
||||
monasca-log-api `https://git.openstack.org/openstack/monasca-log-api <https://git.openstack.org/cgit/openstack/monasca-log-api>`__
|
||||
monasca-transform `https://git.openstack.org/openstack/monasca-transform <https://git.openstack.org/cgit/openstack/monasca-transform>`__
|
||||
murano `https://git.openstack.org/openstack/murano <https://git.openstack.org/cgit/openstack/murano>`__
|
||||
networking-6wind `https://git.openstack.org/openstack/networking-6wind <https://git.openstack.org/cgit/openstack/networking-6wind>`__
|
||||
networking-arista `https://git.openstack.org/openstack/networking-arista <https://git.openstack.org/cgit/openstack/networking-arista>`__
|
||||
networking-bagpipe `https://git.openstack.org/openstack/networking-bagpipe <https://git.openstack.org/cgit/openstack/networking-bagpipe>`__
|
||||
networking-bgpvpn `https://git.openstack.org/openstack/networking-bgpvpn <https://git.openstack.org/cgit/openstack/networking-bgpvpn>`__
|
||||
networking-brocade `https://git.openstack.org/openstack/networking-brocade <https://git.openstack.org/cgit/openstack/networking-brocade>`__
|
||||
networking-calico `https://git.openstack.org/openstack/networking-calico <https://git.openstack.org/cgit/openstack/networking-calico>`__
|
||||
networking-cisco `https://git.openstack.org/openstack/networking-cisco <https://git.openstack.org/cgit/openstack/networking-cisco>`__
|
||||
networking-cumulus `https://git.openstack.org/openstack/networking-cumulus <https://git.openstack.org/cgit/openstack/networking-cumulus>`__
|
||||
networking-dpm `https://git.openstack.org/openstack/networking-dpm <https://git.openstack.org/cgit/openstack/networking-dpm>`__
|
||||
networking-fortinet `https://git.openstack.org/openstack/networking-fortinet <https://git.openstack.org/cgit/openstack/networking-fortinet>`__
|
||||
networking-generic-switch `https://git.openstack.org/openstack/networking-generic-switch <https://git.openstack.org/cgit/openstack/networking-generic-switch>`__
|
||||
networking-huawei `https://git.openstack.org/openstack/networking-huawei <https://git.openstack.org/cgit/openstack/networking-huawei>`__
|
||||
networking-infoblox `https://git.openstack.org/openstack/networking-infoblox <https://git.openstack.org/cgit/openstack/networking-infoblox>`__
|
||||
networking-l2gw `https://git.openstack.org/openstack/networking-l2gw <https://git.openstack.org/cgit/openstack/networking-l2gw>`__
|
||||
networking-midonet `https://git.openstack.org/openstack/networking-midonet <https://git.openstack.org/cgit/openstack/networking-midonet>`__
|
||||
networking-mlnx `https://git.openstack.org/openstack/networking-mlnx <https://git.openstack.org/cgit/openstack/networking-mlnx>`__
|
||||
networking-nec `https://git.openstack.org/openstack/networking-nec <https://git.openstack.org/cgit/openstack/networking-nec>`__
|
||||
networking-odl `https://git.openstack.org/openstack/networking-odl <https://git.openstack.org/cgit/openstack/networking-odl>`__
|
||||
networking-ofagent `https://git.openstack.org/openstack/networking-ofagent <https://git.openstack.org/cgit/openstack/networking-ofagent>`__
|
||||
networking-onos `https://git.openstack.org/openstack/networking-onos <https://git.openstack.org/cgit/openstack/networking-onos>`__
|
||||
networking-ovn `https://git.openstack.org/openstack/networking-ovn <https://git.openstack.org/cgit/openstack/networking-ovn>`__
|
||||
networking-ovs-dpdk `https://git.openstack.org/openstack/networking-ovs-dpdk <https://git.openstack.org/cgit/openstack/networking-ovs-dpdk>`__
|
||||
networking-plumgrid `https://git.openstack.org/openstack/networking-plumgrid <https://git.openstack.org/cgit/openstack/networking-plumgrid>`__
|
||||
networking-powervm `https://git.openstack.org/openstack/networking-powervm <https://git.openstack.org/cgit/openstack/networking-powervm>`__
|
||||
networking-sfc `https://git.openstack.org/openstack/networking-sfc <https://git.openstack.org/cgit/openstack/networking-sfc>`__
|
||||
networking-vpp `https://git.openstack.org/openstack/networking-vpp <https://git.openstack.org/cgit/openstack/networking-vpp>`__
|
||||
networking-vsphere `https://git.openstack.org/openstack/networking-vsphere <https://git.openstack.org/cgit/openstack/networking-vsphere>`__
|
||||
neutron `https://git.openstack.org/openstack/neutron <https://git.openstack.org/cgit/openstack/neutron>`__
|
||||
neutron-dynamic-routing `https://git.openstack.org/openstack/neutron-dynamic-routing <https://git.openstack.org/cgit/openstack/neutron-dynamic-routing>`__
|
||||
neutron-fwaas `https://git.openstack.org/openstack/neutron-fwaas <https://git.openstack.org/cgit/openstack/neutron-fwaas>`__
|
||||
neutron-lbaas `https://git.openstack.org/openstack/neutron-lbaas <https://git.openstack.org/cgit/openstack/neutron-lbaas>`__
|
||||
neutron-lbaas-dashboard `https://git.openstack.org/openstack/neutron-lbaas-dashboard <https://git.openstack.org/cgit/openstack/neutron-lbaas-dashboard>`__
|
||||
neutron-vpnaas `https://git.openstack.org/openstack/neutron-vpnaas <https://git.openstack.org/cgit/openstack/neutron-vpnaas>`__
|
||||
nova-docker `https://git.openstack.org/openstack/nova-docker <https://git.openstack.org/cgit/openstack/nova-docker>`__
|
||||
nova-dpm `https://git.openstack.org/openstack/nova-dpm <https://git.openstack.org/cgit/openstack/nova-dpm>`__
|
||||
nova-lxd `https://git.openstack.org/openstack/nova-lxd <https://git.openstack.org/cgit/openstack/nova-lxd>`__
|
||||
nova-mksproxy `https://git.openstack.org/openstack/nova-mksproxy <https://git.openstack.org/cgit/openstack/nova-mksproxy>`__
|
||||
nova-powervm `https://git.openstack.org/openstack/nova-powervm <https://git.openstack.org/cgit/openstack/nova-powervm>`__
|
||||
oaktree `https://git.openstack.org/openstack/oaktree <https://git.openstack.org/cgit/openstack/oaktree>`__
|
||||
octavia `https://git.openstack.org/openstack/octavia <https://git.openstack.org/cgit/openstack/octavia>`__
|
||||
os-xenapi `https://git.openstack.org/openstack/os-xenapi <https://git.openstack.org/cgit/openstack/os-xenapi>`__
|
||||
osprofiler `https://git.openstack.org/openstack/osprofiler <https://git.openstack.org/cgit/openstack/osprofiler>`__
|
||||
panko `https://git.openstack.org/openstack/panko <https://git.openstack.org/cgit/openstack/panko>`__
|
||||
picasso `https://git.openstack.org/openstack/picasso <https://git.openstack.org/cgit/openstack/picasso>`__
|
||||
rally `https://git.openstack.org/openstack/rally <https://git.openstack.org/cgit/openstack/rally>`__
|
||||
sahara `https://git.openstack.org/openstack/sahara <https://git.openstack.org/cgit/openstack/sahara>`__
|
||||
sahara-dashboard `https://git.openstack.org/openstack/sahara-dashboard <https://git.openstack.org/cgit/openstack/sahara-dashboard>`__
|
||||
scalpels `https://git.openstack.org/openstack/scalpels <https://git.openstack.org/cgit/openstack/scalpels>`__
|
||||
searchlight `https://git.openstack.org/openstack/searchlight <https://git.openstack.org/cgit/openstack/searchlight>`__
|
||||
searchlight-ui `https://git.openstack.org/openstack/searchlight-ui <https://git.openstack.org/cgit/openstack/searchlight-ui>`__
|
||||
senlin `https://git.openstack.org/openstack/senlin <https://git.openstack.org/cgit/openstack/senlin>`__
|
||||
solum `https://git.openstack.org/openstack/solum <https://git.openstack.org/cgit/openstack/solum>`__
|
||||
tacker `https://git.openstack.org/openstack/tacker <https://git.openstack.org/cgit/openstack/tacker>`__
|
||||
tap-as-a-service `https://git.openstack.org/openstack/tap-as-a-service <https://git.openstack.org/cgit/openstack/tap-as-a-service>`__
|
||||
tricircle `https://git.openstack.org/openstack/tricircle <https://git.openstack.org/cgit/openstack/tricircle>`__
|
||||
trio2o `https://git.openstack.org/openstack/trio2o <https://git.openstack.org/cgit/openstack/trio2o>`__
|
||||
trove `https://git.openstack.org/openstack/trove <https://git.openstack.org/cgit/openstack/trove>`__
|
||||
trove-dashboard `https://git.openstack.org/openstack/trove-dashboard <https://git.openstack.org/cgit/openstack/trove-dashboard>`__
|
||||
vitrage `https://git.openstack.org/openstack/vitrage <https://git.openstack.org/cgit/openstack/vitrage>`__
|
||||
vitrage-dashboard `https://git.openstack.org/openstack/vitrage-dashboard <https://git.openstack.org/cgit/openstack/vitrage-dashboard>`__
|
||||
vmware-nsx `https://git.openstack.org/openstack/vmware-nsx <https://git.openstack.org/cgit/openstack/vmware-nsx>`__
|
||||
watcher `https://git.openstack.org/openstack/watcher <https://git.openstack.org/cgit/openstack/watcher>`__
|
||||
watcher-dashboard `https://git.openstack.org/openstack/watcher-dashboard <https://git.openstack.org/cgit/openstack/watcher-dashboard>`__
|
||||
zaqar `https://git.openstack.org/openstack/zaqar <https://git.openstack.org/cgit/openstack/zaqar>`__
|
||||
zaqar-ui `https://git.openstack.org/openstack/zaqar-ui <https://git.openstack.org/cgit/openstack/zaqar-ui>`__
|
||||
zun `https://git.openstack.org/openstack/zun <https://git.openstack.org/cgit/openstack/zun>`__
|
||||
zun-ui `https://git.openstack.org/openstack/zun-ui <https://git.openstack.org/cgit/openstack/zun-ui>`__
|
||||
====================================== ===
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ They are added in the following format::
|
||||
|
||||
An example would be as follows::
|
||||
|
||||
enable_plugin ec2-api git://git.openstack.org/openstack/ec2-api
|
||||
enable_plugin ec2-api https://git.openstack.org/openstack/ec2-api
|
||||
|
||||
plugin.sh contract
|
||||
==================
|
||||
@@ -243,7 +243,7 @@ be needed in your ``jenkins/jobs/<project>.yaml`` definition in
|
||||
# note the actual url here is somewhat irrelevant because it
|
||||
# caches in nodepool, however make it a valid url for
|
||||
# documentation purposes.
|
||||
export DEVSTACK_LOCAL_CONFIG="enable_plugin ec2-api git://git.openstack.org/openstack/ec2-api"
|
||||
export DEVSTACK_LOCAL_CONFIG="enable_plugin ec2-api https://git.openstack.org/openstack/ec2-api"
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
fping
|
||||
@@ -2,6 +2,7 @@ cryptsetup
|
||||
genisoimage
|
||||
gir1.2-libosinfo-1.0
|
||||
lvm2 # NOPRIME
|
||||
netcat-openbsd
|
||||
open-iscsi
|
||||
python-guestfs # NOPRIME
|
||||
qemu-utils
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
apache2
|
||||
apache2-devel
|
||||
bc
|
||||
bridge-utils
|
||||
ca-certificates-mozilla
|
||||
@@ -23,9 +25,11 @@ python-cmd2 # dist:opensuse-12.3
|
||||
python-devel # pyOpenSSL
|
||||
python-xml
|
||||
screen
|
||||
systemd-devel # for systemd-python
|
||||
tar
|
||||
tcpdump
|
||||
unzip
|
||||
util-linux
|
||||
wget
|
||||
which
|
||||
zlib-devel
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
fping
|
||||
python-dateutil
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
fping
|
||||
@@ -9,10 +9,6 @@ iptables
|
||||
iputils
|
||||
kernel-modules # dist:f23,f24,f25
|
||||
kpartx
|
||||
kvm # NOPRIME
|
||||
libvirt-bin # NOPRIME
|
||||
libvirt-devel # NOPRIME
|
||||
libvirt-python # NOPRIME
|
||||
libxml2-python
|
||||
m2crypto
|
||||
mysql-devel
|
||||
@@ -21,7 +17,6 @@ mysql-server # NOPRIME
|
||||
numpy # needed by websockify for spice console
|
||||
parted
|
||||
polkit
|
||||
qemu-kvm # NOPRIME
|
||||
rabbitmq-server # NOPRIME
|
||||
sqlite
|
||||
sudo
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
# ensure we don't re-source this in the same environment
|
||||
[[ -z "$_DEVSTACK_FUNCTIONS" ]] || return 0
|
||||
declare -r _DEVSTACK_FUNCTIONS=1
|
||||
declare -r -g _DEVSTACK_FUNCTIONS=1
|
||||
|
||||
# Include the common functions
|
||||
FUNC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)
|
||||
@@ -402,6 +402,26 @@ EOF
|
||||
return $rval
|
||||
}
|
||||
|
||||
function wait_for_compute {
|
||||
local timeout=$1
|
||||
local rval=0
|
||||
time_start "wait_for_service"
|
||||
timeout $timeout bash -x <<EOF || rval=$?
|
||||
ID=""
|
||||
while [[ "\$ID" == "" ]]; do
|
||||
sleep 1
|
||||
ID=\$(openstack --os-cloud devstack-admin --os-region "$REGION_NAME" compute service list --host `hostname` --service nova-compute -c ID -f value)
|
||||
done
|
||||
EOF
|
||||
time_stop "wait_for_service"
|
||||
# Figure out what's happening on platforms where this doesn't work
|
||||
if [[ "$rval" != 0 ]]; then
|
||||
echo "Didn't find service registered by hostname after $timeout seconds"
|
||||
openstack --os-cloud devstack-admin --os-region "$REGION_NAME" compute service list
|
||||
fi
|
||||
return $rval
|
||||
}
|
||||
|
||||
|
||||
# ping check
|
||||
# Uses globals ``ENABLED_SERVICES``, ``TOP_DIR``, ``MULTI_HOST``, ``PRIVATE_NETWORK``
|
||||
@@ -664,6 +684,16 @@ function set_mtu {
|
||||
}
|
||||
|
||||
|
||||
# running_in_container - Returns true otherwise false
|
||||
function running_in_container {
|
||||
if grep -q lxc /proc/1/cgroup; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
# enable_kernel_bridge_firewall - Enable kernel support for bridge firewalling
|
||||
function enable_kernel_bridge_firewall {
|
||||
# Load bridge module. This module provides access to firewall for bridged
|
||||
@@ -681,6 +711,18 @@ function enable_kernel_bridge_firewall {
|
||||
done
|
||||
}
|
||||
|
||||
# Save some state information
|
||||
#
|
||||
# Write out various useful state information to /etc/devstack-version
|
||||
function write_devstack_version {
|
||||
cat - > /tmp/devstack-version <<EOF
|
||||
DevStack Version: ${DEVSTACK_SERIES}
|
||||
Change: $(git log --format="%H %s %ci" -1)
|
||||
OS Version: ${os_VENDOR} ${os_RELEASE} ${os_CODENAME}
|
||||
EOF
|
||||
sudo install -m 644 /tmp/devstack-version /etc/devstack-version
|
||||
rm /tmp/devstack-version
|
||||
}
|
||||
|
||||
# Restore xtrace
|
||||
$_XTRACE_FUNCTIONS
|
||||
|
||||
+12
-12
@@ -37,12 +37,12 @@ set +o xtrace
|
||||
|
||||
# ensure we don't re-source this in the same environment
|
||||
[[ -z "$_DEVSTACK_FUNCTIONS_COMMON" ]] || return 0
|
||||
declare -r _DEVSTACK_FUNCTIONS_COMMON=1
|
||||
declare -r -g _DEVSTACK_FUNCTIONS_COMMON=1
|
||||
|
||||
# Global Config Variables
|
||||
declare -A GITREPO
|
||||
declare -A GITBRANCH
|
||||
declare -A GITDIR
|
||||
declare -A -g GITREPO
|
||||
declare -A -g GITBRANCH
|
||||
declare -A -g GITDIR
|
||||
|
||||
TRACK_DEPENDS=${TRACK_DEPENDS:-False}
|
||||
|
||||
@@ -93,7 +93,7 @@ function write_clouds_yaml {
|
||||
--os-region-name $REGION_NAME \
|
||||
--os-identity-api-version 3 \
|
||||
$CA_CERT_ARG \
|
||||
--os-auth-url $KEYSTONE_AUTH_URI \
|
||||
--os-auth-url $KEYSTONE_SERVICE_URI \
|
||||
--os-username demo \
|
||||
--os-password $ADMIN_PASSWORD \
|
||||
--os-project-name demo
|
||||
@@ -105,7 +105,7 @@ function write_clouds_yaml {
|
||||
--os-region-name $REGION_NAME \
|
||||
--os-identity-api-version 3 \
|
||||
$CA_CERT_ARG \
|
||||
--os-auth-url $KEYSTONE_AUTH_URI \
|
||||
--os-auth-url $KEYSTONE_SERVICE_URI \
|
||||
--os-username alt_demo \
|
||||
--os-password $ADMIN_PASSWORD \
|
||||
--os-project-name alt_demo
|
||||
@@ -117,7 +117,7 @@ function write_clouds_yaml {
|
||||
--os-region-name $REGION_NAME \
|
||||
--os-identity-api-version 3 \
|
||||
$CA_CERT_ARG \
|
||||
--os-auth-url $KEYSTONE_AUTH_URI \
|
||||
--os-auth-url $KEYSTONE_SERVICE_URI \
|
||||
--os-username admin \
|
||||
--os-password $ADMIN_PASSWORD \
|
||||
--os-project-name admin
|
||||
@@ -306,7 +306,7 @@ function warn {
|
||||
# ``os_PACKAGE`` - package type: ``deb`` or ``rpm``
|
||||
# ``os_CODENAME`` - vendor's codename for release: ``trusty``
|
||||
|
||||
declare os_VENDOR os_RELEASE os_PACKAGE os_CODENAME
|
||||
declare -g os_VENDOR os_RELEASE os_PACKAGE os_CODENAME
|
||||
|
||||
# Make a *best effort* attempt to install lsb_release packages for the
|
||||
# user if not available. Note can't use generic install_package*
|
||||
@@ -361,7 +361,7 @@ function GetOSVersion {
|
||||
|
||||
# Translate the OS version values into common nomenclature
|
||||
# Sets global ``DISTRO`` from the ``os_*`` values
|
||||
declare DISTRO
|
||||
declare -g DISTRO
|
||||
|
||||
function GetDistro {
|
||||
GetOSVersion
|
||||
@@ -2372,9 +2372,9 @@ function sudo_with_proxies {
|
||||
# Resolution is only in whole seconds, so should be used for long
|
||||
# running activities.
|
||||
|
||||
declare -A _TIME_TOTAL
|
||||
declare -A _TIME_START
|
||||
declare -r _TIME_BEGIN=$(date +%s)
|
||||
declare -A -g _TIME_TOTAL
|
||||
declare -A -g _TIME_START
|
||||
declare -r -g _TIME_BEGIN=$(date +%s)
|
||||
|
||||
# time_start $name
|
||||
#
|
||||
|
||||
+16
-3
@@ -19,7 +19,7 @@ set +o xtrace
|
||||
|
||||
# PROJECT_VENV contains the name of the virtual environment for each
|
||||
# project. A null value installs to the system Python directories.
|
||||
declare -A PROJECT_VENV
|
||||
declare -A -g PROJECT_VENV
|
||||
|
||||
|
||||
# Python Functions
|
||||
@@ -208,7 +208,7 @@ function pip_install {
|
||||
# packages like setuptools?
|
||||
local pip_version
|
||||
pip_version=$(python -c "import pip; \
|
||||
print(pip.__version__.strip('.')[0])")
|
||||
print(pip.__version__.split('.')[0])")
|
||||
if (( pip_version<6 )); then
|
||||
die $LINENO "Currently installed pip version ${pip_version} does not" \
|
||||
"meet minimum requirements (>=6)."
|
||||
@@ -270,7 +270,20 @@ function use_library_from_git {
|
||||
# determine if a package was installed from git
|
||||
function lib_installed_from_git {
|
||||
local name=$1
|
||||
pip freeze 2>/dev/null | grep -- "$name" | grep -q -- '-e git'
|
||||
# Note "pip freeze" doesn't always work here, because it tries to
|
||||
# be smart about finding the remote of the git repo the package
|
||||
# was installed from. This doesn't work with zuul which clones
|
||||
# repos with no remote.
|
||||
#
|
||||
# The best option seems to be to use "pip list" which will tell
|
||||
# you the path an editable install was installed from; for example
|
||||
# in response to something like
|
||||
# pip install -e 'git+http://git.openstack.org/openstack-dev/bashate#egg=bashate'
|
||||
# pip list shows
|
||||
# bashate (0.5.2.dev19, /tmp/env/src/bashate)
|
||||
# Thus we look for "path after a comma" to indicate we were
|
||||
# installed from some local place
|
||||
pip list 2>/dev/null | grep -- "$name" | grep -q -- ', .*)$'
|
||||
}
|
||||
|
||||
# check that everything that's in LIBS_FROM_GIT was actually installed
|
||||
|
||||
+11
-2
@@ -53,8 +53,15 @@ APACHE_LOG_DIR="/var/log/${APACHE_NAME}"
|
||||
function enable_apache_mod {
|
||||
local mod=$1
|
||||
# Apache installation, because we mark it NOPRIME
|
||||
if is_ubuntu || is_suse ; then
|
||||
if ! a2query -m $mod ; then
|
||||
if is_ubuntu; then
|
||||
# Skip mod_version as it is not a valid mod to enable
|
||||
# on debuntu, instead it is built in.
|
||||
if [[ "$mod" != "version" ]] && ! a2query -m $mod ; then
|
||||
sudo a2enmod $mod
|
||||
restart_apache_server
|
||||
fi
|
||||
elif is_suse; then
|
||||
if ! a2enmod -q $mod ; then
|
||||
sudo a2enmod $mod
|
||||
restart_apache_server
|
||||
fi
|
||||
@@ -171,6 +178,8 @@ function apache_site_config_for {
|
||||
# enable_apache_site() - Enable a particular apache site
|
||||
function enable_apache_site {
|
||||
local site=$@
|
||||
# Many of our sites use mod version. Just enable it.
|
||||
enable_apache_mod version
|
||||
if is_ubuntu; then
|
||||
sudo a2ensite ${site}
|
||||
elif is_fedora || is_suse; then
|
||||
|
||||
@@ -287,6 +287,8 @@ function configure_cinder {
|
||||
|
||||
iniset $CINDER_CONF DEFAULT os_region_name "$REGION_NAME"
|
||||
|
||||
iniset $CINDER_CONF key_manager api_class cinder.keymgr.conf_key_mgr.ConfKeyManager
|
||||
|
||||
if is_service_enabled c-vol && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then
|
||||
local enabled_backends=""
|
||||
local default_name=""
|
||||
|
||||
@@ -71,6 +71,10 @@ function configure_database_mysql {
|
||||
elif is_fedora; then
|
||||
mysql=mariadb
|
||||
my_conf=/etc/my.cnf
|
||||
local cracklib_conf=/etc/my.cnf.d/cracklib_password_check.cnf
|
||||
if [ -f "$cracklib_conf" ]; then
|
||||
inicomment -sudo "$cracklib_conf" "mariadb" "plugin-load-add"
|
||||
fi
|
||||
else
|
||||
exit_distro_not_supported "mysql configuration"
|
||||
fi
|
||||
|
||||
+8
-6
@@ -74,7 +74,7 @@ NEUTRON_ROOTWRAP_DAEMON_CMD="sudo $NEUTRON_ROOTWRAP-daemon $NEUTRON_ROOTWRAP_CON
|
||||
NEUTRON_CONFIG_ARG=${NEUTRON_CONFIG_ARG:-""}
|
||||
|
||||
# Additional neutron api config files
|
||||
declare -a _NEUTRON_SERVER_EXTRA_CONF_FILES_ABS
|
||||
declare -a -g _NEUTRON_SERVER_EXTRA_CONF_FILES_ABS
|
||||
|
||||
# Functions
|
||||
# ---------
|
||||
@@ -188,7 +188,9 @@ function configure_neutron_new {
|
||||
iniset $NEUTRON_CORE_PLUGIN_CONF ovs local_ip $HOST_IP
|
||||
fi
|
||||
|
||||
enable_kernel_bridge_firewall
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
fi
|
||||
|
||||
# DHCP Agent
|
||||
@@ -397,9 +399,9 @@ function start_neutron_api {
|
||||
service_protocol="http"
|
||||
fi
|
||||
|
||||
local opts = ""
|
||||
opts+="--config-file $NEUTRON_CONF"
|
||||
opts+="--config-file $NEUTRON_CORE_PLUGIN_CONF"
|
||||
local opts=""
|
||||
opts+=" --config-file $NEUTRON_CONF"
|
||||
opts+=" --config-file $NEUTRON_CORE_PLUGIN_CONF"
|
||||
local cfg_file
|
||||
for cfg_file in ${_NEUTRON_SERVER_EXTRA_CONF_FILES_ABS[@]}; do
|
||||
opts+=" --config-file $cfg_file"
|
||||
@@ -407,7 +409,7 @@ function start_neutron_api {
|
||||
|
||||
# Start the Neutron service
|
||||
# TODO(sc68cal) Stop hard coding this
|
||||
run_process neutron-api "$NEUTRON_BIN_DIR/neutron-server $ops"
|
||||
run_process neutron-api "$NEUTRON_BIN_DIR/neutron-server $opts"
|
||||
|
||||
if is_ssl_enabled_service "neutron"; then
|
||||
ssl_ca="--ca-certificate=${SSL_BUNDLE_FILE}"
|
||||
|
||||
+2
-2
@@ -141,10 +141,10 @@ _Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron
|
||||
# These config files are relative to ``/etc/neutron``. The above
|
||||
# example would specify ``--config-file /etc/neutron/file1`` for
|
||||
# neutron server.
|
||||
declare -a Q_PLUGIN_EXTRA_CONF_FILES
|
||||
declare -a -g Q_PLUGIN_EXTRA_CONF_FILES
|
||||
|
||||
# same as Q_PLUGIN_EXTRA_CONF_FILES, but with absolute path.
|
||||
declare -a _Q_PLUGIN_EXTRA_CONF_FILES_ABS
|
||||
declare -a -g _Q_PLUGIN_EXTRA_CONF_FILES_ABS
|
||||
|
||||
|
||||
Q_RR_CONF_FILE=$NEUTRON_CONF_DIR/rootwrap.conf
|
||||
|
||||
@@ -71,7 +71,9 @@ function neutron_plugin_configure_plugin_agent {
|
||||
fi
|
||||
if [[ "$Q_USE_SECGROUP" == "True" ]]; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||
enable_kernel_bridge_firewall
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
else
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver
|
||||
fi
|
||||
|
||||
@@ -88,7 +88,9 @@ function _neutron_ovs_base_configure_debug_command {
|
||||
function _neutron_ovs_base_configure_firewall_driver {
|
||||
if [[ "$Q_USE_SECGROUP" == "True" ]]; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver iptables_hybrid
|
||||
enable_kernel_bridge_firewall
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
else
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver noop
|
||||
fi
|
||||
|
||||
@@ -467,6 +467,8 @@ function create_nova_conf {
|
||||
iniset $NOVA_CONF DEFAULT osapi_compute_listen "$NOVA_SERVICE_LISTEN_ADDRESS"
|
||||
iniset $NOVA_CONF DEFAULT metadata_listen "$NOVA_SERVICE_LISTEN_ADDRESS"
|
||||
|
||||
iniset $NOVA_CONF key_manager api_class nova.keymgr.conf_key_mgr.ConfKeyManager
|
||||
|
||||
if is_fedora || is_suse; then
|
||||
# nova defaults to /usr/local/bin, but fedora and suse pip like to
|
||||
# install things in /usr/bin
|
||||
@@ -864,7 +866,9 @@ function start_nova_rest {
|
||||
run_process n-crt "$NOVA_BIN_DIR/nova-cert --config-file $api_cell_conf"
|
||||
|
||||
if is_service_enabled n-net; then
|
||||
enable_kernel_bridge_firewall
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
fi
|
||||
run_process n-net "$NOVA_BIN_DIR/nova-network --config-file $compute_cell_conf"
|
||||
|
||||
@@ -880,6 +884,28 @@ function start_nova_rest {
|
||||
export PATH=$old_path
|
||||
}
|
||||
|
||||
function is_nova_ready {
|
||||
# NOTE(sdague): with cells v2 all the compute services must be up
|
||||
# and checked into the database before discover_hosts is run. This
|
||||
# happens in all in one installs by accident, because > 30 seconds
|
||||
# happen between here and the script ending. However, in multinode
|
||||
# tests this can very often not be the case. So ensure that the
|
||||
# compute is up before we move on.
|
||||
if is_service_enabled n-cell; then
|
||||
# cells v1 can't complete the check below because it munges
|
||||
# hostnames with cell information (grumble grumble).
|
||||
return
|
||||
fi
|
||||
# TODO(sdague): honestly, this probably should be a plug point for
|
||||
# an external system.
|
||||
if [[ "$VIRT_DRIVER" == 'xenserver' ]]; then
|
||||
# xenserver encodes information in the hostname of the compute
|
||||
# because of the dom0/domU split. Just ignore for now.
|
||||
return
|
||||
fi
|
||||
wait_for_compute $NOVA_READY_TIMEOUT
|
||||
}
|
||||
|
||||
function start_nova {
|
||||
start_nova_rest
|
||||
start_nova_compute
|
||||
|
||||
@@ -26,7 +26,7 @@ function install_libvirt {
|
||||
install_package qemu-system
|
||||
install_package libvirt-bin libvirt-dev
|
||||
pip_install_gr libvirt-python
|
||||
if [[ "$EBTABLES_RACE_FIX" == "True" ]]; then
|
||||
if [[ ${DISTRO} == "trusty" && ${EBTABLES_RACE_FIX} == "True" ]]; then
|
||||
# Work around for bug #1501558. We can remove this once we
|
||||
# get to a version of Ubuntu that has new enough libvirt.
|
||||
TOP_DIR=$TOP_DIR $TOP_DIR/tools/install_ebtables_workaround.sh
|
||||
@@ -34,18 +34,21 @@ function install_libvirt {
|
||||
#pip_install_gr <there-si-no-guestfs-in-pypi>
|
||||
elif is_fedora || is_suse; then
|
||||
# On "KVM for IBM z Systems", kvm does not have its own package
|
||||
if [[ ! ${DISTRO} =~ "kvmibm1" ]]; then
|
||||
if [[ ! ${DISTRO} =~ "kvmibm1" && ! ${DISTRO} =~ "rhel7" ]]; then
|
||||
install_package kvm
|
||||
fi
|
||||
# there is a dependency issue with kvm (which is really just a
|
||||
# wrapper to qemu-system-x86) that leaves some bios files out,
|
||||
# so install qemu-kvm (which shouldn't strictly be needed, as
|
||||
# everything has been merged into qemu-system-x86) to bring in
|
||||
# the right packages. see
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1235890
|
||||
install_package qemu-kvm
|
||||
|
||||
if [[ ${DISTRO} =~ "rhel7" ]]; then
|
||||
# This should install the latest qemu-kvm build,
|
||||
# which is called qemu-kvm-ev in centos7
|
||||
# (as the default OS qemu-kvm package is usually rather old,
|
||||
# and should be updated by above)
|
||||
install_package qemu-kvm
|
||||
fi
|
||||
|
||||
install_package libvirt libvirt-devel
|
||||
pip_install_gr libvirt-python
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,9 @@ function configure_nova_hypervisor {
|
||||
iniset $NOVA_CONF DEFAULT compute_driver ironic.IronicDriver
|
||||
iniset $NOVA_CONF DEFAULT firewall_driver $LIBVIRT_FIREWALL_DRIVER
|
||||
iniset $NOVA_CONF DEFAULT scheduler_host_manager ironic_host_manager
|
||||
|
||||
iniset $NOVA_CONF filter_scheduler host_subset_size 999
|
||||
|
||||
iniset $NOVA_CONF DEFAULT ram_allocation_ratio 1.0
|
||||
iniset $NOVA_CONF DEFAULT reserved_host_memory_mb 0
|
||||
# ironic section
|
||||
|
||||
+45
-11
@@ -60,7 +60,7 @@ BUILD_TIMEOUT=${BUILD_TIMEOUT:-196}
|
||||
# This must be False on stable branches, as master tempest
|
||||
# deps do not match stable branch deps. Set this to True to
|
||||
# have tempest installed in DevStack by default.
|
||||
INSTALL_TEMPEST=${INSTALL_TEMPEST:-"True"}
|
||||
INSTALL_TEMPEST=${INSTALL_TEMPEST:-"False"}
|
||||
|
||||
# This variable is passed directly to pip install inside the common tox venv
|
||||
# that is created
|
||||
@@ -227,7 +227,7 @@ function configure_tempest {
|
||||
# Ensure ``flavor_ref`` and ``flavor_ref_alt`` have different values.
|
||||
# Some resize instance in tempest tests depends on this.
|
||||
for f in ${flavors[@]:1}; do
|
||||
if [[ $f -ne $flavor_ref ]]; then
|
||||
if [[ "$f" != "$flavor_ref" ]]; then
|
||||
flavor_ref_alt=$f
|
||||
break
|
||||
fi
|
||||
@@ -277,13 +277,11 @@ function configure_tempest {
|
||||
if [ "$ENABLE_IDENTITY_V2" == "True" ]; then
|
||||
# Run Identity API v2 tests ONLY if needed
|
||||
iniset $TEMPEST_CONFIG identity-feature-enabled api_v2 True
|
||||
iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v2}
|
||||
else
|
||||
# Skip Identity API v2 tests by default
|
||||
iniset $TEMPEST_CONFIG identity-feature-enabled api_v2 False
|
||||
# Use v3 auth tokens for running all Tempest tests
|
||||
iniset $TEMPEST_CONFIG identity auth_version v3
|
||||
fi
|
||||
iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v3}
|
||||
|
||||
if is_ssl_enabled_service "key" || is_service_enabled tls-proxy; then
|
||||
iniset $TEMPEST_CONFIG identity ca_certificates_file $SSL_BUNDLE_FILE
|
||||
@@ -305,7 +303,6 @@ function configure_tempest {
|
||||
fi
|
||||
|
||||
# Image Features
|
||||
iniset $TEMPEST_CONFIG image-feature-enabled deactivate_image True
|
||||
if [ "$GLANCE_V1_ENABLED" != "True" ]; then
|
||||
iniset $TEMPEST_CONFIG image-feature-enabled api_v1 False
|
||||
fi
|
||||
@@ -335,7 +332,7 @@ function configure_tempest {
|
||||
# NOTE- To avoid microversion tests failure on stable branch, we need to change "tempest_compute_max_microversion"
|
||||
# for stable branch on each release which should be changed from "latest" to max supported version of that release.
|
||||
local tempest_compute_min_microversion=${TEMPEST_COMPUTE_MIN_MICROVERSION:-None}
|
||||
local tempest_compute_max_microversion=${TEMPEST_COMPUTE_MAX_MICROVERSION:-"latest"}
|
||||
local tempest_compute_max_microversion=${TEMPEST_COMPUTE_MAX_MICROVERSION:-"2.42"}
|
||||
# Reset microversions to None where v2.0 is running which does not support microversion.
|
||||
# Both "None" means no microversion testing.
|
||||
if [[ "$TEMPEST_COMPUTE_TYPE" == "compute_legacy" ]]; then
|
||||
@@ -358,6 +355,7 @@ function configure_tempest {
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled live_migration ${LIVE_MIGRATION_AVAILABLE:-False}
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled change_password False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled block_migration_for_live_migration ${USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION:-False}
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled live_migrate_back_and_forth ${LIVE_MIGRATE_BACK_AND_FORTH:-False}
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled attach_encrypted_volume ${ATTACH_ENCRYPTED_VOLUME_AVAILABLE:-True}
|
||||
if is_service_enabled n-cell; then
|
||||
# Cells doesn't support shelving/unshelving
|
||||
@@ -448,7 +446,7 @@ function configure_tempest {
|
||||
# TODO(ameade): Remove the api_v3 flag when Mitaka and Liberty are end of life.
|
||||
iniset $TEMPEST_CONFIG volume-feature-enabled api_v3 True
|
||||
local tempest_volume_min_microversion=${TEMPEST_VOLUME_MIN_MICROVERSION:-None}
|
||||
local tempest_volume_max_microversion=${TEMPEST_VOLUME_MAX_MICROVERSION:-"latest"}
|
||||
local tempest_volume_max_microversion=${TEMPEST_VOLUME_MAX_MICROVERSION:-"3.27"}
|
||||
if [ "$tempest_volume_min_microversion" == "None" ]; then
|
||||
inicomment $TEMPEST_CONFIG volume min_microversion
|
||||
else
|
||||
@@ -588,7 +586,17 @@ function configure_tempest {
|
||||
DISABLE_NETWORK_API_EXTENSIONS+=", metering"
|
||||
fi
|
||||
|
||||
local network_api_extensions=${NETWORK_API_EXTENSIONS:-"all"}
|
||||
DEFAULT_NET_EXT="address-scope,agent,allowed-address-pairs,auto-allocated-topology"
|
||||
DEFAULT_NET_EXT+=",availability_zone,binding,default-subnetpools,dhcp_agent_scheduler"
|
||||
DEFAULT_NET_EXT+=",dvr,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,flavors"
|
||||
DEFAULT_NET_EXT+=",l3-flavors,l3-ha,l3_agent_scheduler,multi-provider,net-mtu"
|
||||
DEFAULT_NET_EXT+=",network-ip-availability,network_availability_zone,pagination"
|
||||
DEFAULT_NET_EXT+=",port-security,project-id,provider,quotas,rbac-policies,router"
|
||||
DEFAULT_NET_EXT+=",router_availability_zone,security-group,service-type,sorting"
|
||||
DEFAULT_NET_EXT+=",standard-attr-description,standard-attr-revisions,standard-attr-timestamp"
|
||||
DEFAULT_NET_EXT+=",subnet-service-types,subnet_allocation,tag,tag-ext"
|
||||
|
||||
local network_api_extensions=${NETWORK_API_EXTENSIONS:-$DEFAULT_NET_EXT}
|
||||
if [[ ! -z "$DISABLE_NETWORK_API_EXTENSIONS" ]]; then
|
||||
# Enabled extensions are either the ones explicitly specified or those available on the API endpoint
|
||||
network_api_extensions=${NETWORK_API_EXTENSIONS:-$(iniget $tmp_cfg_file network-feature-enabled api_extensions | tr -d " ")}
|
||||
@@ -597,7 +605,11 @@ function configure_tempest {
|
||||
fi
|
||||
iniset $TEMPEST_CONFIG network-feature-enabled api_extensions $network_api_extensions
|
||||
# Swift API Extensions
|
||||
local object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-"all"}
|
||||
DEFAULT_SWIFT_OPT="account_quotas,bulk_delete,bulk_upload,container_quotas"
|
||||
DEFAULT_SWIFT_OPT+=",container_sync,crossdomain,formpost,ratelimit,slo"
|
||||
DEFAULT_SWIFT_OPT+=",staticweb,tempauth,tempurl,versioned_writes"
|
||||
|
||||
local object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-$DEFAULT_SWIFT_OPT}
|
||||
if [[ ! -z "$DISABLE_OBJECT_STORAGE_API_EXTENSIONS" ]]; then
|
||||
# Enabled extensions are either the ones explicitly specified or those available on the API endpoint
|
||||
object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-$(iniget $tmp_cfg_file object-storage-feature-enabled discoverable_apis | tr -d " ")}
|
||||
@@ -606,7 +618,18 @@ function configure_tempest {
|
||||
fi
|
||||
iniset $TEMPEST_CONFIG object-storage-feature-enabled discoverable_apis $object_storage_api_extensions
|
||||
# Cinder API Extensions
|
||||
local volume_api_extensions=${VOLUME_API_EXTENSIONS:-"all"}
|
||||
DEFAULT_VOL_EXT="OS-SCH-HNT,backups,capabilities,cgsnapshots,consistencygroups"
|
||||
DEFAULT_VOL_EXT+=",encryption,os-admin-actions,os-availability-zone"
|
||||
DEFAULT_VOL_EXT+=",os-extended-services,os-extended-snapshot-attributes"
|
||||
DEFAULT_VOL_EXT+=",os-hosts,os-image-create,os-quota-class-sets,os-quota-sets"
|
||||
DEFAULT_VOL_EXT+=",os-services,os-snapshot-actions,os-snapshot-manage"
|
||||
DEFAULT_VOL_EXT+=",os-snapshot-unmanage,os-types-extra-specs,os-types-manage"
|
||||
DEFAULT_VOL_EXT+=",os-used-limits,os-vol-host-attr,os-vol-image-meta"
|
||||
DEFAULT_VOL_EXT+=",os-vol-mig-status-attr,os-vol-tenant-attr,os-volume-actions"
|
||||
DEFAULT_VOL_EXT+=",os-volume-encryption-metadata,os-volume-manage"
|
||||
DEFAULT_VOL_EXT+=",os-volume-transfer,os-volume-type-access"
|
||||
DEFAULT_VOL_EXT+=",os-volume-unmanage,qos-specs,scheduler-stats"
|
||||
local volume_api_extensions=${VOLUME_API_EXTENSIONS:-$DEFAULT_VOL_EXT}
|
||||
if [[ ! -z "$DISABLE_VOLUME_API_EXTENSIONS" ]]; then
|
||||
# Enabled extensions are either the ones explicitly specified or those available on the API endpoint
|
||||
volume_api_extensions=${VOLUME_API_EXTENSIONS:-$(iniget $tmp_cfg_file volume-feature-enabled api_extensions | tr -d " ")}
|
||||
@@ -624,6 +647,17 @@ function install_tempest {
|
||||
git_clone $TEMPEST_REPO $TEMPEST_DIR $TEMPEST_BRANCH
|
||||
pip_install tox
|
||||
pushd $TEMPEST_DIR
|
||||
# NOTE(gmann): checkout the TEMPEST_BRANCH in case TEMPEST_BRANCH
|
||||
# is tag name not master. git_clone would not checkout tag because
|
||||
# TEMPEST_DIR already exist until RECLONE is true.
|
||||
git checkout $TEMPEST_BRANCH
|
||||
|
||||
# NOTE(gmann): Use branch constraint because Tempest is pinned to the branch release
|
||||
# instead of using master. We need to export it via env var UPPER_CONSTRAINTS_FILE
|
||||
# so that initial creation of tempest tox use stable branch constraint
|
||||
# instead of master constraint as defined in tempest/tox.ini
|
||||
export UPPER_CONSTRAINTS_FILE=$REQUIREMENTS_DIR/upper-constraints.txt
|
||||
|
||||
tox --notest -efull
|
||||
# NOTE(mtreinish) Respect constraints in the tempest full venv, things that
|
||||
# are using a tox job other than full will not be respecting constraints but
|
||||
|
||||
@@ -212,6 +212,9 @@ function init_CA {
|
||||
if is_fedora; then
|
||||
sudo cp $INT_CA_DIR/ca-chain.pem /usr/share/pki/ca-trust-source/anchors/devstack-chain.pem
|
||||
sudo update-ca-trust
|
||||
elif is_suse; then
|
||||
sudo cp $INT_CA_DIR/ca-chain.pem /usr/share/pki/trust/anchors/devstack-chain.pem
|
||||
sudo update-ca-certificates
|
||||
elif is_ubuntu; then
|
||||
sudo cp $INT_CA_DIR/ca-chain.pem /usr/local/share/ca-certificates/devstack-int.crt
|
||||
sudo cp $ROOT_CA_DIR/cacert.pem /usr/local/share/ca-certificates/devstack-root.crt
|
||||
@@ -354,6 +357,9 @@ function fix_system_ca_bundle_path {
|
||||
elif is_ubuntu; then
|
||||
sudo rm -f $capath
|
||||
sudo ln -s /etc/ssl/certs/ca-certificates.crt $capath
|
||||
elif is_suse; then
|
||||
sudo rm -f $capath
|
||||
sudo ln -s /etc/ssl/ca-bundle.pem $capath
|
||||
else
|
||||
echo "Don't know how to set the CA bundle, expect the install to fail."
|
||||
fi
|
||||
@@ -429,6 +435,9 @@ function enable_mod_ssl {
|
||||
|
||||
if is_ubuntu; then
|
||||
sudo a2enmod ssl
|
||||
elif is_suse; then
|
||||
sudo a2enmod ssl
|
||||
sudo a2enflag SSL
|
||||
elif is_fedora; then
|
||||
# Fedora enables mod_ssl by default
|
||||
:
|
||||
@@ -519,8 +528,12 @@ $listen_string
|
||||
SSLEngine On
|
||||
SSLCertificateFile $DEVSTACK_CERT
|
||||
|
||||
# Disable KeepAlive to fix bug #1630664 a.k.a the
|
||||
# ('Connection aborted.', BadStatusLine("''",)) error
|
||||
KeepAlive Off
|
||||
|
||||
<Location />
|
||||
ProxyPass http://$b_host:$b_port/ retry=5 nocanon
|
||||
ProxyPass http://$b_host:$b_port/ retry=0 nocanon
|
||||
ProxyPassReverse http://$b_host:$b_port/
|
||||
</Location>
|
||||
ErrorLog $APACHE_LOG_DIR/tls-proxy_error.log
|
||||
@@ -530,6 +543,9 @@ $listen_string
|
||||
LogFormat "%v %h %l %u %t \"%r\" %>s %b"
|
||||
</VirtualHost>
|
||||
EOF
|
||||
if is_suse ; then
|
||||
sudo a2enflag SSL
|
||||
fi
|
||||
for mod in ssl proxy proxy_http; do
|
||||
enable_apache_mod $mod
|
||||
done
|
||||
|
||||
@@ -190,6 +190,9 @@ if [[ ! -r $TOP_DIR/stackrc ]]; then
|
||||
fi
|
||||
source $TOP_DIR/stackrc
|
||||
|
||||
# write /etc/devstack-version
|
||||
write_devstack_version
|
||||
|
||||
# Warn users who aren't on an explicitly supported distro, but allow them to
|
||||
# override check and attempt installation with ``FORCE=yes ./stack``
|
||||
if [[ ! ${DISTRO} =~ (trusty|xenial|yakkety|7.0|wheezy|sid|testing|jessie|f23|f24|f25|rhel7|kvmibm1) ]]; then
|
||||
@@ -263,7 +266,7 @@ fi
|
||||
# Some distros need to add repos beyond the defaults provided by the vendor
|
||||
# to pick up required packages.
|
||||
|
||||
function _install_epel_and_rdo {
|
||||
function _install_epel {
|
||||
# NOTE: We always remove and install latest -- some environments
|
||||
# use snapshot images, and if EPEL version updates they break
|
||||
# unless we update them to latest version.
|
||||
@@ -294,13 +297,30 @@ EOF
|
||||
yum_install epel-release || \
|
||||
die $LINENO "Error installing EPEL repo, cannot continue"
|
||||
sudo rm -f /etc/yum.repos.d/epel-bootstrap.repo
|
||||
}
|
||||
|
||||
# ... and also optional to be enabled
|
||||
function _install_rdo {
|
||||
# There are multiple options for this, including using CloudSIG
|
||||
# repositories (centos-release-*), trunk versions, etc. Since
|
||||
# we're not interested in the actual openstack distributions
|
||||
# (since we're using git to run!) but only peripherial packages
|
||||
# like kvm or ovs, this has been reliable.
|
||||
|
||||
# TODO(ianw): figure out how to best mirror -- probably use infra
|
||||
# mirror RDO reverse proxy. We could either have test
|
||||
# infrastructure set it up disabled like EPEL, or fiddle it here.
|
||||
# Per the point above, it's a bunch of repos so starts getting a
|
||||
# little messy...
|
||||
if ! is_package_installed rdo-release ; then
|
||||
# Get ocata rdo-release RPM package
|
||||
rdo_release="ocata"
|
||||
yum_install https://rdoproject.org/repos/openstack-$rdo_release/rdo-release-$rdo_release.rpm
|
||||
fi
|
||||
|
||||
# Also enable optional for RHEL7 proper. Note this is a silent
|
||||
# no-op on other platforms.
|
||||
sudo yum-config-manager --enable rhel-7-server-optional-rpms
|
||||
|
||||
# install the lastest RDO
|
||||
is_package_installed rdo-release || yum_install https://rdoproject.org/repos/rdo-release.rpm
|
||||
|
||||
if is_oraclelinux; then
|
||||
sudo yum-config-manager --enable ol7_optional_latest ol7_addons ol7_MySQL56
|
||||
fi
|
||||
@@ -342,16 +362,22 @@ fi
|
||||
# to speed things up
|
||||
SKIP_EPEL_INSTALL=$(trueorfalse False SKIP_EPEL_INSTALL)
|
||||
|
||||
# If we have /etc/nodepool/provider assume we're on a OpenStack CI
|
||||
# node, where EPEL is already pointing at our internal mirror and RDO
|
||||
# is pre-installed.
|
||||
if [[ -f /etc/nodepool/provider ]]; then
|
||||
SKIP_EPEL_INSTALL=True
|
||||
fi
|
||||
if [[ $DISTRO == "rhel7" ]]; then
|
||||
# If we have /etc/ci/mirror_info.sh assume we're on a OpenStack CI
|
||||
# node, where EPEL is installed (but disabled) and already
|
||||
# pointing at our internal mirror
|
||||
if [[ -f /etc/ci/mirror_info.sh ]]; then
|
||||
SKIP_EPEL_INSTALL=True
|
||||
sudo yum-config-manager --enable epel
|
||||
fi
|
||||
|
||||
if is_fedora && [[ $DISTRO == "rhel7" ]] && \
|
||||
[[ ${SKIP_EPEL_INSTALL} != True ]]; then
|
||||
_install_epel_and_rdo
|
||||
if [[ ${SKIP_EPEL_INSTALL} != True ]]; then
|
||||
_install_epel
|
||||
fi
|
||||
# Along with EPEL, CentOS (and a-likes) require some packages only
|
||||
# available in RDO repositories (e.g. OVS, or later versions of
|
||||
# kvm) to run.
|
||||
_install_rdo
|
||||
fi
|
||||
|
||||
# Ensure python is installed
|
||||
@@ -872,7 +898,7 @@ fi
|
||||
# if placement-api or placement-client is active, and n-cpu on the
|
||||
# same box.
|
||||
if is_service_enabled placement placement-client; then
|
||||
if is_service_enabled n-cpu; then
|
||||
if is_service_enabled n-cpu || is_service_enabled n-sch; then
|
||||
configure_placement_nova_compute
|
||||
fi
|
||||
fi
|
||||
@@ -1354,6 +1380,13 @@ fi
|
||||
# Sanity checks
|
||||
# =============
|
||||
|
||||
# Check that computes are all ready
|
||||
#
|
||||
# TODO(sdague): there should be some generic phase here.
|
||||
if is_service_enabled n-cpu; then
|
||||
is_nova_ready
|
||||
fi
|
||||
|
||||
# Check the status of running services
|
||||
service_check
|
||||
|
||||
@@ -1450,6 +1483,10 @@ if [[ -n "$DEPRECATED_TEXT" ]]; then
|
||||
echo_summary "WARNING: $DEPRECATED_TEXT"
|
||||
fi
|
||||
|
||||
# Useful info on current state
|
||||
cat /etc/devstack-version
|
||||
echo
|
||||
|
||||
# Indicate how long this took to run (bash maintained variable ``SECONDS``)
|
||||
echo_summary "stack.sh completed in $SECONDS seconds."
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
# ensure we don't re-source this in the same environment
|
||||
[[ -z "$_DEVSTACK_STACKRC" ]] || return 0
|
||||
declare -r _DEVSTACK_STACKRC=1
|
||||
declare -r -g _DEVSTACK_STACKRC=1
|
||||
|
||||
# Find the other rc files
|
||||
RC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)
|
||||
@@ -195,7 +195,7 @@ GIT_TIMEOUT=${GIT_TIMEOUT:-0}
|
||||
|
||||
# Base GIT Repo URL
|
||||
# Another option is https://git.openstack.org
|
||||
GIT_BASE=${GIT_BASE:-git://git.openstack.org}
|
||||
GIT_BASE=${GIT_BASE:-https://git.openstack.org}
|
||||
|
||||
# The location of REQUIREMENTS once cloned
|
||||
REQUIREMENTS_DIR=$DEST/requirements
|
||||
@@ -216,6 +216,7 @@ REQUIREMENTS_DIR=$DEST/requirements
|
||||
# Setting the variable to 'ALL' will activate the download for all
|
||||
# libraries.
|
||||
|
||||
DEVSTACK_SERIES="ocata"
|
||||
|
||||
##############
|
||||
#
|
||||
@@ -225,35 +226,35 @@ REQUIREMENTS_DIR=$DEST/requirements
|
||||
|
||||
# block storage service
|
||||
CINDER_REPO=${CINDER_REPO:-${GIT_BASE}/openstack/cinder.git}
|
||||
CINDER_BRANCH=${CINDER_BRANCH:-master}
|
||||
CINDER_BRANCH=${CINDER_BRANCH:-stable/ocata}
|
||||
|
||||
# image catalog service
|
||||
GLANCE_REPO=${GLANCE_REPO:-${GIT_BASE}/openstack/glance.git}
|
||||
GLANCE_BRANCH=${GLANCE_BRANCH:-master}
|
||||
GLANCE_BRANCH=${GLANCE_BRANCH:-stable/ocata}
|
||||
|
||||
# django powered web control panel for openstack
|
||||
HORIZON_REPO=${HORIZON_REPO:-${GIT_BASE}/openstack/horizon.git}
|
||||
HORIZON_BRANCH=${HORIZON_BRANCH:-master}
|
||||
HORIZON_BRANCH=${HORIZON_BRANCH:-stable/ocata}
|
||||
|
||||
# unified auth system (manages accounts/tokens)
|
||||
KEYSTONE_REPO=${KEYSTONE_REPO:-${GIT_BASE}/openstack/keystone.git}
|
||||
KEYSTONE_BRANCH=${KEYSTONE_BRANCH:-master}
|
||||
KEYSTONE_BRANCH=${KEYSTONE_BRANCH:-stable/ocata}
|
||||
|
||||
# neutron service
|
||||
NEUTRON_REPO=${NEUTRON_REPO:-${GIT_BASE}/openstack/neutron.git}
|
||||
NEUTRON_BRANCH=${NEUTRON_BRANCH:-master}
|
||||
NEUTRON_BRANCH=${NEUTRON_BRANCH:-stable/ocata}
|
||||
|
||||
# neutron fwaas service
|
||||
NEUTRON_FWAAS_REPO=${NEUTRON_FWAAS_REPO:-${GIT_BASE}/openstack/neutron-fwaas.git}
|
||||
NEUTRON_FWAAS_BRANCH=${NEUTRON_FWAAS_BRANCH:-master}
|
||||
NEUTRON_FWAAS_BRANCH=${NEUTRON_FWAAS_BRANCH:-stable/ocata}
|
||||
|
||||
# compute service
|
||||
NOVA_REPO=${NOVA_REPO:-${GIT_BASE}/openstack/nova.git}
|
||||
NOVA_BRANCH=${NOVA_BRANCH:-master}
|
||||
NOVA_BRANCH=${NOVA_BRANCH:-stable/ocata}
|
||||
|
||||
# object storage service
|
||||
SWIFT_REPO=${SWIFT_REPO:-${GIT_BASE}/openstack/swift.git}
|
||||
SWIFT_BRANCH=${SWIFT_BRANCH:-master}
|
||||
SWIFT_BRANCH=${SWIFT_BRANCH:-stable/ocata}
|
||||
|
||||
##############
|
||||
#
|
||||
@@ -263,12 +264,13 @@ SWIFT_BRANCH=${SWIFT_BRANCH:-master}
|
||||
|
||||
# consolidated openstack requirements
|
||||
REQUIREMENTS_REPO=${REQUIREMENTS_REPO:-${GIT_BASE}/openstack/requirements.git}
|
||||
REQUIREMENTS_BRANCH=${REQUIREMENTS_BRANCH:-master}
|
||||
REQUIREMENTS_BRANCH=${REQUIREMENTS_BRANCH:-stable/ocata}
|
||||
|
||||
# Tempest test suite
|
||||
TEMPEST_REPO=${TEMPEST_REPO:-${GIT_BASE}/openstack/tempest.git}
|
||||
TEMPEST_BRANCH=${TEMPEST_BRANCH:-master}
|
||||
|
||||
# Use Tempest tag 20.0.0 which is ocata supported version.
|
||||
# https://docs.openstack.org/releasenotes/tempest/v20.0.0.html
|
||||
TEMPEST_BRANCH=${TEMPEST_BRANCH:-20.0.0}
|
||||
|
||||
##############
|
||||
#
|
||||
@@ -547,7 +549,7 @@ IRONIC_PYTHON_AGENT_BRANCH=${IRONIC_PYTHON_AGENT_BRANCH:-master}
|
||||
|
||||
# a websockets/html5 or flash powered VNC console for vm instances
|
||||
NOVNC_REPO=${NOVNC_REPO:-https://github.com/kanaka/noVNC.git}
|
||||
NOVNC_BRANCH=${NOVNC_BRANCH:-master}
|
||||
NOVNC_BRANCH=${NOVNC_BRANCH:-stable/v0.6}
|
||||
|
||||
# a websockets/html5 or flash powered SPICE console for vm instances
|
||||
SPICE_REPO=${SPICE_REPO:-http://anongit.freedesktop.org/git/spice/spice-html5.git}
|
||||
@@ -564,8 +566,12 @@ VIRT_DRIVER=${VIRT_DRIVER:-$DEFAULT_VIRT_DRIVER}
|
||||
case "$VIRT_DRIVER" in
|
||||
ironic|libvirt)
|
||||
LIBVIRT_TYPE=${LIBVIRT_TYPE:-kvm}
|
||||
if [[ "$os_VENDOR" =~ (Debian) ]]; then
|
||||
LIBVIRT_GROUP=libvirt
|
||||
if [[ "$os_VENDOR" =~ (Debian|Ubuntu) ]]; then
|
||||
# The groups change with newer libvirt. Older Ubuntu used
|
||||
# 'libvirtd', but now uses libvirt like Debian. Do a quick check
|
||||
# to see if libvirtd group already exists to handle grenade's case.
|
||||
LIBVIRT_GROUP=$(cut -d ':' -f 1 /etc/group | grep 'libvirtd$' || true)
|
||||
LIBVIRT_GROUP=${LIBVIRT_GROUP:-libvirt}
|
||||
else
|
||||
LIBVIRT_GROUP=libvirtd
|
||||
fi
|
||||
@@ -626,9 +632,6 @@ if [[ "$DOWNLOAD_DEFAULT_IMAGES" == "True" ]]; then
|
||||
IMAGE_URLS+=","
|
||||
fi
|
||||
case "$VIRT_DRIVER" in
|
||||
openvz)
|
||||
DEFAULT_IMAGE_NAME=${DEFAULT_IMAGE_NAME:-ubuntu-12.04-x86_64}
|
||||
IMAGE_URLS+="http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz";;
|
||||
libvirt)
|
||||
case "$LIBVIRT_TYPE" in
|
||||
lxc) # the cirros root disk in the uec tarball is empty, so it will not work for lxc
|
||||
@@ -657,23 +660,6 @@ if [[ "$DOWNLOAD_DEFAULT_IMAGES" == "True" ]]; then
|
||||
DOWNLOAD_DEFAULT_IMAGES=False
|
||||
fi
|
||||
|
||||
# Staging area for new images. These images are cached by a run of
|
||||
# ./tools/image_list.sh during CI image build (see
|
||||
# project-config:nodepool/elements/cache-devstack/extra-data.d/55-cache-devstack-repos).
|
||||
#
|
||||
# To avoid CI failures grabbing the images, new images should be here
|
||||
# for at least 24hrs (nodepool builds images at 14:00UTC) so the they
|
||||
# are in the cache.
|
||||
PRECACHE_IMAGES=$(trueorfalse False PRECACHE_IMAGES)
|
||||
if [[ "$PRECACHE_IMAGES" == "True" ]]; then
|
||||
# required for trove devstack tests; see
|
||||
# git.openstack.org/cgit/openstack/trove/tree/devstack/plugin.sh
|
||||
IMAGE_URL="http://tarballs.openstack.org/trove/images/ubuntu/mysql.qcow2"
|
||||
if ! [[ "$IMAGE_URLS" =~ "$IMAGE_URL" ]]; then
|
||||
IMAGE_URLS+=",$IMAGE_URL"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Detect duplicate values in IMAGE_URLS
|
||||
for image_url in ${IMAGE_URLS//,/ }; do
|
||||
if [ $(echo "$IMAGE_URLS" | grep -o -F "$image_url" | wc -l) -gt 1 ]; then
|
||||
@@ -717,6 +703,11 @@ fi
|
||||
# Service startup timeout
|
||||
SERVICE_TIMEOUT=${SERVICE_TIMEOUT:-60}
|
||||
|
||||
# Timeout for compute node registration in Nova
|
||||
# NOTE(mnaser): This timeout is bumped to double SERVICE_TIMEOUT in Pike and
|
||||
# before because of slow libvirt 2.5.0 boot-up.
|
||||
NOVA_READY_TIMEOUT=${NOVA_READY_TIMEOUT:-120}
|
||||
|
||||
# Service graceful shutdown timeout
|
||||
SERVICE_GRACEFUL_SHUTDOWN_TIMEOUT=${SERVICE_GRACEFUL_SHUTDOWN_TIMEOUT:-5}
|
||||
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
echo "Ensuring we don't have crazy refs"
|
||||
|
||||
REFS=`grep BRANCH stackrc | grep -v -- '-master'`
|
||||
REFS=`grep BRANCH stackrc | grep -v -- '-master' | grep -v -- '-stable/ocata' | grep -v 'NOVNC_BRANCH'`
|
||||
rc=$?
|
||||
if [[ $rc -eq 0 ]]; then
|
||||
echo "Branch defaults must be master. Found:"
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
pip!=8
|
||||
pip!=8,<10
|
||||
|
||||
@@ -67,6 +67,33 @@ else
|
||||
echo_summary "WARNING: unable to reserve keystone ports"
|
||||
fi
|
||||
|
||||
# Ubuntu Cloud Archive
|
||||
#---------------------
|
||||
# We've found that Libvirt on Xenial is flaky and crashes enough to be
|
||||
# a regular top e-r bug. Opt into Ubuntu Cloud Archive if on Xenial to
|
||||
# get newer Libvirt.
|
||||
if [[ "$DISTRO" = "xenial" ]]; then
|
||||
# This pulls in apt-add-repository
|
||||
install_package "software-properties-common"
|
||||
# Use UCA for newer libvirt. Should give us libvirt 2.5.0.
|
||||
if [[ -f /etc/ci/mirror_info.sh ]] ; then
|
||||
# If we are on a nodepool provided host and it has told us about where
|
||||
# we can find local mirrors then use that mirror.
|
||||
source /etc/ci/mirror_info.sh
|
||||
|
||||
sudo apt-add-repository -y "deb $NODEPOOL_UCA_MIRROR xenial-updates/ocata main"
|
||||
|
||||
# Disable use of libvirt wheel here as presence of mirror implies
|
||||
# presence of cached wheel build against older libvirt binary.
|
||||
# TODO(clarkb) figure out how to use wheel again.
|
||||
sudo bash -c 'echo "no-binary = libvirt-python" >> /etc/pip.conf'
|
||||
else
|
||||
# Otherwise use upstream UCA
|
||||
sudo add-apt-repository -y cloud-archive:ocata
|
||||
fi
|
||||
sudo apt-get update
|
||||
fi
|
||||
|
||||
|
||||
# Python Packages
|
||||
# ---------------
|
||||
|
||||
@@ -74,7 +74,7 @@ printf "%-${name_col_len}s %s\n" "Plugin Name" "URL"
|
||||
title_underline ${name_col_len}
|
||||
|
||||
for plugin in ${sorted_plugins}; do
|
||||
giturl="git://git.openstack.org/openstack/${plugin}"
|
||||
giturl="https://git.openstack.org/openstack/${plugin}"
|
||||
gitlink="https://git.openstack.org/cgit/openstack/${plugin}"
|
||||
printf "%-${name_col_len}s %s\n" "${plugin}" "\`${giturl} <${gitlink}>\`__"
|
||||
done
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ echo $ALL_IMAGES | tr ',' '\n' | sort | uniq
|
||||
|
||||
# Sanity check - ensure we have a minimum number of images
|
||||
num=$(echo $ALL_IMAGES | tr ',' '\n' | sort | uniq | wc -l)
|
||||
if [[ "$num" -lt 5 ]]; then
|
||||
if [[ "$num" -lt 4 ]]; then
|
||||
echo "ERROR: We only found $num images in $ALL_IMAGES, which can't be right."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -144,6 +144,9 @@ if [[ -n $PYPI_ALTERNATIVE_URL ]]; then
|
||||
fi
|
||||
|
||||
set -x
|
||||
pip_install -U setuptools
|
||||
|
||||
# Note setuptools is part of requirements.txt and we want to make sure
|
||||
# we obey any versioning as described there.
|
||||
pip_install_gr setuptools
|
||||
|
||||
get_versions
|
||||
|
||||
+5
-1
@@ -151,7 +151,11 @@ def iptables_dump():
|
||||
def _netns_list():
|
||||
process = subprocess.Popen(['ip', 'netns'], stdout=subprocess.PIPE)
|
||||
stdout, _ = process.communicate()
|
||||
return stdout.split()
|
||||
# NOTE(jlvillal): Sometimes 'ip netns list' can return output like:
|
||||
# qrouter-0805fd7d-c493-4fa6-82ca-1c6c9b23cd9e (id: 1)
|
||||
# qdhcp-bb2cc6ae-2ae8-474f-adda-a94059b872b5 (id: 0)
|
||||
output = [x.split()[0] for x in stdout.splitlines()]
|
||||
return output
|
||||
|
||||
|
||||
def network_dump():
|
||||
|
||||
@@ -34,16 +34,7 @@ commands = bash -c "find {toxinidir} \
|
||||
-print0 | xargs -0 bashate -v -iE006 -eE005,E042"
|
||||
|
||||
[testenv:docs]
|
||||
deps =
|
||||
Pygments
|
||||
docutils
|
||||
sphinx>=1.1.2,<1.2
|
||||
pbr>=0.6,!=0.7,<1.0
|
||||
oslosphinx
|
||||
nwdiag
|
||||
blockdiag
|
||||
sphinxcontrib-blockdiag
|
||||
sphinxcontrib-nwdiag
|
||||
deps = -r{toxinidir}/doc/requirements.txt
|
||||
whitelist_externals = bash
|
||||
setenv =
|
||||
TOP_DIR={toxinidir}
|
||||
@@ -51,11 +42,5 @@ commands =
|
||||
python setup.py build_sphinx
|
||||
|
||||
[testenv:venv]
|
||||
deps =
|
||||
pbr>=0.6,!=0.7,<1.0
|
||||
sphinx>=1.1.2,<1.2
|
||||
oslosphinx
|
||||
blockdiag
|
||||
sphinxcontrib-blockdiag
|
||||
sphinxcontrib-nwdiag
|
||||
deps = -r{toxinidir}/doc/requirements.txt
|
||||
commands = {posargs}
|
||||
|
||||
Reference in New Issue
Block a user