[Fedora-directory-commits] ldapserver/ldap/admin/src/scripts template-fixup-memberof.pl.in, NONE, 1.1
Nathan Kinder (nkinder)
fedora-directory-commits at redhat.com
Tue Jun 10 20:24:05 UTC 2008
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd slapi-private.h, 1.22, 1.23 proto-slap.h, 1.33, 1.34 schema.c, 1.13, 1.14
- Next message (by thread): [Fedora-directory-commits] ldapserver Makefile.am, 1.68, 1.69 Makefile.in, 1.88, 1.89 aclocal.m4, 1.67, 1.68 config.guess, 1.49, 1.50 config.h.in, 1.16, 1.17 config.sub, 1.49, 1.50 configure, 1.84, 1.85 depcomp, 1.50, 1.51 install-sh, 1.50, 1.51 ltmain.sh, 1.25, 1.26 missing, 1.50, 1.51
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: nkinder
Update of /cvs/dirsec/ldapserver/ldap/admin/src/scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7596/ldap/admin/src/scripts
Added Files:
template-fixup-memberof.pl.in
Log Message:
Resolves: 450746
Summary: Added CLI for creating memberOf fix-up task entry.
--- NEW FILE template-fixup-memberof.pl.in ---
#{{PERL-EXEC}}
#
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
# Copyright (C) 2008 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
sub usage {
print(STDERR "Usage: $0 [-v] -D rootdn { -w password | -w - | -j filename } \n");
print(STDERR " -b baseDN [-f filter]\n");
print(STDERR " Opts: -D rootdn - Directory Manager\n");
print(STDERR " : -w password - Directory Manager's password\n");
print(STDERR " : -w - - Prompt for Directory Manager's password\n");
print(STDERR " : -j filename - Read Directory Manager's password from file\n");
print(STDERR " : -b baseDN - Base DN that contains entries to fix up.\n");
print(STDERR " : -f filter - Filter for entries to fix up\n");
print(STDERR " If omitted, all entries under the specified\n");
print(STDERR " base will have their memberOf attribute\n");
print(STDERR " regenerated.\n");
print(STDERR " : -v - verbose\n");
}
$rootdn = "";
$passwd = "";
$passwdfile = "";
$basedn_arg = "";
$filter_arg = "";
$filter = "";
$verbose = 0;
$prefix = "{{DS-ROOT}}";
$ENV{'PATH'} = "$prefix at ldapsdk_bindir@:$prefix/usr/bin:@ldapsdk_bindir@:/usr/bin";
$ENV{'LD_LIBRARY_PATH'} = "$prefix at nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
$ENV{'SHLIB_PATH'} = "$prefix at nss_libdir@:$prefix/usr/lib:@nss_libdir@:/usr/lib";
$i = 0;
while ($i <= $#ARGV)
{
if ("$ARGV[$i]" eq "-b")
{
# base DN
$i++; $basedn_arg = $ARGV[$i];
}
elsif ("$ARGV[$i]" eq "-f")
{
# filter
$i++; $filter_arg = $ARGV[$i];
}
elsif ("$ARGV[$i]" eq "-D")
{
# Directory Manager
$i++; $rootdn = $ARGV[$i];
}
elsif ("$ARGV[$i]" eq "-w")
{
# Directory Manager's password
$i++; $passwd = $ARGV[$i];
}
elsif ("$ARGV[$i]" eq "-j")
{
# Read Directory Manager's password from a file
$i++; $passwdfile = $ARGV[$i];
}
elsif ("$ARGV[$i]" eq "-v")
{
# verbose
$verbose = 1;
}
else
{
&usage; exit(1);
}
$i++;
}
if ($passwdfile ne ""){
# Open file and get the password
unless (open (RPASS, $passwdfile)) {
die "Error, cannot open password file $passwdfile\n";
}
$passwd = <RPASS>;
chomp($passwd);
close(RPASS);
} elsif ($passwd eq "-"){
# Read the password from terminal
die "The '-w -' option requires an extension library (Term::ReadKey) which is not\n",
"part of the standard perl distribution. If you want to use it, you must\n",
"download and install the module. You can find it at\n",
"http://www.perl.com/CPAN/CPAN.html\n";
# Remove the previous line and uncomment the following 6 lines once you have installed Term::ReadKey module.
# use Term::ReadKey;
# print "Bind Password: ";
# ReadMode('noecho');
# $passwd = ReadLine(0);
# chomp($passwd);
# ReadMode('normal');
}
if ( $rootdn eq "" || $passwd eq "" || $basedn_arg eq "" )
{
&usage;
exit(1);
}
$vstr = "";
if ($verbose != 0)
{
$vstr = "-v";
}
# Use a timestamp as part of the task entry name
($s, $m, $h, $dy, $mn, $yr, $wdy, $ydy, $r) = localtime(time);
$mn++; $yr += 1900;
$taskname = "memberOf_fixup_${yr}_${mn}_${dy}_${h}_${m}_${s}";
# Build the task entry to add
$dn = "dn: cn=$taskname, cn=memberOf task, cn=tasks, cn=config\n";
$misc = "changetype: add\nobjectclass: top\nobjectclass: extensibleObject\n";
$cn = "cn: $taskname\n";
$basedn = "basedn: $basedn_arg\n";
if ( $filter_arg ne "" )
{
$filter = "filter: $filter_arg\n";
}
$entry = "${dn}${misc}${cn}${basedn}${filter}";
open(FOO, "| ldapmodify $vstr -h {{SERVER-NAME}} -p {{SERVER-PORT}} -D \"$rootdn\" -w \"$passwd\" -a" );
print(FOO "$entry");
close(FOO);
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd slapi-private.h, 1.22, 1.23 proto-slap.h, 1.33, 1.34 schema.c, 1.13, 1.14
- Next message (by thread): [Fedora-directory-commits] ldapserver Makefile.am, 1.68, 1.69 Makefile.in, 1.88, 1.89 aclocal.m4, 1.67, 1.68 config.guess, 1.49, 1.50 config.h.in, 1.16, 1.17 config.sub, 1.49, 1.50 configure, 1.84, 1.85 depcomp, 1.50, 1.51 install-sh, 1.50, 1.51 ltmain.sh, 1.25, 1.26 missing, 1.50, 1.51
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Fedora-directory-commits
mailing list