bifrost-cli: do not provide any release if non can be detected
We update defaults on each stable branch to match its release, so if no release can be detected, let's not provide 'master'. Change-Id: I01009307a066b6c60a97959764c31b5e7624708e
This commit is contained in:
parent
3823944c76
commit
eaa04b1889
|
@ -83,29 +83,29 @@ def get_release(release):
|
|||
try:
|
||||
gr = configparser.ConfigParser()
|
||||
gr.read(os.path.join(BASE, '.gitreview'))
|
||||
release = gr.get('gerrit', 'defaultbranch',
|
||||
fallback=DEFAULT_BRANCH)
|
||||
release = gr.get('gerrit', 'defaultbranch', fallback=None)
|
||||
except (FileNotFoundError, configparser.Error):
|
||||
log('Cannot read .gitreview, falling back to release',
|
||||
DEFAULT_BRANCH)
|
||||
return DEFAULT_BRANCH
|
||||
log('Cannot read .gitreview, falling back to defaults')
|
||||
return None
|
||||
else:
|
||||
if release.startswith('bugfix/'):
|
||||
if release and release.startswith('bugfix/'):
|
||||
log('Bugfix branch', release, 'cannot be used as a release, '
|
||||
'falling back to', DEFAULT_BRANCH)
|
||||
return DEFAULT_BRANCH
|
||||
'falling back to defaults')
|
||||
return None
|
||||
log('Using release', release, 'detected from the checkout')
|
||||
return release
|
||||
|
||||
|
||||
def cmd_testenv(args):
|
||||
release = get_release(args.release)
|
||||
|
||||
env_setup(args)
|
||||
log('Creating', args.count, 'test node(s) with', args.memory,
|
||||
'MiB RAM and', args.disk, 'GiB of disk')
|
||||
|
||||
release = get_release(args.release)
|
||||
|
||||
kwargs = {}
|
||||
if release:
|
||||
kwargs['git_branch'] = release
|
||||
if args.storage_pool_path:
|
||||
kwargs['test_vm_storage_pool_path'] = os.path.abspath(
|
||||
args.storage_pool_path)
|
||||
|
@ -113,7 +113,6 @@ def cmd_testenv(args):
|
|||
ansible('test-bifrost-create-vm.yaml',
|
||||
inventory='inventory/localhost',
|
||||
verbose=args.debug,
|
||||
git_branch=release,
|
||||
test_vm_num_nodes=args.count,
|
||||
test_vm_memory_size=args.memory,
|
||||
test_vm_disk_gib=args.disk,
|
||||
|
@ -130,6 +129,9 @@ def cmd_install(args):
|
|||
release = get_release(args.release)
|
||||
|
||||
kwargs = {}
|
||||
if release:
|
||||
kwargs.update({'git_branch': release,
|
||||
'ipa_upstream_release': release.replace('/', '-')})
|
||||
if args.dhcp_pool:
|
||||
try:
|
||||
start, end = args.dhcp_pool.split('-')
|
||||
|
@ -146,8 +148,6 @@ def cmd_install(args):
|
|||
ansible('install.yaml',
|
||||
inventory='inventory/target',
|
||||
verbose=args.debug,
|
||||
git_branch=release,
|
||||
ipa_upstream_release=release.replace('/', '-'),
|
||||
create_ipa_image='false',
|
||||
create_image_via_dib='false',
|
||||
install_dib='true',
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import os.path
|
||||
import shutil
|
||||
import tempfile
|
||||
from unittest import mock
|
||||
|
||||
from bifrost import cli
|
||||
from bifrost.tests import base
|
||||
|
||||
|
||||
FILE_NO_BRANCH = """
|
||||
[gerrit]
|
||||
host=review.opendev.org
|
||||
port=29418
|
||||
project=openstack/bifrost.git
|
||||
"""
|
||||
|
||||
|
||||
FILE_WITH_BRANCH = """
|
||||
[gerrit]
|
||||
host=review.opendev.org
|
||||
port=29418
|
||||
project=openstack/bifrost.git
|
||||
defaultbranch=stable/banana
|
||||
"""
|
||||
|
||||
|
||||
class TestGetRelease(base.TestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
self.addCleanup(lambda: shutil.rmtree(self.temp_dir))
|
||||
|
||||
def test_provided(self):
|
||||
self.assertEqual('stable/ussuri', cli.get_release('ussuri'))
|
||||
self.assertEqual('stable/ussuri', cli.get_release('stable/ussuri'))
|
||||
self.assertEqual('master', cli.get_release('master'))
|
||||
|
||||
@mock.patch.object(cli, 'BASE', '/non/existing/dir')
|
||||
def test_no_file(self):
|
||||
self.assertIsNone(cli.get_release(None))
|
||||
|
||||
def test_from_file_no_branch(self):
|
||||
with open(os.path.join(self.temp_dir, '.gitreview'), 'wt') as fp:
|
||||
fp.write(FILE_NO_BRANCH)
|
||||
with mock.patch.object(cli, 'BASE', self.temp_dir):
|
||||
self.assertIsNone(cli.get_release(None))
|
||||
|
||||
def test_from_file_with_branch(self):
|
||||
with open(os.path.join(self.temp_dir, '.gitreview'), 'wt') as fp:
|
||||
fp.write(FILE_WITH_BRANCH)
|
||||
with mock.patch.object(cli, 'BASE', self.temp_dir):
|
||||
self.assertEqual('stable/banana', cli.get_release(None))
|
Loading…
Reference in New Issue