This makes it easier to share the output of whoami. As a beneficial
side effect it can now be overridden.
Replace many open-coded calls to `whoami` etc. with references to
$c{Username}.
Signed-off-by: Ian Jackson
---
v2: New patch
---
Osstest.pm |5 +++--
Osstest/Executive.pm| 15 ---
README |4
mg-crontab-install |2 +-
mg-execute-flight |2 +-
mg-schema-test-database |4 ++--
6 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/Osstest.pm b/Osstest.pm
index 20b8f62..d4ddda7 100644
--- a/Osstest.pm
+++ b/Osstest.pm
@@ -209,6 +209,7 @@ sub readglobalconfig () {
my $whoami = `whoami` or die $!;
chomp($whoami) or die;
+$c{Username} ||= $whoami;
my $nodename = `uname -n` or die $!;
chomp($nodename) or die;
@@ -219,7 +220,7 @@ sub readglobalconfig () {
$c{TftpPath} ||= "/tftpboot/";
$c{TftpPxeDir} ||= "pxelinux.cfg/";
$c{TftpPxeTemplates} ||= '%ipaddrhex% 01-%etherhyph%';
-$c{TftpPlayDir} ||= "$whoami/osstest/";
+$c{TftpPlayDir} ||= "$c{Username}/osstest/";
$c{TftpTmpDir} ||= "$c{TftpPlayDir}tmp/";
$c{TftpDiBase} ||= "$c{TftpPlayDir}debian-installer";
@@ -229,7 +230,7 @@ sub readglobalconfig () {
$c{TftpGrubVersion} ||= 'current';
$c{WebspaceFile} ||= "$ENV{'HOME'}/public_html/";
-$c{WebspaceUrl} ||= "http://$myfqdn/~$whoami/;;
+$c{WebspaceUrl} ||= "http://$myfqdn/~$c{Username}/;;
$c{WebspaceCommon} ||= 'osstest/';
$c{WebspaceLog} ||= '/var/log/apache2/access.log';
diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 2214084..fcef83f 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -134,19 +134,14 @@ sub opendb_state () {
return opendb('statedb');
}
-our $whoami;
-
sub db_pg_dsn ($) {
my ($dbname) = @_;
my $pg= $c{"ExecutiveDbname_$dbname"};
if (!defined $pg) {
- if (!defined $whoami) {
- $whoami = `whoami`; die if $?; chomp $whoami;
- }
my $pat= $c{ExecutiveDbnamePat};
my %vars= ('dbname' => $dbname,
- 'whoami' => $whoami);
+ 'whoami' => $c{Username});
$pat =~ s#\<(\w+)\>#
my $val=$vars{$1}; defined $val or die "$pat $1 ?";
$val;
@@ -449,10 +444,9 @@ sub findtask () {
my $q;
my $what;
if (!defined $spec) {
-$!=0; $?=0; my $whoami= `whoami`; defined $whoami or die "$? $!";
$!=0; $?=0; my $node= `uname -n`; defined $node or die "$? $!";
-chomp($whoami); chomp($node); $node =~ s/\..*//;
-my $refkey= "$whoami\@$node";
+chomp($node); $node =~ s/\..*//;
+my $refkey= "$c{Username}\@$node";
$what= "static $refkey";
$q= $dbh_tests->prepare(</dev/null`; chomp $tty;
$info .= " ($tty)" unless $?;
return $info;
diff --git a/README b/README
index 3e64a13..5740ac0 100644
--- a/README
+++ b/README
@@ -535,6 +535,10 @@ TftpPxeTemplatesReal
Timezone
Olson TZ name, used by host and guest installers
+Username
+User name on this host. Defaults to the output of `whoami'.
+Should not normally be changed.
+
Host-specific config settigs
diff --git a/mg-crontab-install b/mg-crontab-install
index 5a59d45..4df8e6e 100755
--- a/mg-crontab-install
+++ b/mg-crontab-install
@@ -12,7 +12,7 @@ case "$#.$1" in
esac
expect="#@@ "
-expect+="`whoami`"
+expect+="`whoami`" # not $c{Username}
expect+="@"
expect+="`hostname -f`"
diff --git a/mg-execute-flight b/mg-execute-flight
index 8b2c21c..ec534da 100755
--- a/mg-execute-flight
+++ b/mg-execute-flight
@@ -53,7 +53,7 @@ done
if [ x"$flight" = x ]; then badusage; fi
: ${blessing:=play}
-: ${email:=`whoami`}
+: ${email:=`getconfig Username`}
set +e
tty=`exec 2>/dev/null; tty`
diff --git a/mg-schema-test-database b/mg-schema-test-database
index 73d92f3..b1b5e60 100755
--- a/mg-schema-test-database
+++ b/mg-schema-test-database
@@ -174,7 +174,7 @@ borrowtaskid () {
"
}
-username=`whoami`
+username=`getconfig Username`
nodename=`uname -n`
suffix=_$username
invocation_now=`date +%s`
@@ -223,7 +223,7 @@ create)
moretasks error \
"WHERE type = 'static'
AND refkey = :'refkey'" \
- -v refkey="$(whoami)@$(uname -n)"
+ -v refkey="${username}@$(uname -n)"
fi
tasks_cond=${tasks// / OR T=}
--
1.7.10.4
___
Xen-devel