Author: sandervanderburg
Date: Fri Nov 26 14:54:05 2010
New Revision: 24877
URL: https://svn.nixos.org/websvn/nix/?rev=24877&sc=1

Log:
Added feature which allows you to locally manage some infrastructure properties 
(e.g. passwords) and augument them in the discovered infrastructure

Added:
   disnix/dydisnix/trunk/data/augument-infra.nix
   disnix/dydisnix/trunk/scripts/dydisnix-augument-infra.in
Modified:
   disnix/dydisnix/trunk/configure.ac
   disnix/dydisnix/trunk/data/Makefile.am
   disnix/dydisnix/trunk/scripts/Makefile.am
   disnix/dydisnix/trunk/scripts/dydisnix-env.in
   disnix/dydisnix/trunk/scripts/dydisnix-self-adapt.in

Modified: disnix/dydisnix/trunk/configure.ac
==============================================================================
--- disnix/dydisnix/trunk/configure.ac  Fri Nov 26 14:40:39 2010        (r24876)
+++ disnix/dydisnix/trunk/configure.ac  Fri Nov 26 14:54:05 2010        (r24877)
@@ -53,6 +53,7 @@
 scripts/dydisnix-env
 scripts/dydisnix-gendist
 scripts/dydisnix-self-adapt
+scripts/dydisnix-augument-infra
 scripts/Makefile
 src/Makefile
 src/filter-buildable/Makefile

Modified: disnix/dydisnix/trunk/data/Makefile.am
==============================================================================
--- disnix/dydisnix/trunk/data/Makefile.am      Fri Nov 26 14:40:39 2010        
(r24876)
+++ disnix/dydisnix/trunk/data/Makefile.am      Fri Nov 26 14:54:05 2010        
(r24877)
@@ -1,2 +1,2 @@
-pkgdata_DATA = distribution_expr.xsl distribution.xsl filters.nix 
intfilters.nix extfilters.nix services.xsl gendist.nix try-build.nix
-EXTRA_DIST = distribution_expr.xsl distribution.xsl filters.nix intfilters.nix 
extfilters.nix.in services.xsl gendist.nix try-build.nix.in
+pkgdata_DATA = distribution_expr.xsl distribution.xsl filters.nix 
intfilters.nix extfilters.nix services.xsl gendist.nix try-build.nix 
augument-infra.nix
+EXTRA_DIST = distribution_expr.xsl distribution.xsl filters.nix intfilters.nix 
extfilters.nix.in services.xsl gendist.nix try-build.nix.in augument-infra.nix

Added: disnix/dydisnix/trunk/data/augument-infra.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ disnix/dydisnix/trunk/data/augument-infra.nix       Fri Nov 26 14:54:05 
2010        (r24877)
@@ -0,0 +1,3 @@
+{infrastructure, augumentFun}:
+
+augumentFun { inherit infrastructure; }

Modified: disnix/dydisnix/trunk/scripts/Makefile.am
==============================================================================
--- disnix/dydisnix/trunk/scripts/Makefile.am   Fri Nov 26 14:40:39 2010        
(r24876)
+++ disnix/dydisnix/trunk/scripts/Makefile.am   Fri Nov 26 14:54:05 2010        
(r24877)
@@ -1,3 +1,3 @@
-bin_SCRIPTS = dydisnix-gendist dydisnix-env dydisnix-self-adapt
+bin_SCRIPTS = dydisnix-gendist dydisnix-env dydisnix-self-adapt 
dydisnix-augument-infra
 
-EXTRA_DIST = dydisnix-gendist.in dydisnix-env.in dydisnix-self-adapt.in
+EXTRA_DIST = dydisnix-gendist.in dydisnix-env.in dydisnix-self-adapt.in 
dydisnix-augument-infra

Added: disnix/dydisnix/trunk/scripts/dydisnix-augument-infra.in
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ disnix/dydisnix/trunk/scripts/dydisnix-augument-infra.in    Fri Nov 26 
14:54:05 2010        (r24877)
@@ -0,0 +1,78 @@
+#!/bin/bash -e
+
+# Shows the usage of this command to the user
+
+showUsage()
+{
+    echo "Usage: $0 -i infrastructure_expr --augument augument_expr"
+    echo "Options:"
+    echo
+    echo "-i,--infrastructure Infrastructure Nix expression which captures 
properties of machines in the network"
+    echo "--augument          Nix expression which auguments additional 
properties into the infrastructure model"
+    echo "-h,--help           Shows the usage of this command"
+}
+
+# Autoconf settings
+
+export pref...@prefix@
+
+# Import checks
+
+source @DISNIX_PREFIX@/share/disnix/checks
+
+# Parse valid argument options
+
+PARAMS=`getopt -n $0 -o i:h -l infrastructure:,augument:,help -- "$@"`
+
+if [ $? != 0 ]
+then
+    showUsage
+    exit 1
+fi
+
+eval set -- "$PARAMS"
+
+# Evaluate valid options
+
+while [ "$1" != "--" ]
+do
+    case "$1" in
+       -i|--infrastructure)
+           infrastructureFile=`readlink -f $2`
+           ;;
+       --augument)
+           augumentFile=`readlink -f $2`
+           ;;
+       -h|--help)
+           showUsage
+           exit 0
+           ;;
+    esac
+    
+    shift
+done
+
+# Validate the given options
+
+checkInfrastructureFile
+
+if [ "$augumentFile" = "" ]
+then
+    echo "ERROR: An augument file must be specified!" >&2
+    exit 1
+fi
+
+checkTmpDir
+
+# Execute operation
+
+augumentedInfrastructureFile=`mktemp -p $TMPDIR`
+
+cat > $augumentedInfrastructureFile <<EOF
+import @datadir@/@PACKAGE@/augument-infra.nix {
+  infrastructure = import $infrastructureFile;
+  augumentFun = import $augumentFile;
+}
+EOF
+
+echo $augumentedInfrastructureFile

