From: Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Date: Wed, 5 Dec 2007 10:06:20 +0000 (+0000)
Subject: support for net settings in myplc-init-vserver - reviewed interface to use options... 
X-Git-Tag: 4.2-rc2~372
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f74cecbcd12dceebb6bf44fa2da305c03ec17555;p=build.git

support for net settings in myplc-init-vserver - reviewed interface to use options - nightly changed
---

diff --git a/README-build.txt b/README-build.txt
index b09343f8..c738f35c 100644
--- a/README-build.txt
+++ b/README-build.txt
@@ -14,7 +14,7 @@ devel@planet-lab.org, as all this is not precisely foolproof :)
 * create a local fedora mirror - see vbuild-fedora-mirror.sh
 * create a vserver - see vbuild-init-vserver.sh
 * enter the vserver and svn export this build module into /build 
-* cd /build and ru
+* cd /build and run
 # make stage1=true PLDISTRO=<yourdistro>
 # make help
 # make
diff --git a/vbuild-init-vserver.sh b/vbuild-init-vserver.sh
index 9587c695..03845f21 100755
--- a/vbuild-init-vserver.sh
+++ b/vbuild-init-vserver.sh
@@ -7,6 +7,10 @@ DIRNAME=$(dirname $0)
 # lst parsing utilities
 PATH=$(dirname $0):$PATH . build.common
 
+DEFAULT_FCDISTRO=f7
+DEFAULT_PLDISTRO=planetlab
+DEFAULT_PERSONALITY=linux32
+
 function failure () {
     echo "$COMMAND : Bailing out"
     exit 1
@@ -82,7 +86,11 @@ function setup_vserver () {
     fi
 
     # create it
-    $personality vserver $VERBOSE $vserver build -m yum -- -d $fcdistro
+    options=""
+    [ -n "$IP_ADDR" ] && options="$options --interface $IP_ADDR"
+    [ -n "$HOSTNAME" ] && options="$options --hostname $HOSTNAME"
+    [ -n "$NET_DEV" ] && options="$options --netdev $NET_DEV"
+    $personality vserver $VERBOSE $vserver build $options -m yum -- -d $fcdistro
 
     if [ ! -z "$personality" ] ; then
 	registered_personality=$(grep $personality /etc/vservers/$vserver/personality | wc -l)
@@ -245,29 +253,21 @@ COMMAND_VBUILD="vbuild-init-vserver.sh"
 COMMAND_MYPLC="myplc-init-vserver.sh"
 function usage () {
     set +x 
-    echo "Usage: $COMMAND_VBUILD [-s|s|p] [-v] vserver-name distribution pldistro [personality]"
-    echo "Usage: $COMMAND_MYPLC [-s|s|p] [-v] vserver-name distribution pldistro repo-url [personality]"
+    echo "Usage: $COMMAND_VBUILD [-v] vserver-name"
+    echo "Usage: $COMMAND_MYPLC [-v] vserver-name repo-url"
     echo "Requirements: you need to have a vserver-compliant kernel,"
     echo "  as well as the util-vserver RPM installed"
     echo "Description:"
-    echo "  This command creates a fresh vserver instance"
-    echo "  . vserver-name : the vserver's name"
-    echo "  . distribution : for creating the root filesystem, e.g. fc6"
-    echo "  . pldistro: e.g. onelab"
-    echo "  . repo-url: for myplc vserver, used to create a yum repository"
-    echo "  . personality: last, optional, argument defaults to linux32"
-    echo "This is done in three steps"
-    echo " (*) setup phase : vserver creation, yum internalization and config (from /etc/vservers)"
-    echo " (*) tools install the tools required for building are installed"
-    echo "     based on the folowing file for the actual set of packages and groups"
-    echo "     vbuild mode :  <pldistro>-devel.lst"
-    echo "     myplc mode :   <pldistro>-shell.lst"
-    echo " (*) post-install : various tunings required, as well as create a build user (vbuild only)"
-    echo "Options:"
-    echo " -s : skips the setup phase"
-    echo " -t : skips the tools phase"
-    echo " -p : skips the post-install"
+    echo "  This command creates a fresh vserver instance, for building, or running, myplc"
+    echo "Supported options"
+    echo " -f fcdistro - for creating the root filesystem - defaults to $DEFAULT_FCDISTRO"
+    echo " -d pldistro - defaults to $DEFAULT_PLDISTRO"
+    echo " -p personality - defaults to $DEFAULT_PERSONALITY"
     echo " -v : passes -v to calls to vserver"
+    echo "$COMMAND_MYPLC only:"
+    echo " -h hostname: passed as vserver build --hostname"
+    echo " -i ip-address: passed as vserver build --interface"
+    echo " -d dev: passed as vserver build --netdev"
     exit 1
 }
 
@@ -286,42 +286,36 @@ function main () {
 	    usage ;;
     esac
 
-    DO_SETUP=true
-    DO_TOOLS=true
-    DO_POST=true
     VERBOSE=
-    while getopts "stpvh" opt ; do
+    while getopts "f:d:p:vu:h:i:d:" opt ; do
 	case $opt in
-	    s) DO_SETUP="" ;;
-	    t) DO_TOOLS="" ;;
-	    p) DO_POST="" ;;
+	    f) fcdistro=$OPTARG;;
+	    d) pldistro=$OPTARG;;
+	    p) personality=$OPTARG;;
+	    i) [ -z "$MYPLC_MODE" ] && usage ; IP_ADDR=$OPTARG;;
+	    h) [ -z "$MYPLC_MODE" ] && usage ; HOSTNAME=$OPTARG;;
+	    d) [ -z "$MYPLC_MODE" ] && usage ; NET_DEV==$OPTARG;;
 	    v) VERBOSE="-v" ;;
