3 =head1 NAME $RCSfile: Server.pm,v $
5 Object oriented interface to a Clearcase Server
13 Andrew DeFaria <Andrew@ClearSCM.com>
21 Sat Dec 18 09:51:15 EST 2010
25 $Date: 2011/01/02 04:59:36 $
31 Provides access to information about a Clearcase Server.
35 This module implements an object oriented interface to a Clearcase
40 The following routines are exported:
44 package Clearcase::Server;
55 Construct a new Clearcase View object. Note that not all members are
56 initially populated because doing so would be time consuming. Such
57 member variables will be expanded when accessed.
61 =for html <blockquote>
67 View tag to be instantiated. You can use either an object oriented call
68 (i.e. my $view = new Clearcase::View (tag => 'my_new_view')) or the
69 normal call (i.e. my $vob = new Clearcase::View ('my_new_view')). You
70 can also instantiate a new view by supplying a tag and then later
71 calling the create method.
75 =for html </blockquote>
79 =for html <blockquote>
83 =item Clearcase View object
87 =for html </blockquote>
92 my ($class, $name) = @_;
94 my $self = bless { name => $name }, $class;
96 $self->updateServerInfo($name);
104 return $self->{name};
110 return $self->{ccVer};
116 return $self->{osVer};
122 return $self->{hardware};
128 return $self->{licenseHost};
131 sub registryHost () {
134 return $self->{registryHost};
137 sub registryRegion () {
140 return $self->{registryRegion};
143 sub mvfsBlocksPerDirectory () {
146 return $self->{mvfsBlocksPerDirectory};
147 } # mvfsBlocksPerDirectory
149 sub mvfsFreeMnodesCleartext() {
152 return $self->{mvfsFreeMnodesCleartext};
153 } # mvfsFreeMnodesCleartext
155 sub mvfsDirectoryNames () {
158 return $self->{mvfsDirectoryNames};
159 } # mvfsDirectoryNames
161 sub mvfsFileNames () {
164 return $self->{mvfsFileNames};
167 sub mvfsFreeMnodes () {
170 return $self->{mvfsFreeMnodes};
173 sub mvfsInitialMnodeTableSize () {
176 return $self->{mvfsInitialMnodeTableSize};
177 } # mvfsInitialMnodeTableSize
179 sub mvfsMinCleartextMnodes () {
182 return $self->{mvfsMinCleartextMnodes};
183 } # mvfsMinCleartextMnodes
185 sub mvfsMinFreeMnodes () {
188 return $self->{mvfsMinFreeMnodes};
189 } # mvfsMinFreeMnodes
191 sub mvfsNamesNotFound () {
194 return $self->{mvfsNamesNotFound};
195 } # mvfsNamesNotFound
197 sub mvfsRPCHandles () {
200 return $self->{mvfsRPCHandles};
203 sub interopRegion () {
206 return $self->{interopRegion};
209 sub scalingFactor () {
212 return $self->{scalingFactor};
215 sub cleartextIdleLifetime () {
218 return $self->{cleartextIdleLifetime};
219 } # cleartextIdleLifetime
221 sub vobHashTableSize () {
224 return $self->{vobHashTableSize};
227 sub cleartextHashTableSize () {
230 return $self->{cleartextHashTableSize};
231 } # cleartextHashTableSize
233 sub dncHashTableSize () {
236 return $self->{dncHashTableSize};
239 sub threadHashTableSize () {
242 return $self->{threadHashTableSize};
243 } # threadHashTableSize
245 sub processHashTableSize () {
248 return $self->{processHashTableSize};
249 } # processHashTableSize
251 sub updateServerInfo($) {
252 my ($self, $host) = @_;
254 my ($status, @output) = $Clearcase::CC->execute(
255 "hostinfo -long -properties -full $host"
259 if (/Product: ClearCase (.*)/) {
261 } elsif (/Operating system: (.*)/) {
263 } elsif (/Hardware type: (.*)/) {
264 $self->{hardware} = $1;
265 } elsif (/License host: (.*)/) {
266 $self->{licenseHost} = $1;
267 } elsif (/Registry host: (.*)/) {
268 $self->{registryHost} = $1;
269 } elsif (/Registry region: (.*)/) {
270 $self->{registryRegion} = $1;
271 } elsif (/Blocks per directory: (.*)/) {
272 $self->{mvfsBlocksPerDirectory} = $1;
273 } elsif (/Free mnodes for cleartext: (.*)/) {
274 $self->{mvfsFreeMnodesCleartext} = $1;
275 } elsif (/Directory names: (.*)/) {
276 $self->{mvfsDirectoryNames} = $1;
277 } elsif (/File names: (.*)/) {
278 $self->{mvfsFileNames} = $1;
279 } elsif (/Free mnodes: (.*)/) {
280 $self->{mvfsFreeMnodes} = $1;
281 } elsif (/Initial mnode table size: (.*)/) {
282 $self->{mvfsInitialMnodeTableSize} = $1;
283 } elsif (/Minimum free mnodes for cleartext: (.*)/) {
284 $self->{mvfsMinCleartextMnodes} = $1;
285 } elsif (/Mimimum free mnodes: (.*)/) {
286 $self->{mvfsMinFreeMnodes} = $1;
287 } elsif (/Names not found: (.*)/) {
288 $self->{mvfsNamesNotFound} = $1;
289 } elsif (/RPC handles: (.*)/) {
290 $self->{mvfsRPCHandles} = $1;
291 } elsif (/Scaling factor to initialize MVFS cache sizes: (.*)/) {
292 $self->{scalingFactor} = $1;
293 } elsif (/Cleartext idle lifetime: (.*)/) {
294 $self->{cleartextIdleLifetime} = $1;
295 } elsif (/VOB hash table size: (.*)/) {
296 $self->{vobHashTableSize} = $1;
297 } elsif (/Cleartext hash table size: (.*)/) {
298 $self->{cleartextHashTableSize} = $1;
299 } elsif (/Thread hash table size: (.*)/) {
300 $self->{threadHashTableSize} = $1;
301 } elsif (/DNC hash table size: (.*)/) {
302 $self->{dncHashTableSize} = $1;
303 } elsif (/Process hash table size: (.*)/) {
304 $self->{processHashTableSize} = $1;
317 =for html <p><a href="/php/scm_man.php?file=lib/Clearcase.pm">Clearcase</a></p>
319 =head2 INCOMPATABILITIES
323 =head2 BUGS AND LIMITATIONS
325 There are no known bugs in this module.
327 Please report problems to Andrew DeFaria <Andrew@ClearSCM.com>.
329 =head2 LICENSE AND COPYRIGHT
331 Copyright (c) 2007, ClearSCM, Inc. All rights reserved.