This file is indexed.

/usr/share/arc/NGldifPrinter.pm is in nordugrid-arc-arex 5.4.2-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
package NGldifPrinter;

use strict;
use base 'LdifPrinter';

use POSIX;

sub new {
    my ($this, $handle, $ttl) = @_;
    my $self = $this->SUPER::new($handle);
    my $now = time;
    $self->{validfrom} = strftime("%Y%m%d%H%M%SZ", gmtime($now));
    $self->{validto} = strftime("%Y%m%d%H%M%SZ", gmtime($now + $ttl));
    return $self;
}

#
# Print attributes
#

sub beginGroup {
    my ($self, $name) = @_;
    $self->begin('nordugrid-info-group-name' => $name);
    $self->MdsAttributes();
    $self->attribute(objectClass => 'nordugrid-info-group');
    $self->attribute('nordugrid-info-group-name' => $name);
}

sub MdsAttributes {
    my ($self) = @_;
    $self->attribute(objectClass => 'Mds');
    $self->attribute('Mds-validfrom' => $self->{validfrom});
    $self->attribute('Mds-validto' => $self->{validto});
}

sub clusterAttributes {
    my ($self, $data) = @_;
    $self->MdsAttributes();
    $self->attribute(objectClass => 'nordugrid-cluster');
    $self->attributes($data, 'nordugrid-cluster-', qw( name
                                                       aliasname
                                                       contactstring
                                                       support
                                                       lrms-type
                                                       lrms-version
                                                       lrms-config
                                                       architecture
                                                       opsys
                                                       homogeneity
                                                       nodecpu
                                                       nodememory
                                                       totalcpus
                                                       cpudistribution
                                                       sessiondir-free
                                                       sessiondir-total
                                                       cache-free
                                                       cache-total
                                                       runtimeenvironment
                                                       localse
                                                       middleware
                                                       totaljobs
                                                       usedcpus
                                                       queuedjobs
                                                       location
                                                       owner
                                                       issuerca
                                                       nodeaccess
                                                       comment
                                                       interactive-contactstring
                                                       benchmark
                                                       sessiondir-lifetime
                                                       prelrmsqueued
                                                       issuerca-hash
                                                       trustedca
                                                       acl
                                                       credentialexpirationtime ));
}

sub queueAttributes {
    my ($self, $data) = @_;
    $self->MdsAttributes();
    $self->attribute(objectClass => 'nordugrid-queue');
    $self->attributes($data, 'nordugrid-queue-', qw( name
                                                     status
                                                     running
                                                     queued
                                                     maxrunning
                                                     maxqueuable
                                                     maxuserrun
                                                     maxcputime
                                                     mincputime
                                                     defaultcputime
                                                     schedulingpolicy
                                                     totalcpus
                                                     nodecpu
                                                     nodememory
                                                     architecture
                                                     opsys
                                                     gridrunning
                                                     gridqueued
                                                     comment
                                                     benchmark
                                                     homogeneity
                                                     prelrmsqueued
                                                     localqueued
                                                     maxwalltime
                                                     minwalltime
                                                     defaultwalltime
                                                     maxtotalcputime ));
}

sub jobAttributes {
    my ($self, $data) = @_;
    $self->MdsAttributes();
    $self->attribute(objectClass => 'nordugrid-job');
    $self->attributes($data, 'nordugrid-job-', qw( globalid
                                                   globalowner
                                                   execcluster
                                                   execqueue
                                                   stdout
                                                   stderr
                                                   stdin
                                                   reqcputime
                                                   status
                                                   queuerank
                                                   comment
                                                   submissionui
                                                   submissiontime
                                                   usedcputime
                                                   usedwalltime
                                                   sessiondirerasetime
                                                   usedmem
                                                   errors
                                                   jobname
                                                   runtimeenvironment
                                                   cpucount
                                                   executionnodes
                                                   gmlog
                                                   clientsoftware
                                                   proxyexpirationtime
                                                   completiontime
                                                   exitcode
                                                   rerunable
                                                   reqwalltime ));
}

sub userAttributes {
    my ($self, $data) = @_;
    $self->MdsAttributes();
    $self->attribute(objectClass => 'nordugrid-authuser');
    $self->attributes($data, 'nordugrid-authuser-', qw( name sn freecpus diskspace queuelength ));
}


#
# Follow hierarchy
#

sub jobs {
    LdifPrinter::Entries(@_, 'nordugrid-job-', 'globalid', \&jobAttributes);
}

sub users {
    LdifPrinter::Entries(@_, 'nordugrid-authuser-', 'name', \&userAttributes);
}

sub queues {
    LdifPrinter::Entries(@_, 'nordugrid-queue-', 'name', \&queueAttributes, sub {
        my ($self, $data) = @_;
        $self->beginGroup('jobs');
        $self->jobs($data->{jobs});
        $self->end();
        $self->beginGroup('users');
        $self->users($data->{users});
        $self->end();
    });
}

sub cluster {
    LdifPrinter::Entry(@_, 'nordugrid-cluster-', 'name', \&clusterAttributes, sub {
        my ($self, $data) = @_;
        $self->queues($data->{queues});
    });
}

sub Top {
    my ($self, $data) = @_;
    $self->begin('o' => "grid");
    $self->begin('Mds-Vo-name' => "local");
    $self->cluster($data);
}

1;