Merge "Allow passing an agent-name as a command line argument" into stable/queens
This commit is contained in:
commit
76b30fcb3a
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue