def main(self): req = BundleAndUploadImage.from_other( self, image=self.args["image"], arch=self.args["arch"], bucket=self.args["bucket"], prefix=self.args.get("prefix"), destination=self.args.get("destination"), kernel=self.args.get("kernel"), ramdisk=self.args.get("ramdisk"), image_type=self.args.get("image_type"), image_size=self.args.get("image_size"), cert=self.args.get("cert"), privatekey=self.args.get("privatekey"), ec2cert=self.args.get("ec2cert"), user=self.args.get("user"), productcodes=self.args.get("productcodes"), enc_iv=self.args.get("enc_iv"), enc_key=self.args.get("enc_key"), max_pending_parts=self.args.get("max_pending_parts"), part_size=self.args.get("part_size"), batch=self.args.get("batch"), show_progress=self.args.get("show_progress")) result_bundle = req.main() image_location = result_bundle['manifests'][0]["key"] req = RegisterImage.from_other( self, service=self.args["ec2_service"], auth=self.args["ec2_auth"], Name=self.args["name"], Architecture=self.args["arch"], ImageLocation=image_location, Description=self.args.get("description"), VirtualizationType=self.args.get("virtualization_type"), Platform=self.args.get("platform")) result_register = req.main() return result_register
def install(self, image_md, services, image_fileobj, image_size, args, tags=None): # If you're curious why this uses a generic "args" dict, see # ImageMetadata.install_profile's commentary. bundle_args = dict(self.bundle_args) for argname in ('privatekey', 'cert', 'ec2cert', 'user', 'bucket', 'location', 'kernel', 'ramdisk'): if args.get(argname): bundle_args[argname] = args[argname] req = BundleAndUploadImage( service=services['s3']['service'], config=services['s3']['service'].config, loglevel=services['s3']['service'].log.level, auth=services['s3']['auth'], image=image_fileobj, prefix=image_md.get_nvra(), image_type='machine', # We only support machine images for now image_size=image_size, show_progress=args.get('show_progress'), max_pending_parts=2, part_size=10485760, **bundle_args) try: bundle_info = req.main() except KeyError as err: raise ValueError('{0} is required'.format(err.args[0])) register_args = dict(self.register_args) if args.get('kernel'): register_args['KernelId'] = args['kernel'] if args.get('ramdisk'): register_args['RamdiskId'] = args['ramdisk'] if not register_args.get('Description'): register_args['Description'] = image_md.description req = RegisterImage( service=services['ec2']['service'], config=services['ec2']['service'].config, loglevel=services['ec2']['service'].log.level, auth=services['ec2']['auth'], ImageLocation=bundle_info['manifests'][0]['key'], Name='{0}-{1}'.format( image_md.get_nvra(), datetime.datetime.utcnow().strftime('%F-%H-%m-%s')), **register_args) register_response = req.main() image_id = register_response['imageId'] tag_args = dict(self.tag_args) tag_args['ResourceId'] = [image_id] tag_args.setdefault('Tag', []) if tags: for key, val in tags.iteritems(): tag_args['Tag'].append({'Key': key, 'Value': val}) req = CreateTags( service=services['ec2']['service'], config=services['ec2']['service'].config, loglevel=services['ec2']['service'].log.level, auth=services['ec2']['auth'], **tag_args) req.main() return image_id
def install(self, image_md, services, image_fileobj, image_size, args, tags=None): # If you're curious why this uses a generic "args" dict, see # ImageMetadata.install_profile's commentary. bundle_args = dict(self.bundle_args) for argname in ('privatekey', 'cert', 'ec2cert', 'user', 'bucket', 'location', 'kernel', 'ramdisk'): if args.get(argname): bundle_args[argname] = args[argname] req = BundleAndUploadImage( service=services['s3']['service'], config=services['s3']['service'].config, loglevel=services['s3']['service'].log.level, auth=services['s3']['auth'], image=image_fileobj, prefix=image_md.get_nvra(), image_type='machine', # We only support machine images for now image_size=image_size, show_progress=args.get('show_progress'), max_pending_parts=2, part_size=10485760, **bundle_args) try: bundle_info = req.main() except KeyError as err: raise ValueError('{0} is required'.format(err.args[0])) register_args = dict(self.register_args) if args.get('kernel'): register_args['KernelId'] = args['kernel'] if args.get('ramdisk'): register_args['RamdiskId'] = args['ramdisk'] if not register_args.get('Description'): register_args['Description'] = image_md.description req = RegisterImage( service=services['ec2']['service'], config=services['ec2']['service'].config, loglevel=services['ec2']['service'].log.level, auth=services['ec2']['auth'], ImageLocation=bundle_info['manifests'][0]['key'], Name='{0}-{1}'.format( image_md.get_nvra(), datetime.datetime.utcnow().strftime('%F-%H-%m-%s')), **register_args) register_response = req.main() image_id = register_response['imageId'] tag_args = dict(self.tag_args) tag_args['ResourceId'] = [image_id] tag_args.setdefault('Tag', []) if tags: for key, val in tags.items(): tag_args['Tag'].append({'Key': key, 'Value': val}) req = CreateTags( service=services['ec2']['service'], config=services['ec2']['service'].config, loglevel=services['ec2']['service'].log.level, auth=services['ec2']['auth'], **tag_args) req.main() return image_id
def main(self): req = BundleAndUploadImage.from_other( self, image=self.args["image"], arch=self.args["arch"], bucket=self.args["bucket"], prefix=self.args.get("prefix"), destination=self.args.get("destination"), kernel=self.args.get("kernel"), ramdisk=self.args.get("ramdisk"), image_type=self.args.get("image_type"), image_size=self.args.get("image_size"), cert=self.args.get("cert"), privatekey=self.args.get("privatekey"), ec2cert=self.args.get("ec2cert"), user=self.args.get("user"), productcodes=self.args.get("productcodes"), enc_iv=self.args.get("enc_iv"), enc_key=self.args.get("enc_key"), max_pending_parts=self.args.get("max_pending_parts"), part_size=self.args.get("part_size"), batch=self.args.get("batch"), show_progress=self.args.get("show_progress")) result_bundle = req.main() image_location = result_bundle['manifests'][0]["key"] req = RegisterImage.from_other( self, service=self.args["ec2_service"], auth=self.args["ec2_auth"], Name=self.args["name"], Architecture=self.args["arch"], ImageLocation=image_location, Description=self.args.get("description"), VirtualizationType=self.args.get("virtualization_type"), Platform=self.args.get("platform")) result_register = req.main() return result_register