Modified: disnix/dydisnix/trunk/scripts/dydisnix-env.in
==============================================================================
--- disnix/dydisnix/trunk/scripts/dydisnix-env.in       Fri Nov 26 14:40:39 
2010        (r24876)
+++ disnix/dydisnix/trunk/scripts/dydisnix-env.in       Fri Nov 26 14:54:05 
2010        (r24877)
@@ -10,6 +10,7 @@
     echo "-s,--services       Services Nix expression which describes all 
components of the distributed system"
     echo "-q,--qos            Quality of service Nix expression which 
describes how to devide services onto targets based on quality of service 
attributes"
     echo "-i,--infrastructure Infrastructure Nix expression which captures 
properties of machines in the network"
+    echo "--augument          Nix epxression which auguments additional 
attributes into the infrastructure model"
     echo "--infragen          Path to the infrastructure generator"
     echo "-h,--help           Shows the usage of this command"
 }
@@ -20,7 +21,7 @@
 
 # Parse valid argument options
 
-PARAMS=`getopt -n $0 -o s:i:q:h -l 
services:,infrastructure:,qos:,infragen:,help -- "$@"`
+PARAMS=`getopt -n $0 -o s:i:q:h -l 
services:,infrastructure:,qos:,augument:,infragen:,help -- "$@"`
 
 if [ $? != 0 ]
 then
@@ -44,8 +45,8 @@
        -i|--infrastructure)
            infrastructureFile=`readlink -f $2`
            ;;
-       --interval)
-           interval=$2
+       --augument)
+           augumentFile=`readlink -f $2`
            ;;
        --infragen)
            infragen=$2
@@ -90,5 +91,10 @@
     infrastructureFile=$TMPDIR/infrastructure.nix
 fi
 
+if [ "$augumentFile" != "" ]
+then
+    infrastructureFile=`dydisnix-augument-infra --infrastructure 
$infrastructureFile --augument $augumentFile`
+fi
+
 distribution=`dydisnix-gendist --services $servicesFile --infrastructure 
$infrastructureFile --qos $qosFile`
 disnix-env --services $servicesFile --infrastructure $infrastructureFile 
--distribution $distribution

Modified: disnix/dydisnix/trunk/scripts/dydisnix-self-adapt.in
==============================================================================
--- disnix/dydisnix/trunk/scripts/dydisnix-self-adapt.in        Fri Nov 26 
14:40:39 2010        (r24876)
+++ disnix/dydisnix/trunk/scripts/dydisnix-self-adapt.in        Fri Nov 26 
14:54:05 2010        (r24877)
@@ -9,6 +9,7 @@
     echo
     echo "-s,--services  Services Nix expression which describes all 
components of the distributed system"
     echo "-q,--qos       Quality of service Nix expression which describes how 
to devide services onto targets based on quality of service attributes"
+    echo "--augument     Nix epxression which auguments additional attributes 
into the infrastructure model"
     echo "--interval     Sleep interval (defaults to 1)"
     echo "--infragen     Path to the infrastructure generator"
     echo "-h,--help      Shows the usage of this command"
@@ -20,7 +21,7 @@
 
 # Parse valid argument options
 
-PARAMS=`getopt -n $0 -o s:q:h -l services:,qos:,interval:,infragen:,help -- 
"$@"`
+PARAMS=`getopt -n $0 -o s:q:h -l 
services:,qos:,augument:,interval:,infragen:,help -- "$@"`
 
 if [ $? != 0 ]
 then
@@ -41,6 +42,9 @@
        -q|--qos)
            qosFile=`readlink -f $2`
            ;;
+       --augument)
+           augumentFile=`readlink -f $2`
+           ;;
        --interval)
            interval=$2
            ;;
@@ -66,7 +70,7 @@
     exit 1
 fi
 
-if [ "$interval" = ""]
+if [ "$interval" = "" ]
 then
     interval=1
 fi
@@ -90,6 +94,12 @@
 do
     $infragen > $TMPDIR/infrastructure.nix
     
+    if [ "$augumentFile" != "" ]
+    then
+       infrastructureFile=`dydisnix-augument-infra --infrastructure 
$infrastructureFile --augument $augumentFile`
+       mv $infrastructureFile $TMPDIR/infrastructure.nix
+    fi
+    
     if [ ! -f $TMPDIR/previous_infrastructure.nix ] || [ "$(cat 
$TMPDIR/previous_infrastructure.nix | sha256sum -)" != "$(cat 
$TMPDIR/infrastructure.nix | sha256sum -)" ]
     then
        distribution=`dydisnix-gendist --services $servicesFile 
--infrastructure $TMPDIR/infrastructure.nix --qos $qosFile`
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to