Ejemplo n.º 1
0
    def main(self):
        cmd = BundleImage(image=self.args['image'], arch=self.args['arch'],
                          cert=self.args['cert'],
                          privatekey=self.args['privatekey'],
                          user=self.args['user'],
                          destination=self.args.get('directory'),
                          ec2cert=self.args['ec2cert'], image_type='machine',
                          config=self.config)
        parts, manifest = cmd.main()

        cmd = UploadBundle(bucket=self.args['bucket'], manifest=manifest,
                           acl='ec2-bundle-read', config=self.config,
                           service=self.__walrus)
        manifest_loc = cmd.main()
        return manifest_loc
Ejemplo n.º 2
0
    def bundle_and_upload_image(self,
                                image,
                                image_type,
                                workdir,
                                kernel_id=None,
                                ramdisk_id=None):
        unique_bucket = self.args['bucket']
        if image_type == 'machine':
            image_type_args = {'kernel': kernel_id, 'ramdisk': ramdisk_id}
            progressbar_label = 'Bundling image    '
        elif image_type == 'kernel':
            image_type_args = {'kernel': 'true'}
            progressbar_label = 'Bundling kernel   '
            if self.args.get('separate_buckets'):
                unique_bucket = ''.join([self.args['bucket'], '-kernel'])
        elif image_type == 'ramdisk':
            image_type_args = {'ramdisk': 'true'}
            progressbar_label = 'Bundling ramdisk  '
            if self.args.get('separate_buckets'):
                unique_bucket = ''.join([self.args['bucket'], '-ramdisk'])
        else:
            raise ValueError(
                "unrecognized image type: '{0}'".format(image_type))
        cmd = BundleImage(config=self.config,
                          image=image,
                          arch=self.args['architecture'],
                          cert=self.args['cert'],
                          privatekey=self.args['privatekey'],
                          ec2cert=self.args['ec2cert'],
                          user=self.args['user'],
                          destination=workdir,
                          image_type=image_type,
                          show_progress=self.args.get('show_progress', False),
                          progressbar_label=progressbar_label,
                          **image_type_args)
        __, manifest_path = cmd.main()

        if self.args.get('show_progress', False):
            print '-- Uploading {0} image --'.format(image_type)
        cmd = UploadBundle(config=self.config,
                           service=self.__walrus,
                           bucket=unique_bucket,
                           manifest=manifest_path,
                           acl='aws-exec-read',
                           show_progress=self.args.get('show_progress', False))
        manifest_loc = cmd.main()
        return manifest_loc
Ejemplo n.º 3
0
    def bundle_and_upload_image(self, image, image_type, workdir,
                                kernel_id=None, ramdisk_id=None):
        unique_bucket = self.args['bucket']
        if image_type == 'machine':
            image_type_args = {'kernel': kernel_id,
                               'ramdisk': ramdisk_id}
            progressbar_label = 'Bundling image    '
        elif image_type == 'kernel':
            image_type_args = {'kernel': 'true'}
            progressbar_label = 'Bundling kernel   '
            if self.args.get('separate_buckets'):
                unique_bucket = ''.join([self.args['bucket'], '-kernel'])
        elif image_type == 'ramdisk':
            image_type_args = {'ramdisk': 'true'}
            progressbar_label = 'Bundling ramdisk  '
            if self.args.get('separate_buckets'):
                unique_bucket = ''.join([self.args['bucket'], '-ramdisk'])
        else:
            raise ValueError("unrecognized image type: '{0}'"
                             .format(image_type))
        cmd = BundleImage(config=self.config, image=image,
                          arch=self.args['architecture'],
                          cert=self.args['cert'],
                          privatekey=self.args['privatekey'],
                          ec2cert=self.args['ec2cert'], user=self.args['user'],
                          destination=workdir, image_type=image_type,
                          show_progress=self.args.get('show_progress', False),
                          progressbar_label=progressbar_label,
                          **image_type_args)
        __, manifest_path = cmd.main()

        if self.args.get('show_progress', False):
            print '-- Uploading {0} image --'.format(image_type)
        cmd = UploadBundle(config=self.config, service=self.__walrus,
                           bucket=unique_bucket, manifest=manifest_path,
                           acl='aws-exec-read',
                           show_progress=self.args.get('show_progress', False))
        manifest_loc = cmd.main()
        return manifest_loc