All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.