5 # The following exit codes are defined and MUST BE CONSISTENT with the
6 # error codes the library uses:
7 $MR_DBMS_ERR = 47836421;
9 $ENV{PATH} = "/bin:/usr/bin:/sbin:/usr/sbin";
11 $outdir = '/moira/dcm/tsm';
16 $dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira")
19 $sth0 = $dbh->prepare("SELECT l.list_id, m.name " .
20 "FROM list l, machine m, serverhosts sh " .
21 "WHERE sh.value3 = l.name AND sh.service = 'TSM' " .
22 "AND m.mach_id = sh.mach_id") || exit $MR_DBMS_ERR;
25 while (($root_list_id, $hostname) = $sth0->fetchrow_array) {
26 open(OUT, ">$outdir/$hostname");
28 $sth = $dbh->prepare("SELECT l.name, l.gid FROM list l " .
29 "WHERE l.list_id = " .
30 $dbh->quote($root_list_id)) ||
34 while (($name, $gid) = $sth->fetchrow_array) {
41 $sth = $dbh->prepare("SELECT u.login FROM users u, imembers i " .
42 "WHERE i.list_id = " . $dbh->quote($root_list_id) .
44 "AND i.member_type = 'USER' " .
45 "AND u.users_id = i.member_id") || exit $MR_DBMS_ERR;
48 while (($login) = $sth->fetchrow_array) {
49 $row = "$maybecomma$login";
59 $sth = $dbh->prepare("SELECT l.name, l.gid FROM list l, imembers i " .
60 "WHERE i.list_id = " . $dbh->quote($root_list_id) .
61 "AND i.member_type = 'LIST' " .
62 "AND i.member_id = l.list_id AND i.direct = 1 " .
63 "AND l.grouplist = 1 ORDER BY l.name") || exit $MR_DBMS_ERR;
66 while (($name, $gid) = $sth->fetchrow_array) {
67 $sth2 = $dbh->prepare("SELECT UNIQUE i.member_type, i.member_id " .
68 "FROM imembers i, list l " .
69 "WHERE l.name = " . $dbh->quote($name) .
70 "AND i.list_id = l.list_id " .
71 "AND (i.member_type = 'USER' " .
72 "OR i.member_type = 'STRING')") ||
81 while (($type, $id) = $sth2->fetchrow_array) {
82 if ($type eq "USER") {
83 ($member) = $dbh->selectrow_array("SELECT login FROM users " .
88 elsif ($type eq "STRING") {
89 ($member) = $dbh->selectrow_array("SELECT string " .
91 "WHERE string_id = " .
95 $row = "$maybecomma$member";