def main(self): if self.args.get('destination'): path_prefix = os.path.join(self.args['destination'], self.args['prefix']) if not os.path.exists(self.args['destination']): os.mkdir(self.args['destination']) else: tempdir = mkdtemp_for_large_files(prefix='bundle-') path_prefix = os.path.join(tempdir, self.args['prefix']) self.log.debug('bundle path prefix: %s', path_prefix) # First create the bundle digest, partinfo = self.create_bundle(path_prefix) # All done; now build the manifest and write it to disk manifest = self.build_manifest(digest, partinfo) manifest_filename = '{0}.manifest.xml'.format(path_prefix) with open(manifest_filename, 'w') as manifest_file: manifest.dump_to_file(manifest_file, self.args['privatekey'], self.args['cert'], self.args['ec2cert']) # Then we just inform the caller of all the files we wrote. # Manifests are returned in a tuple for future expansion, where we # bundle for more than one region at a time. return (part.filename for part in partinfo), (manifest_filename, )
def main(self): if self.args.get('check_cert'): self.check_certificate(self.args['iam_service'], self.args['iam_auth']) if self.args.get('destination'): path_prefix = os.path.join(self.args['destination'], self.args['prefix']) if not os.path.exists(self.args['destination']): os.mkdir(self.args['destination']) else: tempdir = mkdtemp_for_large_files(prefix='bundle-') path_prefix = os.path.join(tempdir, self.args['prefix']) self.log.debug('bundle path prefix: %s', path_prefix) # First create the bundle digest, partinfo = self.create_bundle(path_prefix) # All done; now build the manifest and write it to disk manifest = self.build_manifest(digest, partinfo) manifest_filename = '{0}.manifest.xml'.format(path_prefix) with open(manifest_filename, 'w') as manifest_file: manifest.dump_to_file(manifest_file, self.args['privatekey'], self.args['cert'], self.args['ec2cert']) # Then we just inform the caller of all the files we wrote. # Manifests are returned in a tuple for future expansion, where we # bundle for more than one region at a time. return (part.filename for part in partinfo), (manifest_filename,)
def main(self): if self.args.get('destination'): path_prefix = os.path.join(self.args['destination'], self.args['prefix']) if not os.path.exists(self.args['destination']): os.mkdir(self.args['destination']) else: tempdir = mkdtemp_for_large_files(prefix='bundle-') path_prefix = os.path.join(tempdir, self.args['prefix']) self.log.debug('bundle path prefix: %s', path_prefix) key_prefix = self.get_bundle_key_prefix() self.ensure_dest_bucket_exists() # First create the bundle and upload it to the server digest, partinfo = self.create_and_upload_bundle( path_prefix, key_prefix) # All done; now build the manifest, write it to disk, and upload it. manifest = self.build_manifest(digest, partinfo) manifest_filename = '{0}.manifest.xml'.format(path_prefix) with open(manifest_filename, 'w') as manifest_file: manifest.dump_to_file(manifest_file, self.args['privatekey'], self.args['cert'], self.args['ec2cert']) manifest_dest = key_prefix + os.path.basename(manifest_filename) self.upload_bundle_file(manifest_filename, manifest_dest, show_progress=self.args.get('show_progress')) if not self.args.get('preserve_bundle', False): os.remove(manifest_filename) # Then we just inform the caller of all the files we wrote. # Manifests are returned in a tuple for future expansion, where we # bundle for more than one region at a time. return { 'parts': tuple({ 'filename': part.filename, 'key': (key_prefix + os.path.basename(part.filename)) } for part in manifest.image_parts), 'manifests': ({ 'filename': manifest_filename, 'key': manifest_dest }, ) }
def main(self): if self.args.get('check_cert'): self.check_certificate(self.args['iam_service'], self.args['iam_auth']) if self.args.get('destination'): path_prefix = os.path.join(self.args['destination'], self.args['prefix']) if not os.path.exists(self.args['destination']): os.mkdir(self.args['destination']) else: tempdir = mkdtemp_for_large_files(prefix='bundle-') path_prefix = os.path.join(tempdir, self.args['prefix']) self.log.debug('bundle path prefix: %s', path_prefix) key_prefix = self.get_bundle_key_prefix() self.ensure_dest_bucket_exists() # First create the bundle and upload it to the server digest, partinfo = self.create_and_upload_bundle(path_prefix, key_prefix) # All done; now build the manifest, write it to disk, and upload it. manifest = self.build_manifest(digest, partinfo) manifest_filename = '{0}.manifest.xml'.format(path_prefix) with open(manifest_filename, 'w') as manifest_file: manifest.dump_to_file(manifest_file, self.args['privatekey'], self.args['cert'], self.args['ec2cert']) manifest_dest = key_prefix + os.path.basename(manifest_filename) self.upload_bundle_file(manifest_filename, manifest_dest, show_progress=self.args.get('show_progress')) if not self.args.get('preserve_bundle', False): os.remove(manifest_filename) # Then we just inform the caller of all the files we wrote. # Manifests are returned in a tuple for future expansion, where we # bundle for more than one region at a time. return {'parts': tuple({'filename': part.filename, 'key': (key_prefix + os.path.basename(part.filename))} for part in manifest.image_parts), 'manifests': ({'filename': manifest_filename, 'key': manifest_dest},)}