-	    h|*) usage ;;
+	    *) usage ;;
 	esac
     done
 	
     shift $(($OPTIND - 1))
-    
     [[ -z "$@" ]] && usage
     vserver=$1 ; shift
-    [[ -z "$@" ]] && usage
-    fcdistro=$1 ; shift
-    [[ -z "$@" ]] && usage
-    pldistro=$1 ; shift
     if [ -n "$MYPLC_MODE" ] ; then
 	[[ -z "$@" ]] && usage
 	REPO_URL=$1 ; shift
     fi
-    if [[ -z "$@" ]] ; then
-	personality=linux32
-    else
-	personality=$1; shift
-    fi
     [[ -n "$@" ]] && usage
 
-    [ -n "$DO_SETUP" ] && setup_vserver $vserver $fcdistro $personality 
-    [ -n "$DO_TOOLS" ] && devel_tools $vserver $fcdistro $pldistro $personality
-    [ -n "$DO_POST" ] && post_install $vserver $personality
+    [ -z "$fcdistro" ] && fcdistro=$DEFAULT_FCDISTRO
+    [ -z "$pldistro" ] && pldistro=$DEFAULT_PLDISTRO
+    [ -z "$personality" ] && personality=$DEFAULT_PERSONALITY
+
+    setup_vserver $vserver $fcdistro $personality 
+    devel_tools $vserver $fcdistro $pldistro $personality
+    post_install $vserver $personality
 
 }
 
diff --git a/vbuild-nightly.sh b/vbuild-nightly.sh
index 41930450..72b35610 100755
--- a/vbuild-nightly.sh
+++ b/vbuild-nightly.sh
@@ -5,7 +5,7 @@ COMMANDPATH=$0
 COMMAND=$(basename $0)
 
 # default values, tunable with command-line options
-DEFAULT_FCDISTRO=fc6
+DEFAULT_FCDISTRO=f7
 DEFAULT_PLDISTRO=planetlab
 DEFAULT_PERSONALITY=linux32
 DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@-@PERSONALITY@"
