Merge "Allow passing an agent-name as a command line argument" into stable/queens

This commit is contained in:
Zuul 2019-09-07 01:30:26 +00:00 committed by Gerrit Code Review
commit 76b30fcb3a
2 changed files with 45 additions and 14 deletions

View File

@ -14,6 +14,7 @@
# #
import mock import mock
import os
from osc_lib import exceptions from osc_lib import exceptions
from tripleoclient.tests.v1.test_plugin import TestPluginV1 from tripleoclient.tests.v1.test_plugin import TestPluginV1
@ -169,6 +170,23 @@ class TestUploadOvercloudImage(TestPluginV1):
update_mock.call_count update_mock.call_count
) )
@mock.patch.dict(os.environ, {'KEY': 'VALUE', 'OLD_KEY': 'OLD_VALUE'})
def test_get_environment_var(self):
self.assertEqual('default-value',
self.cmd._get_environment_var('MISSING',
'default-value'))
self.assertEqual('VALUE',
self.cmd._get_environment_var('KEY',
'default-value'))
self.assertEqual('VALUE',
self.cmd._get_environment_var('KEY',
'default-value',
deprecated=['MISSING']))
self.assertEqual('OLD_VALUE',
self.cmd._get_environment_var('KEY',
'default-value',
deprecated=['OLD_KEY']))
@mock.patch('os.path.isfile', autospec=True) @mock.patch('os.path.isfile', autospec=True)
def test_file_try_update_need_update(self, mock_isfile): def test_file_try_update_need_update(self, mock_isfile):
mock_isfile.return_value = True mock_isfile.return_value = True

View File

