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