@@ -171,17 +171,18 @@ function usage () {
     echo "This is $REVISION"
     echo "Supported options"
     echo " -n dry-run : -n passed to make - vserver gets created though - no mail sent"
-    echo " -f FCDISTRO - defaults to $DEFAULT_FCDISTRO"
-    echo " -d PLDISTRO - defaults to $DEFAULT_PLDISTRO"
-    echo " -b BASE - defaults to $DEFAULT_BASE"
+    echo " -f fcdistro - defaults to $DEFAULT_FCDISTRO"
+    echo " -d pldistro - defaults to $DEFAULT_PLDISTRO"
+    echo " -p personality - defaults to $DEFAULT_PERSONALITY"
+    echo " -b base - defaults to $DEFAULT_BASE"
     echo "    @NAME@ replaced as appropriate"
-    echo " -t PLDISTROTAGS - defaults to \${PLDISTRO}-tags.mk"
-    echo " -r TAGSRELEASE - a release number that refers to PLDISTROTAGS - defaults to HEAD"
-    echo " -s SVNPATH - where to fetch the build module"
+    echo " -t pldistrotags - defaults to \${PLDISTRO}-tags.mk"
+    echo " -r tagsrelease - a release number that refers to PLDISTROTAGS - defaults to HEAD"
+    echo " -s svnpath - where to fetch the build module"
     echo " -o : overwrite - re-run in base directory, do not create vserver"
-    echo " -m MAILTO"
-    echo " -a MAKEVAR=value - space in values are not supported"
-    echo " -w WEBPATH - defaults to $DEFAULT_WEBPATH"
+    echo " -m mailto"
+    echo " -a makevar=value - space in values are not supported"
+    echo " -w webpath - defaults to $DEFAULT_WEBPATH"
     echo " -B : run build only"
     echo " -T : run test only"
     echo " -v : be verbose"
@@ -201,12 +202,12 @@ function main () {
     MAKEOPTS=()
     DO_BUILD=true
     DO_TEST=true
-    PERSONALITY=$DEFAULT_PERSONALITY
-    while getopts "nf:d:b:t:r:s:om:a:w:BTvhp:" opt ; do
+    while getopts "nf:d:b:p:t:r:s:om:a:w:BTvh" opt ; do
 	case $opt in
 	    n) DRY_RUN="true" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
 	    f) FCDISTRO=$OPTARG ;;
 	    d) PLDISTRO=$OPTARG ;;
+	    p) PERSONALITY=$OPTARG ;;
 	    b) BASE=$OPTARG ;;
 	    t) PLDISTROTAGS=$OPTARG ;;
 	    r) TAGSRELEASE=$OPTARG ;;
@@ -217,7 +218,6 @@ function main () {
 	    w) WEBPATH=$OPTARG ;;
 	    B) DO_TEST= ;;
 	    T) DO_BUILD= ; USEOLD=true ;;
-	    p) PERSONALITY=$OPTARG ;;
 	    v) set -x ;;
 	    h|*) usage ;;
 	esac
@@ -229,6 +229,7 @@ function main () {
     # set defaults
     [ -z "$FCDISTRO" ] && FCDISTRO=$DEFAULT_FCDISTRO
     [ -z "$PLDISTRO" ] && PLDISTRO=$DEFAULT_PLDISTRO
+    [ -z "$PERSONALITY" ] && PERSONALITY=$DEFAULT_PERSONALITY
     [ -z "$PLDISTROTAGS" ] && PLDISTROTAGS="${PLDISTRO}-tags.mk"
     [ -z "$BASE" ] && BASE="$DEFAULT_BASE"
     [ -z "$WEBPATH" ] && WEBPATH="$DEFAULT_WEBPATH"
@@ -302,7 +303,7 @@ function main () {
 	    svn export $SVNPATH $tmpdir
             # Create vserver
 	    cd $tmpdir
-	    ./vbuild-init-vserver.sh ${BASE} ${FCDISTRO} ${PLDISTRO} ${PERSONALITY}
+	    ./vbuild-init-vserver.sh ${BASE} -f ${FCDISTRO} -d ${PLDISTRO} -p ${PERSONALITY}
 	    # cleanup
 	    cd -
 	    rm -rf $tmpdir