Compare commits
71 Commits
zed-eom
...
newton-eol
| Author | SHA1 | Date | |
|---|---|---|---|
| f7d0851b6f | |||
| 61d6d6813e | |||
| 386aefe441 | |||
| d577fd5bd5 | |||
| 5832da784b | |||
| 3144222967 | |||
| 74e0c1c284 | |||
| e8b8d5f97b | |||
| 6182f24b4f | |||
| 729623de78 | |||
| e7f5adbec0 | |||
| 25d48b0172 | |||
| 5d76eaf937 | |||
| a0186f08fe | |||
| d3d8ff0465 | |||
| 9e69570cc7 | |||
| 24cdf6eb6f | |||
| 33a218a1e7 | |||
| 0e1064d4db | |||
| 2bb8708ce3 | |||
| 0fff6f6fb1 | |||
| a5950764ce | |||
| 082b6b386d | |||
| 09ba2b93f2 | |||
| 5442534ab6 | |||
| 95f45038a2 | |||
| f6c35a814b | |||
| be92aa8eb4 | |||
| f9c039af6c | |||
| 2d9a629cb7 | |||
| d7a718325e | |||
| eabe1e828c | |||
| a0c2fe25cb | |||
| 080d8e3a7f | |||
| 043141302c | |||
| 797e37d449 | |||
| 0d2fc817ea | |||
| 4b4e09776a | |||
| 5ee9e1977b | |||
| 580979805e | |||
| 3366b21bff | |||
| b34dee3730 | |||
| 6ae2170bbf | |||
| 228f5c0755 | |||
| 07ad8c8ce5 | |||
| c9d1b090bf | |||
| b9f95718e1 | |||
| 089a24f854 | |||
| 447fede340 | |||
| 468140a8c9 | |||
| d4647d80cf | |||
| 7cd314521a | |||
| 092309647b | |||
| 54877a770d | |||
| 33b079dc42 | |||
| 0027c6a232 | |||
| 9192069ff1 | |||
| bc2994a2c6 | |||
| 85032db513 | |||
| d7d10bb199 | |||
| cc7e306174 | |||
| 88dbdefc7e | |||
| 98758fd405 | |||
| 12858b5862 | |||
| 00a846aaa5 | |||
| 65174451bd | |||
| 511d629220 | |||
| 5aa67aa2e2 | |||
| 521ffdcbcc | |||
| 64e01e6178 | |||
| 1d995990fb |
+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/newton
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -584,7 +584,7 @@ you do not require them.
|
||||
|
||||
#Enable Neutron services
|
||||
disable_service n-net
|
||||
enable_plugin neutron git://git.openstack.org/openstack/neutron
|
||||
enable_plugin neutron https://git.openstack.org/openstack/neutron
|
||||
ENABLED_SERVICES+=,q-agt,q-svc
|
||||
|
||||
## MacVTap agent options
|
||||
@@ -639,7 +639,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
|
||||
|
||||
+118
-118
@@ -24,124 +24,124 @@ 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>`__
|
||||
gce-api `git://git.openstack.org/openstack/gce-api <https://git.openstack.org/cgit/openstack/gce-api>`__
|
||||
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>`__
|
||||
kingbird `git://git.openstack.org/openstack/kingbird <https://git.openstack.org/cgit/openstack/kingbird>`__
|
||||
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>`__
|
||||
masakari `git://git.openstack.org/openstack/masakari <https://git.openstack.org/cgit/openstack/masakari>`__
|
||||
mistral `git://git.openstack.org/openstack/mistral <https://git.openstack.org/cgit/openstack/mistral>`__
|
||||
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-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-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-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>`__
|
||||
octavia `git://git.openstack.org/openstack/octavia <https://git.openstack.org/cgit/openstack/octavia>`__
|
||||
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>`__
|
||||
python-freezerclient `git://git.openstack.org/openstack/python-freezerclient <https://git.openstack.org/cgit/openstack/python-freezerclient>`__
|
||||
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>`__
|
||||
gce-api `https://git.openstack.org/openstack/gce-api <https://git.openstack.org/cgit/openstack/gce-api>`__
|
||||
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>`__
|
||||
kingbird `https://git.openstack.org/openstack/kingbird <https://git.openstack.org/cgit/openstack/kingbird>`__
|
||||
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>`__
|
||||
masakari `https://git.openstack.org/openstack/masakari <https://git.openstack.org/cgit/openstack/masakari>`__
|
||||
mistral `https://git.openstack.org/openstack/mistral <https://git.openstack.org/cgit/openstack/mistral>`__
|
||||
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-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-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-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>`__
|
||||
octavia `https://git.openstack.org/openstack/octavia <https://git.openstack.org/cgit/openstack/octavia>`__
|
||||
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>`__
|
||||
python-freezerclient `https://git.openstack.org/openstack/python-freezerclient <https://git.openstack.org/cgit/openstack/python-freezerclient>`__
|
||||
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
|
||||
========
|
||||
|
||||
@@ -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)
|
||||
@@ -646,6 +646,46 @@ 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
|
||||
# frames; and also on older kernels (pre-3.18) it provides sysctl knobs to
|
||||
# enable/disable bridge firewalling
|
||||
sudo modprobe bridge
|
||||
# For newer kernels (3.18+), those sysctl settings are split into a separate
|
||||
# kernel module (br_netfilter). Load it too, if present.
|
||||
sudo modprobe br_netfilter 2>> /dev/null || :
|
||||
# Enable bridge firewalling in case it's disabled in kernel (upstream
|
||||
# default is enabled, but some distributions may decide to change it).
|
||||
# This is at least needed for RHEL 7.2 and earlier releases.
|
||||
for proto in arp ip ip6; do
|
||||
sudo sysctl -w net.bridge.bridge-nf-call-${proto}tables=1
|
||||
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
|
||||
|
||||
|
||||
+15
-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
|
||||
@@ -1779,6 +1779,9 @@ function enable_plugin {
|
||||
local name=$1
|
||||
local url=$2
|
||||
local branch=${3:-master}
|
||||
if [[ ",${DEVSTACK_PLUGINS}," =~ ,${name}, ]]; then
|
||||
die $LINENO "Plugin attempted to be enabled twice: ${name} ${url} ${branch}"
|
||||
fi
|
||||
DEVSTACK_PLUGINS+=",$name"
|
||||
GITREPO[$name]=$url
|
||||
GITDIR[$name]=$DEST/$name
|
||||
@@ -2356,9 +2359,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
|
||||
#
|
||||
|
||||
+4
-6
@@ -40,12 +40,10 @@ function get_meta_section {
|
||||
$CONFIG_AWK_CMD -v matchgroup=$matchgroup -v configfile=$configfile '
|
||||
BEGIN { group = "" }
|
||||
/^\[\[.+\|.*\]\]/ {
|
||||
if (group == "") {
|
||||
gsub("[][]", "", $1);
|
||||
split($1, a, "|");
|
||||
if (a[1] == matchgroup && a[2] == configfile) {
|
||||
group=a[1]
|
||||
}
|
||||
gsub("[][]", "", $1);
|
||||
split($1, a, "|");
|
||||
if (a[1] == matchgroup && a[2] == configfile) {
|
||||
group=a[1]
|
||||
} else {
|
||||
group=""
|
||||
}
|
||||
|
||||
+22
-2
@@ -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
|
||||
@@ -203,7 +203,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
|
||||
@@ -374,6 +387,13 @@ function install_python3 {
|
||||
fi
|
||||
}
|
||||
|
||||
function install_devstack_tools {
|
||||
# intentionally old to ensure devstack-gate has control
|
||||
local dstools_version=${DSTOOLS_VERSION:-0.1.2}
|
||||
install_python3
|
||||
sudo pip3 install -U devstack-tools==${dstools_version}
|
||||
}
|
||||
|
||||
# Restore xtrace
|
||||
$INC_PY_TRACE
|
||||
|
||||
|
||||
@@ -273,6 +273,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
|
||||
|
||||
+5
-2
@@ -187,8 +187,6 @@ function configure_glance {
|
||||
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 key $SERVICE_PASSWORD
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 auth_address $KEYSTONE_SERVICE_URI/v3
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 user_domain_name $SERVICE_DOMAIN_NAME
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 project_domain_name $SERVICE_DOMAIN_NAME
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 auth_version 3
|
||||
|
||||
# commenting is not strictly necessary but it's confusing to have bad values in conf
|
||||
@@ -312,6 +310,11 @@ function create_glance_accounts {
|
||||
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT" \
|
||||
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT" \
|
||||
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT"
|
||||
|
||||
# Note(frickler): Crude workaround for https://bugs.launchpad.net/glance-store/+bug/1620999
|
||||
service_domain_id=$(get_or_create_domain $SERVICE_DOMAIN_NAME)
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 project_domain_id $service_domain_id
|
||||
iniset $GLANCE_SWIFT_STORE_CONF ref1 user_domain_id $service_domain_id
|
||||
fi
|
||||
|
||||
# Add glance-glare service and endpoints
|
||||
|
||||
@@ -40,7 +40,6 @@ HEAT_DIR=$DEST/heat
|
||||
HEAT_CFNTOOLS_DIR=$DEST/heat-cfntools
|
||||
HEAT_TEMPLATES_REPO_DIR=$DEST/heat-templates
|
||||
OCC_DIR=$DEST/os-collect-config
|
||||
DIB_UTILS_DIR=$DEST/dib-utils
|
||||
ORC_DIR=$DEST/os-refresh-config
|
||||
OAC_DIR=$DEST/os-apply-config
|
||||
|
||||
@@ -276,7 +275,6 @@ function install_heat_other {
|
||||
git_clone $OAC_REPO $OAC_DIR $OAC_BRANCH
|
||||
git_clone $OCC_REPO $OCC_DIR $OCC_BRANCH
|
||||
git_clone $ORC_REPO $ORC_DIR $ORC_BRANCH
|
||||
git_clone $DIB_UTILS_REPO $DIB_UTILS_DIR $DIB_UTILS_BRANCH
|
||||
}
|
||||
|
||||
# start_heat() - Start running processes, including screen
|
||||
@@ -420,7 +418,7 @@ function create_heat_accounts {
|
||||
|
||||
# build_heat_pip_mirror() - Build a pip mirror containing heat agent projects
|
||||
function build_heat_pip_mirror {
|
||||
local project_dirs="$OCC_DIR $OAC_DIR $ORC_DIR $HEAT_CFNTOOLS_DIR $DIB_UTILS_DIR"
|
||||
local project_dirs="$OCC_DIR $OAC_DIR $ORC_DIR $HEAT_CFNTOOLS_DIR"
|
||||
local projpath proj package
|
||||
|
||||
rm -rf $HEAT_PIP_REPO
|
||||
|
||||
+4
-2
@@ -498,8 +498,10 @@ function init_keystone {
|
||||
init_ldap
|
||||
fi
|
||||
|
||||
# (Re)create keystone database
|
||||
recreate_database keystone
|
||||
if [[ "$RECREATE_KEYSTONE_DB" == True ]]; then
|
||||
# (Re)create keystone database
|
||||
recreate_database keystone
|
||||
fi
|
||||
|
||||
# Initialize keystone database
|
||||
$KEYSTONE_BIN_DIR/keystone-manage --config-file $KEYSTONE_CONF db_sync
|
||||
|
||||
@@ -182,6 +182,10 @@ function configure_neutron_new {
|
||||
iniset $NEUTRON_PLUGIN_CONF securitygroup iptables_hybrid
|
||||
iniset $NEUTRON_PLUGIN_CONF ovs local_ip $HOST_IP
|
||||
fi
|
||||
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
fi
|
||||
|
||||
# DHCP Agent
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ VIF_PLUGGING_TIMEOUT=${VIF_PLUGGING_TIMEOUT:-300}
|
||||
|
||||
# List of config file names in addition to the main plugin config file
|
||||
# See _configure_neutron_common() for details about setting it up
|
||||
declare -a Q_PLUGIN_EXTRA_CONF_FILES
|
||||
declare -a -g Q_PLUGIN_EXTRA_CONF_FILES
|
||||
|
||||
|
||||
Q_RR_CONF_FILE=$NEUTRON_CONF_DIR/rootwrap.conf
|
||||
|
||||
@@ -62,13 +62,18 @@ function neutron_plugin_configure_plugin_agent {
|
||||
LB_INTERFACE_MAPPINGS=$PHYSICAL_NETWORK:$LB_PHYSICAL_INTERFACE
|
||||
fi
|
||||
if [[ "$PUBLIC_BRIDGE" != "" ]] && [[ "$PUBLIC_PHYSICAL_NETWORK" != "" ]]; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE linux_bridge bridge_mappings "$PUBLIC_PHYSICAL_NETWORK:$PUBLIC_BRIDGE"
|
||||
if is_service_enabled q-l3 || is_service_enabled neutron-l3; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE linux_bridge bridge_mappings "$PUBLIC_PHYSICAL_NETWORK:$PUBLIC_BRIDGE"
|
||||
fi
|
||||
fi
|
||||
if [[ "$LB_INTERFACE_MAPPINGS" != "" ]]; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE linux_bridge physical_interface_mappings $LB_INTERFACE_MAPPINGS
|
||||
fi
|
||||
if [[ "$Q_USE_SECGROUP" == "True" ]]; then
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
else
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver
|
||||
fi
|
||||
|
||||
@@ -30,7 +30,7 @@ function _neutron_ovs_base_add_bridge {
|
||||
|
||||
function _neutron_ovs_base_setup_bridge {
|
||||
local bridge=$1
|
||||
neutron-ovs-cleanup
|
||||
neutron-ovs-cleanup --config-file $NEUTRON_CONF
|
||||
_neutron_ovs_base_add_bridge $bridge
|
||||
sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge
|
||||
}
|
||||
@@ -84,6 +84,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 neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
||||
if ! running_in_container; then
|
||||
enable_kernel_bridge_firewall
|
||||
fi
|
||||
else
|
||||
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver
|
||||
fi
|
||||
@@ -96,7 +99,7 @@ function _neutron_ovs_base_configure_l3_agent {
|
||||
iniset $Q_L3_CONF_FILE DEFAULT external_network_bridge $PUBLIC_BRIDGE
|
||||
fi
|
||||
|
||||
neutron-ovs-cleanup
|
||||
neutron-ovs-cleanup --config-file $NEUTRON_CONF
|
||||
if [[ "$Q_USE_PUBLIC_VETH" = "True" ]]; then
|
||||
ip link show $Q_PUBLIC_VETH_INT > /dev/null 2>&1 ||
|
||||
sudo ip link add $Q_PUBLIC_VETH_INT type veth \
|
||||
|
||||
@@ -88,8 +88,10 @@ SUBNETPOOL_PREFIX_V6=${SUBNETPOOL_PREFIX_V6:-2001:db8:8000::/48}
|
||||
SUBNETPOOL_SIZE_V4=${SUBNETPOOL_SIZE_V4:-24}
|
||||
SUBNETPOOL_SIZE_V6=${SUBNETPOOL_SIZE_V6:-64}
|
||||
|
||||
default_route_dev=$(ip route | grep ^default | awk '{print $5}')
|
||||
die_if_not_set $LINENO default_route_dev "Failure retrieving default route device"
|
||||
default_v4_route_devs=$(ip -4 route | grep ^default | awk '{print $5}')
|
||||
die_if_not_set $LINENO default_v4_route_devs "Failure retrieving default IPv4 route devices"
|
||||
|
||||
default_v6_route_devs=$(ip -6 route | grep ^default | awk '{print $5}')
|
||||
|
||||
function _determine_config_l3 {
|
||||
local opts="--config-file $NEUTRON_CONF --config-file $Q_L3_CONF_FILE"
|
||||
@@ -121,7 +123,9 @@ function _configure_neutron_l3_agent {
|
||||
_move_neutron_addresses_route "$PUBLIC_INTERFACE" "$OVS_PHYSICAL_BRIDGE" False False "inet6"
|
||||
fi
|
||||
else
|
||||
sudo iptables -t nat -A POSTROUTING -o $default_route_dev -s $FLOATING_RANGE -j MASQUERADE
|
||||
for d in $default_v4_route_devs; do
|
||||
sudo iptables -t nat -A POSTROUTING -o $d -s $FLOATING_RANGE -j MASQUERADE
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -371,11 +375,16 @@ function _neutron_configure_router_v6 {
|
||||
|
||||
# This logic is specific to using the l3-agent for layer 3
|
||||
if is_service_enabled q-l3 || is_service_enabled neutron-l3; then
|
||||
# Ensure IPv6 RAs are accepted on the interface with the default route.
|
||||
# Ensure IPv6 RAs are accepted on interfaces with a default route.
|
||||
# This is needed for neutron-based devstack clouds to work in
|
||||
# IPv6-only clouds in the gate. Please do not remove this without
|
||||
# talking to folks in Infra.
|
||||
sudo sysctl -w net.ipv6.conf.$default_route_dev.accept_ra=2
|
||||
for d in $default_v6_route_devs; do
|
||||
# Slashes must be used in this sysctl command because route devices
|
||||
# can have dots in their names. If dots were used, dots in the
|
||||
# device name would be reinterpreted as a slash, causing an error.
|
||||
sudo sysctl -w net/ipv6/conf/$d/accept_ra=2
|
||||
done
|
||||
# Ensure IPv6 forwarding is enabled on the host
|
||||
sudo sysctl -w net.ipv6.conf.all.forwarding=1
|
||||
# Configure and enable public bridge
|
||||
|
||||
@@ -478,6 +478,8 @@ function create_nova_conf {
|
||||
iniset $NOVA_CONF DEFAULT metadata_listen "$NOVA_SERVICE_LISTEN_ADDRESS"
|
||||
iniset $NOVA_CONF DEFAULT s3_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
|
||||
@@ -688,11 +690,11 @@ function init_nova {
|
||||
# (Re)create nova databases
|
||||
recreate_database nova
|
||||
if [ "$NOVA_CONFIGURE_CELLSV2" != "False" ]; then
|
||||
recreate_database nova_api_cell0
|
||||
recreate_database nova_cell0
|
||||
fi
|
||||
|
||||
# Migrate nova database. If "nova-manage cell_v2 simple_cell_setup" has
|
||||
# been run this migrates the "nova" and "nova_api_cell0" database.
|
||||
# been run this migrates the "nova" and "nova_cell0" database.
|
||||
# Otherwise it just migrates the "nova" database.
|
||||
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db sync
|
||||
|
||||
@@ -831,6 +833,8 @@ function start_nova_compute {
|
||||
# ``sg`` is used in run_process to execute nova-compute as a member of the
|
||||
# **$LIBVIRT_GROUP** group.
|
||||
run_process n-cpu "$NOVA_BIN_DIR/nova-compute --config-file $compute_cell_conf" $LIBVIRT_GROUP
|
||||
elif [[ "$VIRT_DRIVER" = 'lxd' ]]; then
|
||||
run_process n-cpu "$NOVA_BIN_DIR/nova-compute --config-file $compute_cell_conf" $LXD_GROUP
|
||||
elif [[ "$VIRT_DRIVER" = 'fake' ]]; then
|
||||
local i
|
||||
for i in `seq 1 $NUMBER_FAKE_NOVA_COMPUTE`; do
|
||||
@@ -868,9 +872,15 @@ function start_nova_rest {
|
||||
run_process n-cond "$NOVA_BIN_DIR/nova-conductor --config-file $compute_cell_conf"
|
||||
run_process n-cell-region "$NOVA_BIN_DIR/nova-cells --config-file $api_cell_conf"
|
||||
run_process n-cell-child "$NOVA_BIN_DIR/nova-cells --config-file $compute_cell_conf"
|
||||
|
||||
run_process n-crt "$NOVA_BIN_DIR/nova-cert --config-file $api_cell_conf"
|
||||
|
||||
if is_service_enabled n-net; then
|
||||
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"
|
||||
|
||||
run_process n-sch "$NOVA_BIN_DIR/nova-scheduler --config-file $compute_cell_conf"
|
||||
run_process n-api-meta "$NOVA_BIN_DIR/nova-api-metadata --config-file $compute_cell_conf"
|
||||
|
||||
@@ -948,6 +958,9 @@ function create_flavors {
|
||||
|
||||
# create_cell(): Group the available hosts into a cell
|
||||
function create_cell {
|
||||
# NOTE(danms): map_cell0 always returns 1 right now; remove this when that is fixed
|
||||
(nova-manage cell_v2 map_cell0 --database_connection `database_connection_url nova_cell0`|| true)
|
||||
|
||||
if ! is_service_enabled n-cell; then
|
||||
nova-manage cell_v2 simple_cell_setup --transport-url $(get_transport_url)
|
||||
else
|
||||
|
||||
@@ -31,7 +31,7 @@ function install_libvirt {
|
||||
fi
|
||||
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
|
||||
|
||||
@@ -45,11 +45,13 @@ function configure_nova_hypervisor {
|
||||
iniset $NOVA_CONF DEFAULT ram_allocation_ratio 1.0
|
||||
iniset $NOVA_CONF DEFAULT reserved_host_memory_mb 0
|
||||
# ironic section
|
||||
iniset $NOVA_CONF ironic admin_username admin
|
||||
iniset $NOVA_CONF ironic admin_password $ADMIN_PASSWORD
|
||||
iniset $NOVA_CONF ironic admin_url $KEYSTONE_AUTH_URI/v2.0
|
||||
iniset $NOVA_CONF ironic admin_tenant_name demo
|
||||
iniset $NOVA_CONF ironic api_endpoint $IRONIC_SERVICE_PROTOCOL://$IRONIC_HOSTPORT/v1
|
||||
iniset $NOVA_CONF ironic auth_type password
|
||||
iniset $NOVA_CONF ironic username admin
|
||||
iniset $NOVA_CONF ironic password $ADMIN_PASSWORD
|
||||
iniset $NOVA_CONF ironic auth_url $KEYSTONE_AUTH_URI/v3
|
||||
iniset $NOVA_CONF ironic project_domain_id default
|
||||
iniset $NOVA_CONF ironic user_domain_id default
|
||||
iniset $NOVA_CONF ironic project_name demo
|
||||
}
|
||||
|
||||
# install_nova_hypervisor() - Install external components
|
||||
|
||||
@@ -40,7 +40,8 @@ function configure_nova_hypervisor {
|
||||
configure_libvirt
|
||||
iniset $NOVA_CONF libvirt virt_type "$LIBVIRT_TYPE"
|
||||
iniset $NOVA_CONF libvirt cpu_mode "none"
|
||||
iniset $NOVA_CONF libvirt use_usb_tablet "False"
|
||||
# Do not enable USB tablet input devices to avoid QEMU CPU overhead.
|
||||
iniset $NOVA_CONF DEFAULT pointer_model "ps2mouse"
|
||||
iniset $NOVA_CONF libvirt live_migration_uri "qemu+ssh://$STACK_USER@%s/system"
|
||||
iniset $NOVA_CONF DEFAULT default_ephemeral_format "ext4"
|
||||
iniset $NOVA_CONF DEFAULT compute_driver "libvirt.LibvirtDriver"
|
||||
@@ -104,6 +105,16 @@ function install_nova_hypervisor {
|
||||
if [[ "$ENABLE_FILE_INJECTION" == "True" ]] ; then
|
||||
if is_ubuntu; then
|
||||
install_package python-guestfs
|
||||
# NOTE(andreaf) Ubuntu kernel can only be read by root, which breaks libguestfs:
|
||||
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725)
|
||||
INSTALLED_KERNELS="$(ls /boot/vmlinuz-*)"
|
||||
for kernel in $INSTALLED_KERNELS; do
|
||||
STAT_OVERRIDE="root root 644 ${kernel}"
|
||||
# unstack won't remove the statoverride, so make this idempotent
|
||||
if [[ ! $(dpkg-statoverride --list | grep "$STAT_OVERRIDE") ]]; then
|
||||
sudo dpkg-statoverride --add --update $STAT_OVERRIDE
|
||||
fi
|
||||
done
|
||||
elif is_fedora || is_suse; then
|
||||
install_package python-libguestfs
|
||||
fi
|
||||
|
||||
+2
-2
@@ -111,9 +111,9 @@ function configure_placement {
|
||||
iniset $NOVA_CONF placement auth_url "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v3"
|
||||
iniset $NOVA_CONF placement username placement
|
||||
iniset $NOVA_CONF placement password "$SERVICE_PASSWORD"
|
||||
iniset $NOVA_CONF placement user_domain_name "Default"
|
||||
iniset $NOVA_CONF placement user_domain_name "$SERVICE_DOMAIN_NAME"
|
||||
iniset $NOVA_CONF placement project_name "$SERVICE_TENANT_NAME"
|
||||
iniset $NOVA_CONF placement project_domain_name "Default"
|
||||
iniset $NOVA_CONF placement project_domain_name "$SERVICE_DOMAIN_NAME"
|
||||
iniset $NOVA_CONF placement os_region_name "$REGION_NAME"
|
||||
# TODO(cdent): auth_strategy, which is common to see in these
|
||||
# blocks is not currently used here. For the time being the
|
||||
|
||||
+51
-20
@@ -61,7 +61,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
|
||||
@@ -228,7 +228,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
|
||||
@@ -272,14 +272,14 @@ function configure_tempest {
|
||||
iniset $TEMPEST_CONFIG auth admin_tenant_id $admin_project_id
|
||||
iniset $TEMPEST_CONFIG auth admin_domain_name $admin_domain_name
|
||||
fi
|
||||
if [ "$ENABLE_IDENTITY_V2" == "False" ]; then
|
||||
# Only Identity v3 is available; then skip Identity API v2 tests
|
||||
iniset $TEMPEST_CONFIG identity-feature-enabled api_v2 False
|
||||
# In addition, use v3 auth tokens for running all Tempest tests
|
||||
iniset $TEMPEST_CONFIG identity auth_version v3
|
||||
if [ "$ENABLE_IDENTITY_V2" == "True" ]; then
|
||||
# Run Identity API v2 tests ONLY if needed
|
||||
iniset $TEMPEST_CONFIG identity-feature-enabled api_v2 True
|
||||
else
|
||||
iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v2}
|
||||
# Skip Identity API v2 tests by default
|
||||
iniset $TEMPEST_CONFIG identity-feature-enabled api_v2 False
|
||||
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
|
||||
@@ -336,7 +336,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.38"}
|
||||
# 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
|
||||
@@ -438,7 +438,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.15"}
|
||||
if [ "$tempest_volume_min_microversion" == "None" ]; then
|
||||
inicomment $TEMPEST_CONFIG volume min_microversion
|
||||
else
|
||||
@@ -513,13 +513,19 @@ function configure_tempest {
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled suspend False
|
||||
fi
|
||||
|
||||
# Libvirt-LXC
|
||||
if [ "$VIRT_DRIVER" = "libvirt" ] && [ "$LIBVIRT_TYPE" = "lxc" ]; then
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled rescue False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled resize False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled snapshot False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled suspend False
|
||||
# Libvirt
|
||||
if [ "$VIRT_DRIVER" = "libvirt" ]; then
|
||||
# Libvirt-LXC
|
||||
if [ "$LIBVIRT_TYPE" = "lxc" ]; then
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled rescue False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled resize False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled snapshot False
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled suspend False
|
||||
elif ! is_service_enabled n-cell; then
|
||||
# cells v1 does not support swapping volumes
|
||||
iniset $TEMPEST_CONFIG compute-feature-enabled swap_volume True
|
||||
fi
|
||||
fi
|
||||
|
||||
# ``service_available``
|
||||
@@ -584,7 +590,19 @@ 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"
|
||||
DEFAULT_NET_EXT+=",dhcp_agent_scheduler,dvr,ext-gw-mode,external-net"
|
||||
DEFAULT_NET_EXT+=",extra_dhcp_opt,extraroute,flavors,l3-flavors,l3-ha"
|
||||
DEFAULT_NET_EXT+=",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"
|
||||
DEFAULT_NET_EXT+=",standard-attr-timestamp,subnet-service-types,subnet_allocation"
|
||||
DEFAULT_NET_EXT+=",tag"
|
||||
|
||||
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 " ")}
|
||||
@@ -592,8 +610,12 @@ function configure_tempest {
|
||||
network_api_extensions=$(remove_disabled_extensions $network_api_extensions $DISABLE_NETWORK_API_EXTENSIONS)
|
||||
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"
|
||||
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 " ")}
|
||||
@@ -602,7 +624,16 @@ 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,encryption"
|
||||
DEFAULT_VOL_EXT+=",os-admin-actions,os-availability-zone,os-extended-services"
|
||||
DEFAULT_VOL_EXT+=",os-extended-snapshot-attributes,os-hosts,os-image-create,os-quota-class-sets"
|
||||
DEFAULT_VOL_EXT+=",os-quota-sets,os-services,os-snapshot-actions,os-snapshot-manage,"
|
||||
DEFAULT_VOL_EXT+="os-snapshot-unmanage,os-types-extra-specs,os-types-manage,os-used-limits"
|
||||
DEFAULT_VOL_EXT+=",os-vol-host-attr,os-vol-image-meta,os-vol-mig-status-attr,os-vol-tenant-attr"
|
||||
DEFAULT_VOL_EXT+=",os-volume-actions,os-volume-encryption-metadata,os-volume-manage,os-volume-transfer"
|
||||
DEFAULT_VOL_EXT+=",os-volume-type-access,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 " ")}
|
||||
|
||||
@@ -467,8 +467,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>
|
||||
</VirtualHost>
|
||||
|
||||
+5
-5
@@ -36,7 +36,7 @@ if is_service_enabled nova; then
|
||||
# Add first keypair found in localhost:$HOME/.ssh
|
||||
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do
|
||||
if [[ -r $i ]]; then
|
||||
nova keypair-add --pub_key=$i `hostname`
|
||||
openstack keypair create --public-key $i `hostname`
|
||||
break
|
||||
fi
|
||||
done
|
||||
@@ -53,8 +53,8 @@ if is_service_enabled nova; then
|
||||
MI_NAME=m1.micro
|
||||
|
||||
# Create micro flavor if not present
|
||||
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then
|
||||
nova flavor-create $MI_NAME 6 128 0 1
|
||||
if [[ -z $(openstack flavor list | grep $MI_NAME) ]]; then
|
||||
openstack flavor create $MI_NAME --id 6 --ram 128 --disk 0 --vcpus 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ if is_service_enabled nova; then
|
||||
# ----------
|
||||
|
||||
# Add tcp/22 and icmp to default security group
|
||||
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
|
||||
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
|
||||
openstack security group rule create --project $OS_PROJECT_NAME default --protocol tcp --ingress --dst-port 22
|
||||
openstack security group rule create --project $OS_PROJECT_NAME default --protocol icmp
|
||||
|
||||
fi
|
||||
|
||||
@@ -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|wily|xenial|7.0|wheezy|sid|testing|jessie|f23|f24|rhel7|kvmibm1) ]]; then
|
||||
@@ -347,6 +350,10 @@ SKIP_EPEL_INSTALL=$(trueorfalse False SKIP_EPEL_INSTALL)
|
||||
# is pre-installed.
|
||||
if [[ -f /etc/nodepool/provider ]]; then
|
||||
SKIP_EPEL_INSTALL=True
|
||||
if is_fedora; then
|
||||
# However, EPEL is not enabled by default.
|
||||
sudo yum-config-manager --enable epel
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_fedora && [[ $DISTRO == "rhel7" ]] && \
|
||||
@@ -1021,21 +1028,12 @@ start_dstat
|
||||
# Keystone
|
||||
# --------
|
||||
|
||||
if is_service_enabled keystone; then
|
||||
echo_summary "Starting Keystone"
|
||||
|
||||
if [ "$KEYSTONE_AUTH_HOST" == "$SERVICE_HOST" ]; then
|
||||
init_keystone
|
||||
start_keystone
|
||||
bootstrap_keystone
|
||||
fi
|
||||
|
||||
# Rather than just export these, we write them out to a
|
||||
# intermediate userrc file that can also be used to debug if
|
||||
# something goes wrong between here and running
|
||||
# tools/create_userrc.sh (this script relies on services other
|
||||
# than keystone being available, so we can't call it right now)
|
||||
cat > $TOP_DIR/userrc_early <<EOF
|
||||
# Rather than just export these, we write them out to a
|
||||
# intermediate userrc file that can also be used to debug if
|
||||
# something goes wrong between here and running
|
||||
# tools/create_userrc.sh (this script relies on services other
|
||||
# than keystone being available, so we can't call it right now)
|
||||
cat > $TOP_DIR/userrc_early <<EOF
|
||||
# Use this for debugging issues before files in accrc are created
|
||||
|
||||
# Set up password auth credentials now that Keystone is bootstrapped
|
||||
@@ -1050,12 +1048,21 @@ export OS_REGION_NAME=$KEYSTONE_REGION_NAME
|
||||
|
||||
EOF
|
||||
|
||||
if is_service_enabled tls-proxy; then
|
||||
echo "export OS_CACERT=$INT_CA_DIR/ca-chain.pem" >> $TOP_DIR/userrc_early
|
||||
start_tls_proxy http-services '*' 443 $SERVICE_HOST 80
|
||||
fi
|
||||
if is_service_enabled tls-proxy; then
|
||||
echo "export OS_CACERT=$INT_CA_DIR/ca-chain.pem" >> $TOP_DIR/userrc_early
|
||||
start_tls_proxy http-services '*' 443 $SERVICE_HOST 80
|
||||
fi
|
||||
|
||||
source $TOP_DIR/userrc_early
|
||||
source $TOP_DIR/userrc_early
|
||||
|
||||
if is_service_enabled keystone; then
|
||||
echo_summary "Starting Keystone"
|
||||
|
||||
if [ "$KEYSTONE_AUTH_HOST" == "$SERVICE_HOST" ]; then
|
||||
init_keystone
|
||||
start_keystone
|
||||
bootstrap_keystone
|
||||
fi
|
||||
|
||||
create_keystone_accounts
|
||||
create_nova_accounts
|
||||
@@ -1456,12 +1463,19 @@ fi
|
||||
|
||||
# Warn that a deprecated feature was used
|
||||
if [[ -n "$DEPRECATED_TEXT" ]]; then
|
||||
echo_summary "WARNING: $DEPRECATED_TEXT"
|
||||
echo
|
||||
echo -e "WARNING: $DEPRECATED_TEXT"
|
||||
echo
|
||||
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."
|
||||
|
||||
|
||||
# Restore/close logging file descriptors
|
||||
exec 1>&3
|
||||
exec 2>&3
|
||||
|
||||
@@ -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)
|
||||
@@ -203,7 +203,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
|
||||
@@ -224,6 +224,7 @@ REQUIREMENTS_DIR=$DEST/requirements
|
||||
# Setting the variable to 'ALL' will activate the download for all
|
||||
# libraries.
|
||||
|
||||
DEVSTACK_SERIES="newton"
|
||||
|
||||
##############
|
||||
#
|
||||
@@ -233,39 +234,39 @@ 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/newton}
|
||||
|
||||
# image catalog service
|
||||
GLANCE_REPO=${GLANCE_REPO:-${GIT_BASE}/openstack/glance.git}
|
||||
GLANCE_BRANCH=${GLANCE_BRANCH:-master}
|
||||
GLANCE_BRANCH=${GLANCE_BRANCH:-stable/newton}
|
||||
|
||||
# heat service
|
||||
HEAT_REPO=${HEAT_REPO:-${GIT_BASE}/openstack/heat.git}
|
||||
HEAT_BRANCH=${HEAT_BRANCH:-master}
|
||||
HEAT_BRANCH=${HEAT_BRANCH:-stable/newton}
|
||||
|
||||
# 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/newton}
|
||||
|
||||
# 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/newton}
|
||||
|
||||
# neutron service
|
||||
NEUTRON_REPO=${NEUTRON_REPO:-${GIT_BASE}/openstack/neutron.git}
|
||||
NEUTRON_BRANCH=${NEUTRON_BRANCH:-master}
|
||||
NEUTRON_BRANCH=${NEUTRON_BRANCH:-stable/newton}
|
||||
|
||||
# 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/newton}
|
||||
|
||||
# compute service
|
||||
NOVA_REPO=${NOVA_REPO:-${GIT_BASE}/openstack/nova.git}
|
||||
NOVA_BRANCH=${NOVA_BRANCH:-master}
|
||||
NOVA_BRANCH=${NOVA_BRANCH:-stable/newton}
|
||||
|
||||
# object storage service
|
||||
SWIFT_REPO=${SWIFT_REPO:-${GIT_BASE}/openstack/swift.git}
|
||||
SWIFT_BRANCH=${SWIFT_BRANCH:-master}
|
||||
SWIFT_BRANCH=${SWIFT_BRANCH:-stable/newton}
|
||||
|
||||
##############
|
||||
#
|
||||
@@ -275,7 +276,7 @@ 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/newton}
|
||||
|
||||
# Tempest test suite
|
||||
TEMPEST_REPO=${TEMPEST_REPO:-${GIT_BASE}/openstack/tempest.git}
|
||||
@@ -563,7 +564,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}
|
||||
@@ -586,6 +587,9 @@ case "$VIRT_DRIVER" in
|
||||
LIBVIRT_GROUP=libvirtd
|
||||
fi
|
||||
;;
|
||||
lxd)
|
||||
LXD_GROUP=${LXD_GROUP:-"lxd"}
|
||||
;;
|
||||
fake)
|
||||
NUMBER_FAKE_NOVA_COMPUTE=${NUMBER_FAKE_NOVA_COMPUTE:-1}
|
||||
;;
|
||||
@@ -636,9 +640,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
|
||||
@@ -672,23 +673,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
|
||||
@@ -827,6 +811,10 @@ GIT_DEPTH=${GIT_DEPTH:-0}
|
||||
# Use native SSL for servers in ``SSL_ENABLED_SERVICES``
|
||||
USE_SSL=$(trueorfalse False USE_SSL)
|
||||
|
||||
# We may not need to recreate database in case 2 Keystone services
|
||||
# sharing the same database. It would be useful for multinode Grenade tests.
|
||||
RECREATE_KEYSTONE_DB=$(trueorfalse True RECREATE_KEYSTONE_DB)
|
||||
|
||||
# ebtables is inherently racey. If you run it by two or more processes
|
||||
# simultaneously it will collide, badly, in the kernel and produce
|
||||
# failures or corruption of ebtables. The only way around it is for
|
||||
|
||||
@@ -125,6 +125,14 @@ foo=bar
|
||||
[[test10|does-not-exist-dir/test.conf]]
|
||||
foo=bar
|
||||
|
||||
[[test11|test-same.conf]]
|
||||
[DEFAULT]
|
||||
foo=bar
|
||||
|
||||
[[test11|test-same.conf]]
|
||||
[some]
|
||||
random=config
|
||||
|
||||
[[test-multi-sections|test-multi-sections.conf]]
|
||||
[sec-1]
|
||||
cfg_item1 = abcd
|
||||
@@ -147,6 +155,9 @@ cfg_item1 = abcd
|
||||
cfg_item2 = efgh
|
||||
cfg_item2 = \${FOO_BAR_BAZ}
|
||||
|
||||
[[test11|test-same.conf]]
|
||||
[another]
|
||||
non = sense
|
||||
EOF
|
||||
|
||||
echo -n "get_meta_section_files: test0 doesn't exist: "
|
||||
@@ -385,8 +396,24 @@ EXPECT_VAL=255
|
||||
check_result "$VAL" "$EXPECT_VAL"
|
||||
set -e
|
||||
|
||||
echo -n "merge_config_file test11 same section: "
|
||||
rm -f test-same.conf
|
||||
merge_config_group test.conf test11
|
||||
VAL=$(cat test-same.conf)
|
||||
EXPECT_VAL='
|
||||
[DEFAULT]
|
||||
foo = bar
|
||||
|
||||
[some]
|
||||
random = config
|
||||
|
||||
[another]
|
||||
non = sense'
|
||||
check_result "$VAL" "$EXPECT_VAL"
|
||||
|
||||
|
||||
rm -f test.conf test1c.conf test2a.conf \
|
||||
test-space.conf test-equals.conf test-strip.conf \
|
||||
test-colon.conf test-env.conf test-multiline.conf \
|
||||
test-multi-sections.conf
|
||||
test-multi-sections.conf test-same.conf
|
||||
rm -rf test-etc
|
||||
|
||||
+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/newton' | grep -v 'NOVNC_BRANCH'`
|
||||
rc=$?
|
||||
if [[ $rc -eq 0 ]]; then
|
||||
echo "Branch defaults must be master. Found:"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user