[Fedora-directory-commits] adminserver/admserv/newinst/src AdminServer.pm.in, 1.16, 1.17 setup-ds-admin.pl.in, 1.14, 1.15

Richard Allen Megginson rmeggins at fedoraproject.org
Wed Apr 8 22:47:46 UTC 2009


Author: rmeggins

Update of /cvs/dirsec/adminserver/admserv/newinst/src
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10013/adminserver/admserv/newinst/src

Modified Files:
	AdminServer.pm.in setup-ds-admin.pl.in 
Log Message:
Resolves: bug 494980
Bug Description: setup-ds-admin.pl -u and silent setup complain about ServerIpAddress
Reviewed by: nkinder (Thanks!)
Fix Description: We were only setting the default ServerIpAddress in the regular interactive mode, not in -u or silent mode.  In addition, I found several other parameters that had the same problem.  I borrowed code from the interactive mode code to set the default values.
Platforms tested: RHEL5
Flag Day: no
Doc impact: no



Index: AdminServer.pm.in
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/AdminServer.pm.in,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AdminServer.pm.in	27 Feb 2009 14:33:27 -0000	1.16
+++ AdminServer.pm.in	8 Apr 2009 22:47:43 -0000	1.17
@@ -21,10 +21,10 @@
 @ISA       = qw(Exporter);
 @EXPORT    = qw(createAdminServer reconfigAdminServer
                 createASFilesAndDirs setFileOwnerPerms updateHttpConfFiles
-                startAdminServer removeAdminServer);
+                startAdminServer removeAdminServer setDefaults);
 @EXPORT_OK = qw(createAdminServer reconfigAdminServer
                 createASFilesAndDirs setFileOwnerPerms updateHttpConfFiles
-                startAdminServer removeAdminServer);
+                startAdminServer removeAdminServer setDefaults);
 
 use File::Path;
 # tempfiles
@@ -41,16 +41,51 @@
 use Setup;
 use AdminUtil;
 
+sub setDefaults {
+    my $setup = shift;
+
+    if (!defined($setup->{inf}->{admin}->{ServerIpAddress})) {
+        $setup->{inf}->{admin}->{ServerIpAddress} = '@admservip@';
+    }
+    if (!defined($setup->{inf}->{admin}->{Port})) {
+        $setup->{inf}->{admin}->{Port} = @admservport@;
+    }
+    if (!defined($setup->{inf}->{admin}->{SysUser})) {
+        my $user = $setup->{inf}->{General}->{SuiteSpotUserID};
+        if (!defined($user)) {
+            if ($> == 0) { # if root, use the default user
+                $user = "@httpduser@";
+            } else { # if not root, use the user's uid
+                $user = getLogin;
+            }
+        }
+        $setup->{inf}->{admin}->{SysUser} = $user;
+    }
+    if (!defined($setup->{inf}->{admin}->{ServerAdminID})) {
+        my $id = $setup->{inf}->{General}->{ConfigDirectoryAdminID};
+        if (isValidDN($id)) {
+            $id =~ s/^(.*)=.*/$1/;
+        }
+        $setup->{inf}->{admin}->{ServerAdminID} = $id;
+    }
+    if (!defined($setup->{inf}->{admin}->{ServerAdminPwd})) {
+        my $pwd = $setup->{inf}->{General}->{ConfigDirectoryAdminPwd};
+        $setup->{inf}->{admin}->{ServerAdminPwd} = $pwd;
+    }
+
+    return 1;
+}
+
 sub checkRequiredParameters {
     my $setup = shift;
-    for my $asparam (qw(Port SysUser ServerAdminID ServerAdminPwd)) {
+    for my $asparam (qw(ServerIpAddress Port SysUser ServerAdminID ServerAdminPwd)) {
         if (!defined($setup->{inf}->{admin}->{$asparam})) {
             $setup->msg($FATAL, "missing_adminserver_param", $asparam);
             return 0;
         }
     }
 
-    for my $general (qw(SuiteSpotUserID SuiteSpotGroup ConfigDirectoryLdapURL)) {
+    for my $general (qw(AdminDomain SuiteSpotUserID SuiteSpotGroup ConfigDirectoryLdapURL)) {
         if (!defined($setup->{inf}->{General}->{$general})) {
             $setup->msg($FATAL, "missing_general_param", $general);
             return 0;
@@ -434,6 +469,10 @@
         $setup->msg('begin_create_adminserver');
     }
 
+    if (!setDefaults($setup)) {
+        return 0;
+    }
+
     if (!checkRequiredParameters($setup)) {
         return 0;
     }


Index: setup-ds-admin.pl.in
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/setup-ds-admin.pl.in,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- setup-ds-admin.pl.in	27 Feb 2009 14:33:27 -0000	1.14
+++ setup-ds-admin.pl.in	8 Apr 2009 22:47:43 -0000	1.15
@@ -30,6 +30,7 @@
 use AdminUtil;
 use AdminServer;
 use Util;
+use Net::Domain qw(hostfqdn);
 
 my $res = new Resource("@propertydir@/setup-ds.res",
                        "@propertydir@/setup-ds-admin.res");
@@ -93,6 +94,14 @@
         $setup->{inf}->{slapd}->{SlapdConfigForMC} = 0;
     }
     $setup->{reconfigas} = 1; # allow AS reconfig
+} else {
+    # default to creating the config DS
+    unless (defined($setup->{inf}->{slapd}->{UseExistingMC})) {
+        $setup->{inf}->{slapd}->{UseExistingMC} = 0;
+    }
+    unless (defined($setup->{inf}->{slapd}->{SlapdConfigForMC})) {
+        $setup->{inf}->{slapd}->{SlapdConfigForMC} = "yes";
+    }
 }
 
 # do not allow reconfig (setup -r) if no setup has been done
@@ -145,6 +154,7 @@
     }
 }
 
+# set default values
 my $createconfigds;
 if ((defined($setup->{inf}->{slapd}->{SlapdConfigForMC}) and
      ("yes" =~ /^$setup->{inf}->{slapd}->{SlapdConfigForMC}/i)) or
@@ -159,6 +169,24 @@
     $createconfigds = 1;
 }
 
+if (!defined($setup->{inf}->{General}->{ConfigDirectoryAdminID})) {
+    $setup->{inf}->{General}->{ConfigDirectoryAdminID} = "admin";
+}
+
+if (!defined($setup->{inf}->{General}->{AdminDomain})) {
+    my $admindomain = $setup->{inf}->{General}->{FullMachineName} ||
+        hostfqdn;
+    $admindomain =~ s/^[^\.]*\.//; # just the domain part
+    $setup->{inf}->{General}->{AdminDomain} = $admindomain;
+}
+
+if (!defined($setup->{inf}->{General}->{SuiteSpotGroup})) {
+    $setup->{inf}->{General}->{SuiteSpotGroup} = "@httpdgroup@";
+}
+
+# for admin server too, since ServerAdminID is used by AdminUtil code
+AdminServer::setDefaults($setup);
+
 $setup->{inf}->write();
 
 my @errs;




More information about the Fedora-directory-commits mailing list