Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
Merge "Deprecate bash ramdisks" into stable/liberty
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenkins authored and openstack-gerrit committed Dec 21, 2015
2 parents c57744a + 3ad2b2f commit 368ecbf
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ def test_overcloud_image_build_all(self, mock_fedora_user):
return_value=redhat_release, create=True):
self.cmd.take_action(parsed_args)

self.assertEqual(1, self.mock_ramdisk_image_create.call_count)
self.assertEqual(2, self.mock_disk_image_create.call_count)
self.assertEqual(1, mock_fedora_user.call_count)

Expand Down Expand Up @@ -132,10 +131,12 @@ def os_path_isfile_side_effect(arg):
"pip-and-virtualenv-override --min-tmpfs 5 2>&1 | "
"tee dib-overcloud-full.log")

@mock.patch('time.sleep')
@mock.patch('os.path.isfile', autospec=True)
def test_overcloud_image_build_deploy_ramdisk(
self,
mock_os_path_isfile):
mock_os_path_isfile,
mock_sleep):
arglist = ['--type', 'deploy-ramdisk']
verifylist = [('image_types', ['deploy-ramdisk'])]

Expand Down
35 changes: 25 additions & 10 deletions tripleoclient/v1/overcloud_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import stat
import subprocess
import sys
import time

from cliff import command
from openstackclient.common import exceptions
Expand All @@ -39,7 +40,10 @@ class ImageBuilder(object):

@abc.abstractmethod
def build_ramdisk(self, parsed_args, ramdisk_type):
"""Build a ramdisk"""
"""Build a ramdisk
DEPRECATED: Use build_ramdisk_agent instead.
"""
pass

@abc.abstractmethod
Expand Down Expand Up @@ -68,6 +72,15 @@ def _ramdisk_image_create(self, args):
shell=True)

def build_ramdisk(self, parsed_args, ramdisk_type):
deprecation_message = (
'DEPRECATED: The old bash-based ramdisks are no longer '
'supported. You should move to the agent-based ramdisk as '
'soon as possible.'
)
print(deprecation_message)
# Give users time to see this message before we spam the console
# with image build output.
time.sleep(10)
image_name = vars(parsed_args)["%s_name" % ramdisk_type]
args = ("-a %(arch)s -o %(name)s "
"--ramdisk-element dracut-ramdisk %(node_dist)s "
Expand All @@ -86,6 +99,8 @@ def build_ramdisk(self, parsed_args, ramdisk_type):
})
os.environ.update(parsed_args.dib_env_vars)
self._ramdisk_image_create(args)
# Print it again so users have another chance to see it.
print(deprecation_message)

def build_ramdisk_agent(self, parsed_args):
# The ironic-agent element builds the ramdisk internally,
Expand Down Expand Up @@ -313,13 +328,17 @@ def get_parser(self, prog_name):
"--deploy-name",
dest="deploy_name",
default=os.environ.get('DEPLOY_NAME', 'deploy-ramdisk-ironic'),
help="Name of deployment ramdisk image",
help=("DEPRECATED: Name of deployment ramdisk image. This image "
"has been replaced by the Ironic Python Agent ramdisk, so "
"you should switch to that as soon as possible."),
)
parser.add_argument(
"--discovery-name",
dest="discovery_name",
default=os.environ.get('DISCOVERY_NAME', 'discovery-ramdisk'),
help="Name of discovery ramdisk image",
help=("DEPRECATED: Name of discovery ramdisk image. This image "
"has been replaced by the Ironic Python Agent ramdisk, so "
"you should switch to that as soon as possible."),
)
parser.add_argument(
"--agent-image-element",
Expand Down Expand Up @@ -450,7 +469,7 @@ def _build_image_ramdisks(self, parsed_args):
def _build_image_ramdisk_agent(self, parsed_args):
image_name = vars(parsed_args)["agent_name"]
if (not os.path.isfile("%s.initramfs" % image_name) or
not os.path.isfile("%s.vmlinuz" % image_name)):
not os.path.isfile("%s.kernel" % image_name)):
parsed_args._builder.build_ramdisk_agent(parsed_args)

def _build_image_ramdisk_deploy(self, parsed_args):
Expand Down Expand Up @@ -506,7 +525,6 @@ def take_action(self, parsed_args):
self.log.debug("Environment: %s" % parsed_args.dib_env_vars)

if parsed_args.all:
self._build_image_ramdisk_deploy(parsed_args)
self._build_image_ramdisk_agent(parsed_args)
self._build_image_overcloud_full(parsed_args)
self._build_image_fedora_user(parsed_args)
Expand Down Expand Up @@ -654,14 +672,11 @@ def get_parser(self, prog_name):
def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args)

self._env_variable_or_set('DEPLOY_NAME', 'deploy-ramdisk-ironic')
self._env_variable_or_set('AGENT_NAME', 'ironic-python-agent')

self.log.debug("checking if image files exist")

image_files = [
'%s.initramfs' % os.environ['DEPLOY_NAME'],
'%s.kernel' % os.environ['DEPLOY_NAME'],
'%s.initramfs' % os.environ['AGENT_NAME'],
'%s.kernel' % os.environ['AGENT_NAME'],
parsed_args.os_image
Expand Down Expand Up @@ -726,7 +741,7 @@ def take_action(self, parsed_args):
self.log.debug("uploading bm images to glance")

deploy_kernel_name = 'bm-deploy-kernel'
deploy_kernel_file = '%s.kernel' % os.environ['DEPLOY_NAME']
deploy_kernel_file = '%s.kernel' % os.environ['AGENT_NAME']
self._image_try_update(deploy_kernel_name, deploy_kernel_file,
parsed_args) or self._upload_image(
name=deploy_kernel_name,
Expand All @@ -738,7 +753,7 @@ def take_action(self, parsed_args):
)

deploy_ramdisk_name = 'bm-deploy-ramdisk'
deploy_ramdisk_file = '%s.initramfs' % os.environ['DEPLOY_NAME']
deploy_ramdisk_file = '%s.initramfs' % os.environ['AGENT_NAME']
self._image_try_update(deploy_ramdisk_name, deploy_ramdisk_file,
parsed_args) or self._upload_image(
name=deploy_ramdisk_name,
Expand Down

0 comments on commit 368ecbf

Please sign in to comment.