Several minor updates to sanityCheck
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/ce47eb81 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/ce47eb81 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/ce47eb81 Branch: refs/heads/master Commit: ce47eb817e9abc489368951259275a52c391ba6a Parents: 034a587 Author: peryder <pery...@cisco.com> Authored: Mon Nov 14 14:16:49 2016 -0500 Committer: Dan Kirkwood <dang...@gmail.com> Committed: Fri Jan 27 09:52:53 2017 -0700 ---------------------------------------------------------------------- traffic_ops/install/bin/postinstall-new | 38 ++++++++++++++++------------ 1 file changed, 22 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/ce47eb81/traffic_ops/install/bin/postinstall-new ---------------------------------------------------------------------- diff --git a/traffic_ops/install/bin/postinstall-new b/traffic_ops/install/bin/postinstall-new index 0228b5a..6d3ca0f 100755 --- a/traffic_ops/install/bin/postinstall-new +++ b/traffic_ops/install/bin/postinstall-new @@ -53,7 +53,7 @@ sub getField { # if no config value and in interactive mode prompt user if ($::interactive) { return promptUser($question); - } + } # if no answer given in input file attempt to use default answer foreach my $var (@{ $::defaultInputs->{$fileName} }) { @@ -63,7 +63,7 @@ sub getField { } #No way of getting answer - errorOut("No config answer given\n"); + errorOut("No config answer given for question \'$question\'\n"); } errorOut("error: end of function"); @@ -90,8 +90,8 @@ sub getConfig { } foreach my $var (@{ $userInput->{$fileName} }) { - my $question = ( (keys $var)[0] eq "config_var" ? (keys $var)[1] : (keys $var)[0] ); - my $answer = $config{$var->{"config_var"}} = getField($question, $var->{$question}, $fileName); + my $question = ( (keys $var)[0] eq "config_var" ? (keys $var)[1] : (keys $var)[0] ); + my $answer = $config{$var->{"config_var"}} = getField($question, $var->{$question}, $fileName); $config{$var->{"config_var"}} = $answer; if ($::debug) { @@ -149,7 +149,7 @@ sub generateCdnConf { my %cdnconf = getConfig($userInput, $fileName); if (! looks_like_number($cdnconf{keepSecrets}) ) { - errorOut("Number of secrets to keep must be a number\n"); + errorOut("Error: Number of secrets to keep must be a number\n"); } if ( lc $cdnconf{genSecret} =~ /^y(?:es)?/ ) { @@ -223,8 +223,8 @@ sub generateProfilesDir { # userInput: The entire input config file which is either user input or the defaults # -# Checks the input config file against the default inputs. If there is a question located in the input config file -# which is not present in the defaults it will output a warning message. +# Checks the input config file against the default inputs. If there is a question located in the default inputs which +# is not located in the input config file it will output a warning message. # # This does not check the other way meaning questions which are present in defaults but not present in the input config # file will not be checked @@ -233,19 +233,25 @@ sub sanityCheckConfig { my $userInput = shift; my $diffs = 0; - foreach my $file ( (keys $userInput) ) { - if (!defined $::defaultInputs->{$file}) { - print "Warning: File \'$file\' found in input but not defaults\n"; + foreach my $file ( (keys $::defaultInputs) ) { + if (!defined $userInput->{$file}) { + print "Warning: File \'$file\' found in defaults but not config file\n"; next; } - my $counter = 0; - foreach my $value (@ { $userInput->{$file} }) { - if ( !defined $::defaultInputs->{$file}[$counter]->{"config_var"} ) { - print "Warning: Value " . Dumper($value) . "found in file \'$file\' but not defaults\n"; - $diffs++; + foreach my $defaultValue (@ { $::defaultInputs->{$file} }) { + + my $found = 0; + foreach my $configValue (@ { $userInput->{$file} }) { + if ($defaultValue->{"config_var"} eq $configValue->{"config_var"} ) { + $found = 1; + } + } + + if (!$found) { + print "Warning: Value " . Dumper($defaultValue) . "found in defaults but not in \'$file\'\n"; + $diffs++; } - $counter++; } }