Switch to stable/train for source images on CentOS/RHEL

OpenStack projects are beginning to drop python 2 support on the master
branch. CentOS 8 is not yet ready, so our best option to continue
building and testing CentOS is to use the Train tarballs for source
images.

This change also introduces a new openstack_branch config option which
can be used to set the branch used for source images. For CentOS/RHEL,
the default is stable-train, for Debian/Ubuntu it it master.

Change-Id: Ieab5e06a3c05951d97bb979ab735b4cef675cc0a
This commit is contained in:
Mark Goddard 2019-12-06 11:13:37 +00:00
parent df987c9d3f
commit 55d8828be3
1 changed files with 123 additions and 111 deletions

View File

@ -33,7 +33,12 @@ DISTRO_RELEASE = {
'debian': '10',
'ubuntu': '18.04',
}
OPENSTACK_RELEASE = 'master'
OPENSTACK_RELEASE = {
'centos': 'train',
'rhel': 'train',
'debian': 'master',
'ubuntu': 'master',
}
# This is noarch repository so we will use it on all architectures
DELOREAN = \
@ -246,8 +251,10 @@ _CLI_OPTS = [
help=('Squash the image layers. WARNING: it will consume lots'
' of disk IO. "docker-squash" tool is required, install'
' it by "pip install docker-squash"')),
cfg.StrOpt('openstack-release', default=OPENSTACK_RELEASE,
cfg.StrOpt('openstack-release', default='master',
help='OpenStack release for building kolla-toolbox'),
cfg.StrOpt('openstack-branch', default='master',
help='Branch for source images'),
]
_BASE_OPTS = [
@ -281,67 +288,67 @@ SOURCES = {
'openstack-base': {
'type': 'url',
'location': ('$tarballs_base/requirements/'
'requirements-master.tar.gz')},
'requirements-${openstack_branch}.tar.gz')},
'aodh-base': {
'type': 'url',
'location': ('$tarballs_base/aodh/'
'aodh-master.tar.gz')},
'aodh-${openstack_branch}.tar.gz')},
'barbican-base': {
'type': 'url',
'location': ('$tarballs_base/barbican/'
'barbican-master.tar.gz')},
'barbican-${openstack_branch}.tar.gz')},
'bifrost-base': {
'type': 'url',
'location': ('$tarballs_base/bifrost/'
'bifrost-master.tar.gz')},
'bifrost-${openstack_branch}.tar.gz')},
'blazar-base': {
'type': 'url',
'location': ('$tarballs_base/blazar/'
'blazar-master.tar.gz')},
'blazar-${openstack_branch}.tar.gz')},
'ceilometer-base': {
'type': 'url',
'location': ('$tarballs_base/ceilometer/'
'ceilometer-master.tar.gz')},
'ceilometer-${openstack_branch}.tar.gz')},
'ceilometer-base-plugin-panko': {
'type': 'url',
'location': ('$tarballs_base/panko/'
'panko-master.tar.gz')},
'panko-${openstack_branch}.tar.gz')},
'cinder-base': {
'type': 'url',
'location': ('$tarballs_base/cinder/'
'cinder-master.tar.gz')},
'cinder-${openstack_branch}.tar.gz')},
'congress-base': {
'type': 'url',
'location': ('$tarballs_base/congress/'
'congress-master.tar.gz')},
'congress-${openstack_branch}.tar.gz')},
'cloudkitty-base': {
'type': 'url',
'location': ('$tarballs_base/cloudkitty/'
'cloudkitty-master.tar.gz')},
'cloudkitty-${openstack_branch}.tar.gz')},
'cyborg-base': {
'type': 'url',
'location': ('$tarballs_base/cyborg/'
'cyborg-master.tar.gz')},
'cyborg-${openstack_branch}.tar.gz')},
'designate-base': {
'type': 'url',
'location': ('$tarballs_base/designate/'
'designate-master.tar.gz')},
'designate-${openstack_branch}.tar.gz')},
'ec2-api': {
'type': 'url',
'location': ('$tarballs_base/ec2-api/'
'ec2-api-master.tar.gz')},
'ec2-api-${openstack_branch}.tar.gz')},
'freezer-api': {
'type': 'url',
'location': ('$tarballs_base/freezer-api/'
'freezer-api-master.tar.gz')},
'freezer-api-${openstack_branch}.tar.gz')},
'freezer-base': {
'type': 'url',
'location': ('$tarballs_base/freezer/'
'freezer-master.tar.gz')},
'freezer-${openstack_branch}.tar.gz')},
'glance-base': {
'type': 'url',
'location': ('$tarballs_base/glance/'
'glance-master.tar.gz')},
'glance-${openstack_branch}.tar.gz')},
'gnocchi-base': {
'type': 'git',
'reference': 'master',
@ -350,195 +357,195 @@ SOURCES = {
'heat-base': {
'type': 'url',
'location': ('$tarballs_base/heat/'
'heat-master.tar.gz')},
'heat-${openstack_branch}.tar.gz')},
'horizon': {
'type': 'url',
'location': ('$tarballs_base/horizon/'
'horizon-master.tar.gz')},
'horizon-${openstack_branch}.tar.gz')},
'horizon-plugin-blazar-dashboard': {
'type': 'url',
'location': ('$tarballs_base/blazar-dashboard/'
'blazar-dashboard-master.tar.gz')},
'blazar-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-congress-dashboard': {
'type': 'url',
'location': ('$tarballs_base/congress-dashboard/'
'congress-dashboard-master.tar.gz')},
'congress-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-cloudkitty-dashboard': {
'type': 'url',
'location': ('$tarballs_base/cloudkitty-dashboard/'
'cloudkitty-dashboard-master.tar.gz')},
'cloudkitty-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-designate-dashboard': {
'type': 'url',
'location': ('$tarballs_base/designate-dashboard/'
'designate-dashboard-master.tar.gz')},
'designate-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-fwaas-dashboard': {
'type': 'url',
'location': ('$tarballs_base/neutron-fwaas-dashboard/'
'neutron-fwaas-dashboard-master.tar.gz')},
'neutron-fwaas-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-freezer-web-ui': {
'type': 'url',
'location': ('$tarballs_base/freezer-web-ui/'
'freezer-web-ui-master.tar.gz')},
'freezer-web-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-heat-dashboard': {
'type': 'url',
'location': ('$tarballs_base/heat-dashboard/'
'heat-dashboard-master.tar.gz')},
'heat-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-ironic-ui': {
'type': 'url',
'location': ('$tarballs_base/ironic-ui/'
'ironic-ui-master.tar.gz')},
'ironic-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-karbor-dashboard': {
'type': 'url',
'location': ('$tarballs_base/karbor-dashboard/'
'karbor-dashboard-master.tar.gz')},
'karbor-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-magnum-ui': {
'type': 'url',
'location': ('$tarballs_base/magnum-ui/'
'magnum-ui-master.tar.gz')},
'magnum-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-manila-ui': {
'type': 'url',
'location': ('$tarballs_base/manila-ui/'
'manila-ui-master.tar.gz')},
'manila-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-masakari-dashboard': {
'type': 'url',
'location': ('$tarballs_base/masakari-dashboard/'
'masakari-dashboard-master.tar.gz')},
'masakari-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-mistral-dashboard': {
'type': 'url',
'location': ('$tarballs_base/mistral-dashboard/'
'mistral-dashboard-master.tar.gz')},
'mistral-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-monasca-ui': {
'type': 'url',
'location': ('$tarballs_base/monasca-ui/'
'monasca-ui-master.tar.gz')},
'monasca-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-murano-dashboard': {
'type': 'url',
'location': ('$tarballs_base/murano-dashboard/'
'murano-dashboard-master.tar.gz')},
'murano-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-neutron-vpnaas-dashboard': {
'type': 'url',
'location': ('$tarballs_base/neutron-vpnaas-dashboard/'
'neutron-vpnaas-dashboard-master.tar.gz')},
'neutron-vpnaas-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-octavia-dashboard': {
'type': 'url',
'location': ('$tarballs_base/octavia-dashboard/'
'octavia-dashboard-master.tar.gz')},
'octavia-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-qinling-dashboard': {
'type': 'url',
'location': ('$tarballs_base/qinling-dashboard/'
'qinling-dashboard-master.tar.gz')},
'qinling-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-sahara-dashboard': {
'type': 'url',
'location': ('$tarballs_base/sahara-dashboard/'
'sahara-dashboard-master.tar.gz')},
'sahara-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-searchlight-ui': {
'type': 'url',
'location': ('$tarballs_base/searchlight-ui/'
'searchlight-ui-master.tar.gz')},
'searchlight-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-senlin-dashboard': {
'type': 'url',
'location': ('$tarballs_base/senlin-dashboard/'
'senlin-dashboard-master.tar.gz')},
'senlin-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-solum-dashboard': {
'type': 'url',
'location': ('$tarballs_base/solum-dashboard/'
'solum-dashboard-master.tar.gz')},
'solum-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-tacker-dashboard': {
'type': 'url',
'location': ('$tarballs_base/tacker-horizon/'
'tacker-horizon-master.tar.gz')},
'tacker-horizon-${openstack_branch}.tar.gz')},
'horizon-plugin-trove-dashboard': {
'type': 'url',
'location': ('$tarballs_base/trove-dashboard/'
'trove-dashboard-master.tar.gz')},
'trove-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-vitrage-dashboard': {
'type': 'url',
'location': ('$tarballs_base/vitrage-dashboard/'
'vitrage-dashboard-master.tar.gz')},
'vitrage-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-watcher-dashboard': {
'type': 'url',
'location': ('$tarballs_base/watcher-dashboard/'
'watcher-dashboard-master.tar.gz')},
'watcher-dashboard-${openstack_branch}.tar.gz')},
'horizon-plugin-zaqar-ui': {
'type': 'url',
'location': ('$tarballs_base/zaqar-ui/'
'zaqar-ui-master.tar.gz')},
'zaqar-ui-${openstack_branch}.tar.gz')},
'horizon-plugin-zun-ui': {
'type': 'url',
'location': ('$tarballs_base/zun-ui/'
'zun-ui-master.tar.gz')},
'zun-ui-${openstack_branch}.tar.gz')},
'ironic-base': {
'type': 'url',
'location': ('$tarballs_base/ironic/'
'ironic-master.tar.gz')},
'ironic-${openstack_branch}.tar.gz')},
'ironic-inspector': {
'type': 'url',
'location': ('$tarballs_base/ironic-inspector/'
'ironic-inspector-master.tar.gz')},
'ironic-inspector-${openstack_branch}.tar.gz')},
'karbor-base': {
'type': 'url',
'location': ('$tarballs_base/karbor/'
'karbor-master.tar.gz')},
'karbor-${openstack_branch}.tar.gz')},
'keystone-base': {
'type': 'url',
'location': ('$tarballs_base/keystone/'
'keystone-master.tar.gz')},
'keystone-${openstack_branch}.tar.gz')},
'kuryr-base': {
'type': 'url',
'location': ('$tarballs_base/kuryr/'
'kuryr-master.tar.gz')},
'kuryr-${openstack_branch}.tar.gz')},
'kuryr-libnetwork': {
'type': 'url',
'location': ('$tarballs_base/kuryr-libnetwork/'
'kuryr-libnetwork-master.tar.gz')},
'kuryr-libnetwork-${openstack_branch}.tar.gz')},
'magnum-base': {
'type': 'url',
'location': ('$tarballs_base/magnum/'
'magnum-master.tar.gz')},
'magnum-${openstack_branch}.tar.gz')},
'manila-base': {
'type': 'url',
'location': ('$tarballs_base/manila/'
'manila-master.tar.gz')},
'manila-${openstack_branch}.tar.gz')},
'masakari-base': {
'type': 'url',
'location': ('$tarballs_base/masakari/'
'masakari-master.tar.gz')},
'masakari-${openstack_branch}.tar.gz')},
'masakari-monitors': {
'type': 'url',
'location': ('$tarballs_base/masakari-monitors/'
'masakari-monitors-master.tar.gz')},
'masakari-monitors-${openstack_branch}.tar.gz')},
'mistral-base': {
'type': 'url',
'location': ('$tarballs_base/mistral/'
'mistral-master.tar.gz')},
'mistral-${openstack_branch}.tar.gz')},
'mistral-base-plugin-tacker': {
'type': 'url',
'location': ('$tarballs_base/tacker/'
'tacker-master.tar.gz')},
'tacker-${openstack_branch}.tar.gz')},
'monasca-agent': {
'type': 'url',
'location': ('$tarballs_base/monasca-agent/'
'monasca-agent-master.tar.gz')},
'monasca-agent-${openstack_branch}.tar.gz')},
'monasca-api': {
'type': 'url',
'location': ('$tarballs_base/monasca-api/'
'monasca-api-master.tar.gz')},
'monasca-api-${openstack_branch}.tar.gz')},
'monasca-log-api': {
'type': 'url',
'location': ('$tarballs_base/monasca-log-api/'
'monasca-log-api-master.tar.gz')},
'monasca-log-api-${openstack_branch}.tar.gz')},
'monasca-notification': {
'type': 'url',
'location': ('$tarballs_base/monasca-notification/'
'monasca-notification-master.tar.gz')},
'monasca-notification-${openstack_branch}.tar.gz')},
'monasca-persister': {
'type': 'url',
'location': ('$tarballs_base/monasca-persister/'
'monasca-persister-master.tar.gz')},
'monasca-persister-${openstack_branch}.tar.gz')},
'monasca-statsd': {
'type': 'url',
'location': ('$tarballs_base/monasca-statsd/'
'monasca-statsd-master.tar.gz')},
'monasca-statsd-${openstack_branch}.tar.gz')},
# FIXME(dszumski): Use openstack tar when infra is fixed
'monasca-thresh': {
'type': 'url',
@ -547,91 +554,91 @@ SOURCES = {
'monasca-thresh-additions-monasca-common': {
'type': 'url',
'location': ('$tarballs_base/monasca-common/'
'monasca-common-master.tar.gz')},
'monasca-common-${openstack_branch}.tar.gz')},
'murano-base': {
'type': 'url',
'location': ('$tarballs_base/murano/'
'murano-master.tar.gz')},
'murano-${openstack_branch}.tar.gz')},
'neutron-base': {
'type': 'url',
'location': ('$tarballs_base/neutron/'
'neutron-master.tar.gz')},
'neutron-${openstack_branch}.tar.gz')},
'neutron-base-plugin-neutron-fwaas': {
'type': 'url',
'location': ('$tarballs_base/neutron-fwaas/'
'neutron-fwaas-master.tar.gz')},
'neutron-fwaas-${openstack_branch}.tar.gz')},
'neutron-base-plugin-networking-ansible': {
'type': 'url',
'location': ('$tarballs_base/networking-ansible/'
'networking-ansible-master.tar.gz')},
'networking-ansible-${openstack_branch}.tar.gz')},
'neutron-base-plugin-networking-baremetal': {
'type': 'url',
'location': ('$tarballs_base/networking-baremetal/'
'networking-baremetal-master.tar.gz')},
'networking-baremetal-${openstack_branch}.tar.gz')},
'neutron-base-plugin-networking-generic-switch': {
'type': 'url',
'location': ('$tarballs_base/networking-generic-switch/'
'networking-generic-switch-master.tar.gz')},
'networking-generic-switch-${openstack_branch}.tar.gz')},
'neutron-base-plugin-networking-sfc': {
'type': 'url',
'location': ('$tarballs_base/networking-sfc/'
'networking-sfc-master.tar.gz')},
'networking-sfc-${openstack_branch}.tar.gz')},
'neutron-base-plugin-vmware-nsx': {
'type': 'url',
'location': ('$tarballs_base/vmware-nsx/'
'vmware-nsx-master.tar.gz')},
'vmware-nsx-${openstack_branch}.tar.gz')},
'neutron-base-plugin-vpnaas-agent': {
'type': 'url',
'location': ('$tarballs_base/neutron-vpnaas/'
'neutron-vpnaas-master.tar.gz')},
'neutron-vpnaas-${openstack_branch}.tar.gz')},
'neutron-bgp-dragent': {
'type': 'url',
'location': ('$tarballs_base/neutron-dynamic-routing/'
'neutron-dynamic-routing-master.tar.gz')},
'neutron-dynamic-routing-${openstack_branch}.tar.gz')},
'neutron-server-opendaylight-plugin-networking-odl': {
'type': 'url',
'location': ('$tarballs_base/networking-odl/'
'networking-odl-master.tar.gz')},
'networking-odl-${openstack_branch}.tar.gz')},
'neutron-server-opendaylight-plugin-networking-bgpvpn': {
'type': 'url',
'location': ('$tarballs_base/networking-bgpvpn/'
'networking-bgpvpn-master.tar.gz')},
'networking-bgpvpn-${openstack_branch}.tar.gz')},
'neutron-server-opendaylight-plugin-networking-l2gw': {
'type': 'url',
'location': ('$tarballs_base/networking-l2gw/'
'networking-l2gw-master.tar.gz')},
'networking-l2gw-${openstack_branch}.tar.gz')},
'neutron-server-opendaylight-plugin-networking-sfc': {
'type': 'url',
'location': ('$tarballs_base/networking-sfc/'
'networking-sfc-master.tar.gz')},
'networking-sfc-${openstack_branch}.tar.gz')},
'neutron-server-plugin-neutron-dynamic-routing': {
'type': 'url',
'location': ('$tarballs_base/neutron-dynamic-routing/'
'neutron-dynamic-routing-master.tar.gz')},
'neutron-dynamic-routing-${openstack_branch}.tar.gz')},
'neutron-server-plugin-vmware-nsxlib': {
'type': 'url',
'location': ('$tarballs_base/vmware-nsxlib/'
'vmware-nsxlib-master.tar.gz')},
'vmware-nsxlib-${openstack_branch}.tar.gz')},
'neutron-vpnaas-agent': {
'type': 'url',
'location': ('$tarballs_base/neutron-vpnaas/'
'neutron-vpnaas-master.tar.gz')},
'neutron-vpnaas-${openstack_branch}.tar.gz')},
'neutron-server-ovn-plugin-networking-ovn': {
'type': 'url',
'location': ('$tarballs_base/networking-ovn/'
'networking-ovn-master.tar.gz')},
'networking-ovn-${openstack_branch}.tar.gz')},
'neutron-metadata-agent-ovn-plugin-networking-ovn': {
'type': 'url',
'location': ('$tarballs_base/networking-ovn/'
'networking-ovn-master.tar.gz')},
'networking-ovn-${openstack_branch}.tar.gz')},
'nova-base': {
'type': 'url',
'location': ('$tarballs_base/nova/'
'nova-master.tar.gz')},
'nova-${openstack_branch}.tar.gz')},
'nova-base-plugin-blazar': {
'type': 'url',
'location': ('$tarballs_base/blazar-nova/'
'blazar-nova-master.tar.gz')},
'blazar-nova-${openstack_branch}.tar.gz')},
'nova-base-plugin-mksproxy': {
'type': 'url',
'location': ('$tarballs_base/nova-mksproxy/'
@ -643,19 +650,19 @@ SOURCES = {
'octavia-base': {
'type': 'url',
'location': ('$tarballs_base/octavia/'
'octavia-master.tar.gz')},
'octavia-${openstack_branch}.tar.gz')},
'panko-base': {
'type': 'url',
'location': ('$tarballs_base/panko/'
'panko-master.tar.gz')},
'panko-${openstack_branch}.tar.gz')},
'placement-base': {
'type': 'url',
'location': ('$tarballs_base/placement/'
'placement-master.tar.gz')},
'placement-${openstack_branch}.tar.gz')},
'qinling-base': {
'type': 'url',
'location': ('$tarballs_base/qinling/'
'qinling-master.tar.gz')},
'qinling-${openstack_branch}.tar.gz')},
'tempest-plugin-tempest-conf': {
'type': 'url',
'location': ('$tarballs_base/python-tempestconf/'
@ -727,7 +734,8 @@ SOURCES = {
'tempest-plugin-tripleo-common': {
'type': 'url',
'location': ('$tarballs_base/tripleo-common-tempest-plugin/'
'tripleo-common-tempest-plugin-master.tar.gz')},
'tripleo-common-tempest-plugin-master.'
'tar.gz')},
'tempest-plugin-trove': {
'type': 'url',
'location': ('$tarballs_base/trove-tempest-plugin/'
@ -751,55 +759,55 @@ SOURCES = {
'sahara-base': {
'type': 'url',
'location': ('$tarballs_base/sahara/'
'sahara-master.tar.gz')},
'sahara-${openstack_branch}.tar.gz')},
'sahara-base-plugin-ambari': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-ambari/'
'sahara-plugin-ambari-master.tar.gz')},
'sahara-plugin-ambari-${openstack_branch}.tar.gz')},
'sahara-base-plugin-cdh': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-cdh/'
'sahara-plugin-cdh-master.tar.gz')},
'sahara-plugin-cdh-${openstack_branch}.tar.gz')},
'sahara-base-plugin-mapr': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-mapr/'
'sahara-plugin-mapr-master.tar.gz')},
'sahara-plugin-mapr-${openstack_branch}.tar.gz')},
'sahara-base-plugin-spark': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-spark/'
'sahara-plugin-spark-master.tar.gz')},
'sahara-plugin-spark-${openstack_branch}.tar.gz')},
'sahara-base-plugin-storm': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-storm/'
'sahara-plugin-storm-master.tar.gz')},
'sahara-plugin-storm-${openstack_branch}.tar.gz')},
'sahara-base-plugin-vanilla': {
'type': 'url',
'location': ('$tarballs_base/sahara-plugin-vanilla/'
'sahara-plugin-vanilla-master.tar.gz')},
'sahara-plugin-vanilla-${openstack_branch}.tar.gz')},
'searchlight-base': {
'type': 'url',
'location': ('$tarballs_base/searchlight/'
'searchlight-master.tar.gz')},
'searchlight-${openstack_branch}.tar.gz')},
'senlin-base': {
'type': 'url',
'location': ('$tarballs_base/senlin/'
'senlin-master.tar.gz')},
'senlin-${openstack_branch}.tar.gz')},
'solum-base': {
'type': 'url',
'location': ('$tarballs_base/solum/'
'solum-master.tar.gz')},
'solum-${openstack_branch}.tar.gz')},
'swift-base': {
'type': 'url',
'location': ('$tarballs_base/swift/'
'swift-master.tar.gz')},
'swift-${openstack_branch}.tar.gz')},
'tacker-base': {
'type': 'url',
'location': ('$tarballs_base/tacker/'
'tacker-master.tar.gz')},
'tacker-${openstack_branch}.tar.gz')},
'tacker-base-plugin-networking-sfc': {
'type': 'url',
'location': ('$tarballs_base/networking-sfc/'
'networking-sfc-master.tar.gz')},
'networking-sfc-${openstack_branch}.tar.gz')},
'tempest': {
'type': 'url',
'location': ('$tarballs_base/tempest/'
@ -811,11 +819,11 @@ SOURCES = {
'trove-base': {
'type': 'url',
'location': ('$tarballs_base/trove/'
'trove-master.tar.gz')},
'trove-${openstack_branch}.tar.gz')},
'vitrage-base': {
'type': 'url',
'location': ('$tarballs_base/vitrage/'
'vitrage-master.tar.gz')},
'vitrage-${openstack_branch}.tar.gz')},
'vmtp': {
'type': 'url',
'location': ('$tarballs_base/vmtp/'
@ -823,15 +831,15 @@ SOURCES = {
'watcher-base': {
'type': 'url',
'location': ('$tarballs_base/watcher/'
'watcher-master.tar.gz')},
'watcher-${openstack_branch}.tar.gz')},
'zaqar-base': {
'type': 'url',
'location': ('$tarballs_base/zaqar/'
'zaqar-master.tar.gz')},
'zaqar-${openstack_branch}.tar.gz')},
'zun-base': {
'type': 'url',
'location': ('$tarballs_base/zun/'
'zun-master.tar.gz')}
'zun-${openstack_branch}.tar.gz')}
}
@ -1235,6 +1243,10 @@ def parse(conf, args, usage=None, prog=None,
# NOTE(jeffrey4l): set the default base tag based on the
# base option
conf.set_default('base_tag', DEFAULT_BASE_TAGS.get(conf.base))
conf.set_default('openstack_release', OPENSTACK_RELEASE.get(conf.base))
prefix = '' if conf.openstack_release == 'master' else 'stable-'
openstack_branch = '{}{}'.format(prefix, conf.openstack_release)
conf.set_default('openstack_branch', openstack_branch)
if not conf.base_image:
conf.base_image = conf.base