linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Monakhov <dmonakhov@openvz.org>
To: Theodore Ts'o <tytso@mit.edu>
Cc: linux-ext4@vger.kernel.org, root <root@deb7build.openvz.org>
Subject: Re: [PATCH 1/2] xfstests-bld: Split system images in two parts
Date: Thu, 23 Oct 2014 15:25:38 +0400	[thread overview]
Message-ID: <87d29j10zx.fsf@openvz.org> (raw)
In-Reply-To: <20141023004812.GA7841@thunk.org>

[-- Attachment #1: Type: text/plain, Size: 3897 bytes --]

Theodore Ts'o <tytso@mit.edu> writes:

> On Wed, Oct 22, 2014 at 05:25:35PM -0400, Theodore Ts'o wrote:
>> So what I suggest instead is that we have a new script, update-image,
>> which takes an existing root_fs.img, and installs the updated
>> xfstests, the configuration files, and startup files, leaving the
>> existing debian base image intact.
>
> Here's an enhancement to the gen-image script which adds a new
> --update option.
Yes. This one looke much than mine, than you.
>
> 					- Ted
>
> commit debd9734bc23108f37c6f62914cb5f9e16da20cc
> Author: Theodore Ts'o <tytso@mit.edu>
> Date:   Wed Oct 22 20:42:32 2014 -0400
>
>     test-appliance: add --update option to the gen-image script
>     
>     This allows gen-image to to update the xfstests.tar.gz tarball and the
>     xfstests driver scripts into an existing root_fs.img file, keeping the
>     original operating systems files unchanged.  This takes less than 15
>     seconds, compared to about 90 seconds to do a full gen-image build
>     using a local disk debian mirror.  It also allows a xfstests developer
>     to generate new versions of the root_fs.img more simply on a system
>     that does not have debootstrap installed or has access to a Debian
>     archive or mirror.
>     
>     Signed-off-by: Theodore Ts'o <tytso@mit.edu>
>
> diff --git a/kvm-xfstests/test-appliance/gen-image b/kvm-xfstests/test-appliance/gen-image
> index 550d070..27f9d96 100755
> --- a/kvm-xfstests/test-appliance/gen-image
> +++ b/kvm-xfstests/test-appliance/gen-image
> @@ -12,6 +12,7 @@ ROOT_FS=$DIR/root_fs.img
>  COMPAT="-o compat=0.10"
>  SAVE_RAW_ROOT=no
>  DO_GCE=no
> +DO_UPDATE=no
>  
>  if test -r config.custom ; then
>     . $(pwd)/config.custom
> @@ -29,8 +30,11 @@ while [ "$1" != "" ]; do
>        DO_GCE=yes
>        SAVE_RAW_ROOT=yes;
>        ;;
> +    --update)
> +      DO_UPDATE=yes
> +      ;;
>      *)
> -      echo "usage: gen-image [--save_raw_root] [--do_gce] [--mirror MIRROR_LOC]"
> +      echo "usage: gen-image [--save_raw_root] [--do_gce] [--update] [--mirror MIRROR_LOC]"
>        exit 1
>        ;;
>    esac
> @@ -42,6 +46,31 @@ then
>      RAW_ROOT_FS=/tmp/root_fs.raw.$$
>  fi
>  
> +update_xfstests()
> +{
> +   tar -C $ROOTDIR/root -xf ../../xfstests.tar.gz
> +   rsync -avH files/* $ROOTDIR
> +}
> +
> +finalize_rootfs()
> +{
> +   e2fsck -fyD $RAW_ROOT_FS
> +   e2fsck -fy -E discard $RAW_ROOT_FS
> +   qemu-img convert -f raw -O qcow2 $COMPAT -c $RAW_ROOT_FS $ROOT_FS
> +}
> +
> +mkdir -p $ROOTDIR
> +if test $DO_UPDATE = "yes" ; then
> +   qemu-img convert -f qcow2 -O raw $ROOT_FS $RAW_ROOT_FS
> +   mount -t ext4 -o loop $RAW_ROOT_FS $ROOTDIR
> +   rm -rf $ROOTDIR/xfstests
> +   update_xfstests
> +   umount $ROOTDIR
> +   rmdir $ROOTDIR
> +   finalize_rootfs
> +   exit 0
> +fi
> +
>  mkdir -p gce
>  if test $DO_GCE = "yes" ; then
>      sh get-gce-debs
> @@ -51,7 +80,6 @@ else
>      variant=xfstests
>  fi
>  
> -mkdir -p $ROOTDIR
>  mkdir -p var.cache.apt.archives
>  mkdir -p var.lib.apt.lists
>  mkdir -p debs
> @@ -69,9 +97,7 @@ mount --bind gce $ROOTDIR/gce
>  mkdir -p $ROOTDIR/imgdir
>  mount --bind $(dirname $RAW_ROOT_FS) $ROOTDIR/imgdir
>  debootstrap --variant=$variant $ARCH $SUITE $ROOTDIR $MIRROR $DIR/kvm-xfstest.script
> -cp -r files/* rootdir
> -echo "untaring xfstests"
> -tar -C rootdir/root -xf ../../xfstests.tar.gz
> +update_xfstests
>  for i in vda vdb vdc vdd vde vdf results
>  do
>  	mkdir $ROOTDIR/$i
> @@ -139,9 +165,7 @@ rmdir $ROOTDIR
>  
>  if test $DO_GCE != "yes" ; then
>     tune2fs -O has_journal $RAW_ROOT_FS
> -   e2fsck -fyD $RAW_ROOT_FS
> -   e2fsck -fy -E discard $RAW_ROOT_FS
> -   qemu-img convert -f raw -O qcow2 $COMPAT -c $RAW_ROOT_FS $ROOT_FS
> +   finalize_rootfs
>  fi
>  
>  if test "$SAVE_RAW_ROOT" = "yes" ; then

[-- Attachment #2: Type: application/pgp-signature, Size: 818 bytes --]

  reply	other threads:[~2014-10-23 11:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-22 15:06 [PATCH 1/2] xfstests-bld: Split system images in two parts Dmitry Monakhov
2014-10-22 15:06 ` [PATCH 2/2] xfstests-bld: test-apliance add castomization options Dmitry Monakhov
2014-10-22 21:25 ` [PATCH 1/2] xfstests-bld: Split system images in two parts Theodore Ts'o
2014-10-23  0:48   ` Theodore Ts'o
2014-10-23 11:25     ` Dmitry Monakhov [this message]
2014-10-23 14:06       ` Theodore Ts'o
  -- strict thread matches above, loose matches on Subject: below --
2014-10-22 15:37 Dmitry Monakhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d29j10zx.fsf@openvz.org \
    --to=dmonakhov@openvz.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=root@deb7build.openvz.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).