From 150a475c5f3044bfeabbffcc7d5f68703a6a8743 Mon Sep 17 00:00:00 2001 From: Sayan Chowdhury Date: Thu, 24 Aug 2017 19:31:53 +0530 Subject: [PATCH] services.ec2: Create a utility method to create get the image_name Signed-off-by: Sayan Chowdhury --- fedimg/services/ec2/ec2imguploader.py | 6 ++++++ fedimg/services/ec2/ec2initiate.py | 20 +++++++++++++------- fedimg/utils.py | 21 ++++++++++++++++++++- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/fedimg/services/ec2/ec2imguploader.py b/fedimg/services/ec2/ec2imguploader.py index cecb3e5..3cc0dae 100644 --- a/fedimg/services/ec2/ec2imguploader.py +++ b/fedimg/services/ec2/ec2imguploader.py @@ -51,6 +51,12 @@ def __init__(self, *args, **kwargs): for (prop, default) in defaults.iteritems(): setattr(self, prop, kwargs.get(prop, default)) + def set_image_virt_type(self, virt_type): + self.image_virtualization_type = virt_type + + def set_image_name(self, image_name): + self.image_name = image_name + def _determine_root_device_name(self): root_device_name = '/dev/sda' if self.image_virt_type == 'hvm': diff --git a/fedimg/services/ec2/ec2initiate.py b/fedimg/services/ec2/ec2initiate.py index 75b7550..939e241 100644 --- a/fedimg/services/ec2/ec2initiate.py +++ b/fedimg/services/ec2/ec2initiate.py @@ -29,11 +29,11 @@ import fedimg.messenger -from fedimg.services.ec2.config import AWS_VOLUME_TYPES, BASE_REGION +from fedimg.services.ec2.config import AWS_VOLUME_TYPES, AWS_BASE_REGION from fedimg.services.ec2.ec2imguploader import EC2ImageUploader from fedimg.services.ec2.ec2imgpublisher import EC2ImagePublisher -from fedimg.utils import get_virt_types_from_url, get_source_for_image -from fedimg.utils import get_image_name_for_image +from fedimg.utils import get_virt_types_from_url, get_source_from_image +from fedimg.utils import get_image_name_from_image LOG = logging.getLogger("fedmsg") @@ -71,7 +71,7 @@ def main(image_urls, access_id, secret_key, regions, volume_types=None, volume_types = AWS_VOLUME_TYPES if regions is None: - regions = [BASE_REGION] + regions = [AWS_BASE_REGION] for image_url in image_urls: @@ -82,11 +82,9 @@ def main(image_urls, access_id, secret_key, regions, volume_types=None, else: virt_types = ex_virt_types - source = get_source_for_image(image_url) - image_name = get_image_name_for_image(image_url) + source = get_source_from_image(image_url) uploader = EC2ImageUploader( - image_name=image_name, access_key=access_id, secret_key=secret_key, volume_via_s3=volume_via_s3, @@ -108,6 +106,14 @@ def main(image_urls, access_id, secret_key, regions, volume_types=None, LOG.debug('(uploader) Virtualization type ' 'is set to: %r' % virt_type) + image_name = get_image_name_from_image( + image_url=image_url, + virt_type=virt_type, + region=region, + volume_type=volume_type + ) + uploader.set_image_name(image_name) + uploader.set_image_volume_type(volume_type) LOG.debug('(uploader) Volume type is set to: %r' % volume_type) diff --git a/fedimg/utils.py b/fedimg/utils.py index ef95676..c17115e 100644 --- a/fedimg/utils.py +++ b/fedimg/utils.py @@ -114,7 +114,11 @@ def get_item_from_regex(regex, output): raise NotImplementedError -def get_source_for_image(image_url): +def get_file_name_image(image_url): + return image_url.split('/')[-1] + + +def get_source_from_image(image_url): tmpdir = tempfile.mkdtemp() log.info(" Preparing temporary directory for download: %r" % tmpdir) output, error = external_run_command( @@ -125,3 +129,18 @@ def get_source_for_image(image_url): ) return output, error + + +def get_image_name_from_image(image_url, virt_type='', region='', respin='0', + volume_type=''): + + file_name = get_file_name_image(image_url) + build_name = file_name.replace('.raw.xz', '') + + return '-'.join(filter(lambda x: x, [ + build_name, + virt_type, + region, + volume_type, + respin] + ))