~smoser/maas-images/trunk.no-dyn-netconf

« back to all changes in this revision

Viewing changes to meph2/stream.py

  • Committer: Lee Trager
  • Date: 2017-07-14 18:11:02 UTC
  • mfrom: (372.1.4 v3_squashfs_only)
  • Revision ID: lee.trager@canonical.com-20170714181102-uba69ty0lnvsqepd
If the SquashFS config option is set convert root-image.gz to a SquashFS image.

When the SquashFS config option is set and upstream is only providing a
root-image.gz convert the root-image.gz into a SquashFS image. Both images
are included in the stream however MAAS will only use the SquashFS image.

Show diffs side-by-side

added added

removed removed

Lines of Context:
155
155
    krd_packs = []
156
156
    squashfs = cfgdata.get('squashfs', False)
157
157
    base_boot_keys = ['boot-kernel', 'boot-initrd']
158
 
    if squashfs and img_url.endswith('.squashfs'):
 
158
    if squashfs:
159
159
        base_ikeys = base_boot_keys + ['squashfs', 'squashfs.manifest']
160
160
        manifest_path = PATH_FORMATS['squashfs.manifest'] % subs
161
161
        newpaths = set((PATH_FORMATS['squashfs'] % subs, manifest_path))
 
162
        # If upstream is only providing a root-image include it in addition to
 
163
        # the SquashFS image. The root-image.gz will be converted below.
 
164
        if not img_url.endswith('.squashfs'):
 
165
            base_ikeys += ['root-image.gz']
 
166
            newpaths.update([rootimg_path])
162
167
    else:
163
168
        base_ikeys = base_boot_keys + ['root-image.gz', 'root-image.manifest']
164
169
        manifest_path = PATH_FORMATS['root-image.manifest'] % subs
300
305
        subprocess.check_call(gencmd)
301
306
        LOG.info("finished: %s" % gencmd)
302
307
 
 
308
        base_dir = os.path.join(out_d, release, arch, version_name)
303
309
        if img_url.endswith('squashfs'):
304
 
            base_dir = os.path.join(out_d, release, arch, version_name)
305
310
            src_squash = os.path.join(base_dir, os.path.basename(img_url))
306
311
            if squashfs:
307
312
                # If we're publishing a SquashFS file rename it to its
318
323
                # If we're not publishing the SquashFS image but used it to
319
324
                # generate the root-img clean it up.
320
325
                os.remove(src_squash)
 
326
        elif squashfs and img_url.endswith('tar.gz'):
 
327
            # If the stream is publishing SquashFS images convert any
 
328
            # non-SquashFS image into a SquashFS image. Both the root-image.gz
 
329
            # and SquashFS image will be included but MAAS will only use the
 
330
            # SquashFS image.
 
331
            subprocess.check_call([
 
332
                'sudo', 'env', 'PATH=%s' % os.environ.get('PATH'),
 
333
                os.environ.get('IMG2SQUASHFS', 'img2squashfs'),
 
334
                os.path.join(base_dir, 'root-image.gz'),
 
335
                os.path.join(base_dir, 'squashfs'),
 
336
                ])
321
337
 
322
338
    # get checksum and size of new files created
323
339
    file_info = {}