@ -143,9 +143,6 @@ class UploadOvercloudImage(command.Command):
"""Create overcloud glance images from existing image files.""" """Create overcloud glance images from existing image files."""
log = logging.getLogger(__name__ + ".UploadOvercloudImage") log = logging.getLogger(__name__ + ".UploadOvercloudImage")
def _env_variable_or_set(self, key_name, default_value):
os.environ[key_name] = os.environ.get(key_name, default_value)
def _get_image(self, name): def _get_image(self, name):
try: try:
image = utils.find_resource(self.app.client_manager.image.images, image = utils.find_resource(self.app.client_manager.image.images,
@ -230,21 +227,39 @@ class UploadOvercloudImage(command.Command):
else: else:
return GlanceV1ClientAdapter(self.app.client_manager.image) return GlanceV1ClientAdapter(self.app.client_manager.image)
def _get_environment_var(self, envvar, default, deprecated=[]):
for env_key in deprecated:
if env_key in os.environ:
self.log.warn(('Found deprecated environment var \'%s\', '
'please use \'%s\' instead' % (env_key,
envvar)))
return os.environ.get(env_key)
return os.environ.get(envvar, default)
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UploadOvercloudImage, self).get_parser(prog_name) parser = super(UploadOvercloudImage, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
"--image-path", "--image-path",
default=os.environ.get('IMAGE_PATH', './'), default=self._get_environment_var('IMAGE_PATH', './'),
help=_("Path to directory containing image files"), help=_("Path to directory containing image files"),
) )
parser.add_argument( parser.add_argument(
"--os-image-name", "--os-image-name",
default=os.environ.get('OS_IMAGE_NAME', 'overcloud-full.qcow2'), default=self._get_environment_var('OS_IMAGE_NAME',
'overcloud-full.qcow2'),
help=_("OpenStack disk image filename"), help=_("OpenStack disk image filename"),
) )
parser.add_argument(
"--ironic-python-agent-name",
dest='ipa_name',
default=self._get_environment_var('IRONIC_PYTHON_AGENT_NAME',
'ironic-python-agent',
deprecated=['AGENT_NAME']),
help=_("OpenStack ironic-python-agent (agent) image filename"),
)
parser.add_argument( parser.add_argument(
"--http-boot", "--http-boot",
default=os.environ.get('HTTP_BOOT', '/httpboot'), default=self._get_environment_var('HTTP_BOOT', '/httpboot'),
help=_("Root directory for the introspection image") help=_("Root directory for the introspection image")
) )
parser.add_argument( parser.add_argument(
@ -268,8 +283,6 @@ class UploadOvercloudImage(command.Command):
glance_client_adaptor = self._get_glance_client_adaptor() glance_client_adaptor = self._get_glance_client_adaptor()
self.updated = False self.updated = False
self._env_variable_or_set('AGENT_NAME', 'ironic-python-agent')
self.log.debug("checking if image files exist") self.log.debug("checking if image files exist")
if parsed_args.whole_disk: if parsed_args.whole_disk:
@ -279,8 +292,8 @@ class UploadOvercloudImage(command.Command):
overcloud_image_type = 'whole disk' overcloud_image_type = 'whole disk'
else: else:
image_files = [ image_files = [
'%s.initramfs' % os.environ['AGENT_NAME'], '%s.initramfs' % parsed_args.ipa_name,
'%s.kernel' % os.environ['AGENT_NAME'], '%s.kernel' % parsed_args.ipa_name,
parsed_args.os_image_name parsed_args.os_image_name
] ]
overcloud_image_type = 'partition' overcloud_image_type = 'partition'
@ -379,7 +392,7 @@ class UploadOvercloudImage(command.Command):
deploy_kernel_name = 'bm-deploy-kernel' deploy_kernel_name = 'bm-deploy-kernel'
deploy_kernel_extension = '.kernel' deploy_kernel_extension = '.kernel'
deploy_kernel_file = os.path.join(parsed_args.image_path, deploy_kernel_file = os.path.join(parsed_args.image_path,
os.environ['AGENT_NAME'] + parsed_args.ipa_name +
deploy_kernel_extension) deploy_kernel_extension)
self._image_try_update(deploy_kernel_name, deploy_kernel_file, self._image_try_update(deploy_kernel_name, deploy_kernel_file,
parsed_args) or \ parsed_args) or \
@ -394,7 +407,7 @@ class UploadOvercloudImage(command.Command):
deploy_ramdisk_name = 'bm-deploy-ramdisk' deploy_ramdisk_name = 'bm-deploy-ramdisk'
deploy_ramdisk_extension = '.initramfs' deploy_ramdisk_extension = '.initramfs'
deploy_ramdisk_file = os.path.join(parsed_args.image_path, deploy_ramdisk_file = os.path.join(parsed_args.image_path,
os.environ['AGENT_NAME'] + parsed_args.ipa_name +
deploy_ramdisk_extension) deploy_ramdisk_extension)
self._image_try_update(deploy_ramdisk_name, deploy_ramdisk_file, self._image_try_update(deploy_ramdisk_name, deploy_ramdisk_file,
parsed_args) or \ parsed_args) or \
@ -409,14 +422,14 @@ class UploadOvercloudImage(command.Command):
self._file_create_or_update( self._file_create_or_update(
os.path.join(parsed_args.image_path, os.path.join(parsed_args.image_path,
'%s.kernel' % os.environ['AGENT_NAME']), '%s.kernel' % parsed_args.ipa_name),
os.path.join(parsed_args.http_boot, 'agent.kernel'), os.path.join(parsed_args.http_boot, 'agent.kernel'),
parsed_args.update_existing parsed_args.update_existing
) )
self._file_create_or_update( self._file_create_or_update(
os.path.join(parsed_args.image_path, os.path.join(parsed_args.image_path,
'%s.initramfs' % os.environ['AGENT_NAME']), '%s.initramfs' % parsed_args.ipa_name),
os.path.join(parsed_args.http_boot, 'agent.ramdisk'), os.path.join(parsed_args.http_boot, 'agent.ramdisk'),
parsed_args.update_existing parsed_args.update_existing
) )