File Coverage

blib/lib/Compellent/CompCU.pm
Criterion Covered Total %
statement 24 511 4.7
branch 0 20 0.0
condition n/a
subroutine 8 75 10.6
pod 6 67 8.9
total 38 673 5.6


line stmt bran cond sub pod time code
1             =begin lip
2              
3             =cut
4              
5             package Compellent::CompCU;
6              
7             =head2 Includes
8              
9             =cut
10              
11 1     1   44517 use 5.008009;
  1         4  
  1         40  
12 1     1   5 use strict;
  1         2  
  1         41  
13 1     1   4 use warnings;
  1         6  
  1         33  
14 1     1   4363 use Lip::Pod;
  1         2756  
  1         55  
15 1     1   1463 use IPC::Cmd qw(can_run run run_forked);
  1         94205  
  1         76  
16              
17 1     1   14 use constant FIRST => 9;#first line of output (after the headers) for most commands is 9
  1         2  
  1         65  
18 1     1   5 use constant FIRST_SHOW => 10;#For 'show' commands the irst line of output is 10
  1         3  
  1         41  
19 1     1   5 use constant FOOTER_LENGTH => 3;#if the command is successful then it will have 3 lines at the end of the output
  1         1  
  1         8302  
20              
21             =head2 Exported Symbols
22              
23             =cut
24              
25             require Exporter;
26             our @ISA = qw(Exporter);
27              
28             our @EXPORT_OK = qw();
29             our $VERSION = '0.06';
30              
31             =head2 Subroutines
32              
33             All subroutines (except for C, C, and C which
34             arenE<0x0027>t for public consumption anyway) take an array reference as an
35             argument. See each subroutines documentation for details on return values.
36              
37             =cut
38              
39             =head3 new()
40              
41             Constructor. Creates the object and sets some default attribute values.
42              
43             =cut
44              
45             sub new{
46 0     0 1   my ($pkg,$attributes)=@_;
47              
48 0           my $self={};
49 0           $self->{host}="";
50 0           $self->{user}="";
51 0           $self->{password}="";
52 0           $self->{java_path}="java";#assumes is somewhere in $PATH
53 0           $self->{java_args}="-client";
54 0           $self->{compcu_path}="./CompCU.jar";#default to being in the cwd
55              
56 0           bless($self,$pkg);
57 0           foreach my $field (keys %$self){
58 0 0         if(exists $attributes->{$field}){
59 0           $self->{$field}=$attributes->{$field};
60             }
61             }
62 0 0         can_run("$self->{java_path}") or die 'java not found';
63 0           $self->{command}="$self->{java_path} $self->{java_args} -jar $self->{compcu_path} -c \"COMMAND\" -host $self->{host} -user $self->{user} -password $self->{password}";
64 0           return $self;
65             }
66              
67             =head3 alert acknowledge
68              
69             Sets the alert as having been acknowledged. Doing this indicates to Storage
70             Center that you are aware of the alert message.
71              
72             =over 8
73              
74             Takes three required parameters and one optional parameters.
75              
76             =item *
77              
78             controller - An integer specifying the controller for the alert.
79              
80             =item *
81              
82             index - An integer specifying the index of the alert.
83              
84             =item *
85              
86             success - A scalar reference which will be either set to true or false based on
87             the success/failure of the command.
88              
89             =item *
90              
91             output - Optional. A array reference to hold the CompCU output.
92              
93             =back 8
94              
95             =cut
96              
97             sub alert_acknowledge{
98 0     0 0   my $self=shift;
99 0           my $arguments=shift;
100 0           my @command_parameters=qw(controller index);
101 0           my $c=$self->{command};
102 0           my $s="alert acknowledge".build_command($arguments,\@command_parameters);
103 0           $c=~s/COMMAND/$s/;
104 0           execute($c,$arguments->{success},$arguments->{output});
105             }
106              
107             =head3 alert show
108              
109             Retrieves Storage Center alerts.
110              
111             =over 8
112              
113             Takes 17 parameters. Only two are required.
114              
115             =item *
116              
117             success - A scalar reference which will be either set to true or false based on
118             the success/failure of the command.
119              
120             =item *
121              
122             acknowledged - Optional. A string to specify acknowledgement status on which to filter.
123              
124             =item *
125              
126             alert_type - Optional. A string to specify the type of alert on which to filter.
127              
128             =item *
129              
130             category - Optional. A string to specify an alert category on which to filter.
131              
132             =item *
133              
134             controller - Optional. An integer to specify the controller index on which to filter.
135              
136             =item *
137              
138             count - Optional. An integer to specify the alert count(number times generated) on which
139             to filter.
140              
141             =item *
142              
143             csv - Optional. A string to specify a filename in which to save csv formatted output.
144              
145             =item *
146              
147             date_cleared - Optional. A string to specify a cleared date and time on which to filter.
148              
149             =item *
150              
151             date_created - Optional. A string to specify a creation date and time on which to filter.
152              
153             =item *
154              
155             index - Optional. An integer to specify an alert index on which to filter.
156              
157             =item *
158              
159             message - Optional. A string to specify an alert message on which to filter.
160              
161             =item *
162              
163             object_name - Optional. A string to specify an object name on which to filter.
164              
165             =item *
166              
167             reference_number - Optional. A string to specify a reference number on which to filter.
168              
169             =item *
170              
171             status - Optional. A string to specify an alert status on which to filter.
172              
173             =item *
174              
175             txt - Optional. A string to specify a filename in which to save output.
176              
177             =item *
178              
179             xml - Optional. A string to specify a filename in which to save xml formatted output.
180              
181             =item *
182              
183             output - A array reference to hold the CompCU output. Required for this 'show' command
184              
185             =back 8
186              
187             =cut
188              
189             sub alert_show{
190 0     0 0   my $self=shift;
191 0           my $arguments=shift;
192 0           my @command_parameters=qw(acknowledged alert_type category controller count csv date_cleared date_created index message object_name reference_number status txt xml);
193 0           my $s="alert show".build_command($arguments,\@command_parameters);
194 0           my $c=$self->{command};
195 0           $c=~s/COMMAND/$s/;
196 0           execute_show($c,$arguments->{success},$arguments->{output});
197             }
198              
199             =head3 cache modify
200              
201             Enables read/write of the StorageCenter cache.
202              
203             =over 8
204              
205             Takes four parameters. One is purely optional and only one of the read/write
206             parameters is required at a time.
207              
208             =item *
209              
210             readcache - A String or Integer indicating "true"(or 1) or "false"(or 0) to
211             enable/disable the global read cache.
212              
213             =item *
214              
215             writecache - A String or Integer indicating "true"(or 1) or "false"(or 0) to
216             enable/disable the global read cache.
217              
218             =item *
219              
220             success - A scalar reference which will be either set to true or false based on
221             the success/failure of the command.
222              
223             =item *
224              
225             output - Optional. A array reference to hold the CompCU output.
226              
227             =back 8
228              
229             =cut
230              
231             sub cache_modify{
232 0     0 0   my $self=shift;
233 0           my $arguments=shift;
234 0           my @command_parameters=qw(readcache writecache);
235 0           my $c=$self->{command};
236 0           my $s="cache modify".build_command($arguments,\@command_parameters);
237 0           $c=~s/COMMAND/$s/;
238 0           execute($c,$arguments->{success},$arguments->{output});
239             }
240              
241             =head3 cache show
242              
243             Shows the StorageCenter cache settings.
244              
245             =over 8
246              
247             Takes seven parameters. Five are optional.
248              
249             =item *
250              
251             csv - Optional. A String giving the filename in which to save csv formatted output.
252              
253             =item *
254              
255             readcache - Optional. A String specifying the readcache setting on which to filter.
256              
257             =item *
258              
259             txt - Optional. A String giving the filename in which to save output.
260              
261             =item *
262              
263             writecache - Optional. A String specifying the writecache setting on which to filter.
264              
265             =item *
266              
267             xml - Optional. A String giving the filename in which to save xml formatted output.
268              
269             =item *
270              
271             success - A scalar reference which will be either set to true or false based on
272             the success/failure of the command.
273              
274             =item *
275              
276             output - A array reference to hold the CompCU output.
277              
278             =back 8
279              
280             =cut
281              
282             sub cache_show{
283 0     0 0   my $self=shift;
284 0           my $arguments=shift;
285 0           my @command_parameters=qw(csv readcache txt writecache xml);
286 0           my $s="cache show".build_command($arguments,\@command_parameters);
287 0           my $c=$self->{command};
288 0           $c=~s/COMMAND/$s/;
289 0           execute_show($c,$arguments->{success},$arguments->{output});
290             }
291              
292             =head3 cmm copy
293              
294             Creates a new CMM copy operation in StorageCenter.
295              
296             =over 8
297              
298             Takes six parameters. Three are required.
299              
300             =item *
301              
302             copyhistory - Optional. String indicating "true" or "false" specifying whether the Replay history
303             of the source volume is copied to the destination volume.
304              
305             =item *
306              
307             destvolumeindex - Integer specifying the index of teh detsination volume.
308              
309             =item *
310              
311             priority - Optional. String indicating "High", "Medium", or "Low".
312              
313             =item *
314              
315             sourcevolumeindex - Integer speciyfing the index of the source volume.
316              
317             =item *
318              
319             success - A scalar reference which will be either set to true or false based on
320             the success/failure of the command.
321              
322             =item *
323              
324             output - Optional. A array reference to hold the CompCU output.
325              
326             =back 8
327              
328             =cut
329              
330             sub cmm_copy{
331 0     0 0   my $self=shift;
332 0           my $arguments=shift;
333 0           my @command_parameters=qw(copyhistory destvolumeindex priority sourcevolumeindex);
334 0           my $s="cmm copy".build_command($arguments,\@command_parameters);
335 0           my $c=$self->{command};
336 0           $c=~s/COMMAND/$s/;
337 0           execute($c,$arguments->{success},$arguments->{output});
338             }
339              
340             =head3 cmm delete
341              
342             Aborts a StorageCenter cmm operation.
343              
344             =over 8
345              
346             Takes three parameters. Two are required.
347              
348             =item *
349              
350             index - An integer specifying the index of the cmm operation to abort.
351              
352             =item *
353              
354             success - A scalar reference which will be either set to true or false based on
355             the success/failure of the command.
356              
357             =item *
358              
359             output - Optional. A array reference to hold the CompCU output.
360              
361             =back 8
362              
363             =cut
364              
365             sub cmm_delete{
366 0     0 0   my $self=shift;
367 0           my $arguments=shift;
368 0           my @command_parameters=qw(index);
369 0           my $s="cmm delete".build_command($arguments,\@command_parameters);
370 0           my $c=$self->{command};
371 0           $c=~s/COMMAND/$s/;
372 0           execute($c,$arguments->{success},$arguments->{output});
373             }
374              
375             =head3 cmm migrate
376              
377             Creates a cmm migrate operation.
378              
379             =over 8
380              
381             Takes eight parameters. Three are requred.
382              
383             =item *
384              
385             copyhistory - Optional. String indicating "true" or "false" specifying whether the Replay
386             history of the source volumeis copied to the destination volume.
387              
388             deletesource - Optional. String indicating "true" or "false" specifying whether to delete the
389             source after igration.
390              
391             destvolumeindex - Integer specifying the index of the destination volume.
392              
393             priority - Optional. String indicating "High", Medium", or "Low" priority.
394              
395             reversemirror - Optional. String indicating "true" or "false" specifying
396             whether to mirror back to the source volume.
397              
398             sourcevolumeindex - Integer specifying the index of teh source volume.
399              
400             =item *
401              
402             success - A scalar reference which will be either set to true or false based on
403             the success/failure of the command.
404              
405             =item *
406              
407             output - Optional. A array reference to hold the CompCU output.
408              
409             =back 8
410              
411             =cut
412              
413             sub cmm_migrate{
414 0     0 0   my $self=shift;
415 0           my $arguments=shift;
416 0           my @command_parameters=qw(destvolumeindex sourcevolumeindex);
417 0           my $s="cmm migrate".build_command($arguments,\@command_parameters);
418 0           my $c=$self->{command};
419 0           $c=~s/COMMAND/$s/;
420 0           execute($c,$arguments->{success},$arguments->{output});
421             }
422              
423             =head3 cmm mirror
424              
425             Creates a cmm mirror operation in StorageCenter.
426              
427             =over 8
428              
429             Takes six parameters. Three are optional.
430              
431             =item *
432              
433             copyhistory - Optional. String indicating "true" or "false". Specifies whether
434             the Replay history of the source volume is copie to the destinatin volume.
435              
436             destvolumeindex - Integer specifying the index of the destination volume.
437              
438             priority - Optional. String indicating "High", "Medium", or "Low".
439              
440             sourcevolumeindex - Integer specifying the index of the source volume.
441              
442             =item *
443              
444             success - A scalar reference which will be either set to true or false based on
445             the success/failure of the command.
446              
447             =item *
448              
449             output - Optional. A array reference to hold the CompCU output.
450              
451             =back 8
452              
453             =cut
454              
455             sub cmm_mirror{
456 0     0 0   my $self=shift;
457 0           my $arguments=shift;
458 0           my @command_parameters=qw(destvolumeindex sourcevolumeindex);
459 0           my $s="cmm mirror".build_command($arguments,\@command_parameters);
460 0           my $c=$self->{command};
461 0           $c=~s/COMMAND/$s/;
462 0           execute($c,$arguments->{success},$arguments->{output});
463             }
464              
465             =head3 cmm modify
466              
467             Modifies the priority of a cmm operation.
468              
469             =over 8
470              
471             Takes four parameters. Only one is optional.
472              
473             =item *
474              
475             index - Integer specifying the index of the cmm operation.
476              
477             =item *
478              
479             priority - String indicating "High", Medium", or "Low".
480              
481             =item *
482              
483             success - A scalar reference which will be either set to true or false based on
484             the success/failure of the command.
485              
486             =item *
487              
488             output - Optional. A array reference to hold the CompCU output.
489              
490             =back 8
491              
492             =cut
493              
494             sub cmm_modify{
495 0     0 0   my $self=shift;
496 0           my $arguments=shift;
497 0           my @command_parameters=qw(index priority);
498 0           my $s="cmm modify".build_command($arguments,\@command_parameters);
499 0           my $c=$self->{command};
500 0           $c=~s/COMMAND/$s/;
501 0           execute($c,$arguments->{success},$arguments->{output});
502             }
503              
504             =head3 cmm show
505              
506             Shows the attributes of cmm operations.
507              
508             =over 8
509              
510             Takes 19 parameters. Only two are required.
511              
512             =item *
513              
514             copy_history - Optional. String specifying a copy history on which to filter.
515              
516             =item *
517              
518             csv - Optional. String indicating a filename to save csv formatted output.
519              
520             =item *
521              
522             current_position - Optional. String indicating the current position of a cmm operation on which to filter.
523              
524             =item *
525              
526             current_replay - Optional. String Specifying a cmm current Replay being copied on which to filter.
527              
528             =item *
529              
530             delete_source - Optional. String specifying the delete source on which to filter.
531              
532             =item *
533              
534             destination_volume_index - Optional. Integer specifying a destination volume on which to filter.
535              
536             =item *
537              
538             destination_volume_name - Optional. String specifying the destination volume name on which to filter.
539              
540             =item *
541              
542             index - Optional. String specifying the index of a cmm operation on which to filter.
543              
544             =item *
545              
546             priority - Optional. String indicating a priority (i.e. "High", Medium", or "Low") on which to filter.
547              
548             =item *
549              
550             reverse_mirror - Optional. String specifying the reverse mirror value on which to filter.
551              
552             =item *
553              
554             source_volume_index - Optional. Integer specifying a source volume on which to filter.
555              
556             =item *
557              
558             source_volume_name - Optional. String specifying the source volume name on which to filter.
559              
560             =item *
561              
562             state - Optional. String specifying state(i.e. "Down", "Running", or "Synced") of the cmm operation on which to filter.
563              
564             =item *
565              
566             total_copy_size - Optional. Specifies the total size of a cmm operation on which to filter the display.
567              
568             =item *
569              
570             txt - Optional. String indicating a filename in which to save output.
571              
572             =item *
573              
574             type - Optional. String specifying the type (i.e. "Copy", "Migrate", or "Mirror") of cmm operation on which to filter the display.
575              
576             =item *
577              
578             xml - Optional. String indicating a filename in which to save xml formatted output.
579              
580             =item *
581              
582             success - A scalar reference which will be either set to true or false based on
583             the success/failure of the command.
584              
585             =item *
586              
587             output - A array reference to hold the CompCU output.
588              
589             =back 8
590              
591             =cut
592              
593             sub cmm_show{
594 0     0 0   my $self=shift;
595 0           my $arguments=shift;
596 0           my @command_parameters=qw(copy_history csv current_position current_replay delete_source destination_volume_index destination_volume_name index priority reverse_mirror source_volume_index source_volume_name state total_copy_size txt type xml);
597 0           my $s="cmm show".build_command($arguments,\@command_parameters);
598 0           my $c=$self->{command};
599 0           $c=~s/COMMAND/$s/;
600 0           execute_show($c,$arguments->{success},$arguments->{output});
601             }
602              
603             =head3 consistencygroup show
604              
605             Shows the grups of Replays that are created with and associated with a consistency group.
606              
607             =over 8
608              
609             Takes 12 parameters. Two are required.
610              
611             =item *
612              
613             csv - Optional. String specifying a filename in which to save csv formatted output.
614              
615             =item *
616              
617             expectedgroupsize - Optional. Integer indicating the number of Replays on which to filter.
618              
619             =item *
620              
621             expire - Optional. String specifying a timestamp on which to filter Replays.
622              
623             =item *
624              
625             freeze - Optional. String specifying a freeze timestamp on which to filter.
626              
627             =item *
628              
629             groupsize - Optional. Integer indicating the number of Replays in the consistency group on which to filter.
630              
631             =item *
632              
633             index - Optional. Specifies the index of groups of Replays on which to filter.
634              
635             =item *
636              
637             name - Optional. String specifying a Replay name on which to filter.
638              
639             =item *
640              
641             txt - Optional. String indicating a filename on whcih to save output.
642              
643             =item *
644              
645             writeholdduration - Optional. String indicating how longthe writes were held when creating the consistency group.
646              
647             =item *
648              
649             xml - Optional. String indicating a filename in which to store xml formatted output.
650              
651             =item *
652              
653             success - A scalar reference which will be either set to true or false based on
654             the success/failure of the command.
655              
656             =item *
657              
658             output - A array reference to hold the CompCU output.
659              
660             =back 8
661              
662             =cut
663              
664             sub consistencygroup_show{
665 0     0 0   my $self=shift;
666 0           my $arguments=shift;
667 0           my @command_parameters=qw(csv expectedgroupsize expire freeze groupsize index name txt writeholdduration xml);
668 0           my $s="consistencygroup show".build_command($arguments,\@command_parameters);
669 0           my $c=$self->{command};
670 0           $c=~s/COMMAND/$s/;
671 0           execute_show($c,$arguments->{success},$arguments->{output});
672             }
673              
674             =head3 controller show
675              
676             Shows configuration informatin for each controller.
677              
678             =over 8
679              
680             Takes 20 parameters. Two are required.
681              
682             =item *
683              
684             controllerindex - Optional. Integer specifying a controller index on which to filter.
685              
686             =item *
687              
688             controlleripaddress - Optional. String indicating the IP address of the controller on which to filter.
689              
690             =item *
691              
692             controlleripgateway - Optional. String indicating the network gateway on which to filter.
693              
694             =item *
695              
696             controlleripmask - Optional. String indicating a netmask on which to filter.
697              
698             =item *
699              
700             csv - Optional. String indicating a filename in which to save csv formatted output.
701              
702             =item *
703              
704             domainname - Optional. String specifying a domain name on which to filter.
705              
706             =item *
707              
708             ipciaddress - Optional. String indicating a controller IPC port on which to filter.
709              
710             =item *
711              
712             ipcigateway - Optional. String indicating a controller IPC gateway on which to filter.
713              
714             =item *
715              
716             ipcimask - Optional. String indicating a controller IPC netmask on which to filter.
717              
718             =item *
719              
720             lastboottime - Optional. String indicating a boot timestamp on which to filter.
721              
722             =item *
723              
724             leader - Optional. String Indicating if the controler is the current leader. Values can be "Yes" or "No".
725              
726             =item *
727              
728             localportcondition - Optional. String specifying a balanced status on whcih to filter. Values can be "Balanced" or "Unbalanced".
729              
730             =item *
731              
732             name - Optional. String indicating a controller name on whcih to filter.
733              
734             =item *
735              
736             primarydns - Optional. String indicating an ip address of the primary DNS on which to filter.
737              
738             =item *
739              
740             status - Optional. String indicating a controller status on which tol filter. Values can be "Down" or "Up".
741              
742             =item *
743              
744             txt - Optional. String indicating a filename in which to save output.
745              
746             =item *
747              
748             version - Optional. String indicating the four part controller version on which to filter.
749              
750             =item *
751              
752             xml - Optional. String indicating a filename in whcih to save xml formatted output.
753              
754             =item *
755              
756             success - A scalar reference which will be either set to true or false based on
757             the success/failure of the command.
758              
759             =item *
760              
761             output - A array reference to hold the CompCU output.
762              
763             =back 8
764              
765             =cut
766              
767             sub controller_show{
768 0     0 0   my $self=shift;
769 0           my $arguments=shift;
770 0           my @command_parameters=qw(controllerindex controlleripaddress controlleripgateway controlleripmask csv domainname ipciaddress ipcigateway ipcimask lastboottime leader localportcondition name primarydns status txt version xml);
771 0           my $s="controller show".build_command($arguments,\@command_parameters);
772 0           my $c=$self->{command};
773 0           $c=~s/COMMAND/$s/;
774 0           execute_show($c,$arguments->{success},$arguments->{output});
775             }
776              
777             =head3 diskfolder show
778              
779             Shows Storage Center disk folder information.
780              
781             =over 8
782              
783             Takes 14 parameters. Two are required.
784              
785             =item *
786              
787             allocatedspace - Optional. Integer indicating the allocated space on which to filter.
788              
789             =item *
790              
791             allocatedspaceblocks - Optional. Integer specifying (in blocks) the space on which to filter.
792              
793             =item *
794              
795             availablespaceblocks - Optional. Integer specifying (in blocks) the available space on which to filter.
796              
797             =item *
798              
799             csv - Optional. String indicating a filename in which to save csv formatted output.
800              
801             =item *
802              
803             index - Optional. Integer indicating the disk folder index on which filter.
804              
805             =item *
806              
807             name - Optional. String specifying the name of a disk folder on which to filter.
808              
809             =item *
810              
811             nummanaged - Optional. Integer specifying the number of managed disks in the disk folder in which to display.
812              
813             =item *
814              
815             numspare - Optional. Integer indicating the number of spare disks in the disk folder in which to filter.
816              
817             =item *
818              
819             numstoragetype - Optional. Integer specifying the number of storage types in which to filter.
820              
821             =item *
822              
823             totalavailablespace - Optional. Inetegr specifying the avalable space in which to filter.
824              
825             =item *
826              
827             txt - Optional. String indicating a filename in which to store output.
828              
829             =item *
830              
831             xml - Optional. String indicating a filename in which to save xml formatted output.
832              
833             =item *
834              
835             success - A scalar reference which will be either set to true or false based on
836             the success/failure of the command.
837              
838             =item *
839              
840             output - A array reference to hold the CompCU output.
841              
842             =back 8
843              
844             =cut
845              
846             sub diskfolder_show{
847 0     0 0   my $self=shift;
848 0           my $arguments=shift;
849 0           my @command_parameters=qw(allocatedspace allocatedspaceblocks availablespaceblocks csv index name nummanaged numspare numstoragetype totalavailablespace txt xml);
850 0           my $s="diskfolder show".build_command($arguments,\@command_parameters);
851 0           my $c=$self->{command};
852 0           $c=~s/COMMAND/$s/;
853 0           execute_show($c,$arguments->{success},$arguments->{output});
854             }
855              
856             =head3 mapping show
857              
858             Gets the volume mapping information from Storage Center
859              
860             =over 8
861              
862             Takes up to 14 parameters. Two are required.
863              
864             =item *
865              
866             csv - Optional. String indicating a filename to save csv formatted output.
867              
868             =item *
869              
870             deviceid - Optional. String giving a device id in which to filter.
871              
872             =item *
873              
874             localport - Optional. Specifies localport on which to filter.
875              
876             =item *
877              
878             lun - Optional. Integer specifying a LUN on which to filter.
879              
880             =item *
881              
882             remoteport - Optional. Integer. Specifies remoteport on which to filter.
883              
884             =item *
885              
886             serialnumber - Optional. String indicating the volume serial number on which to filter.
887              
888             =item *
889              
890             server - Optional. String indicating a server name on which to filter.
891              
892             =item *
893              
894             serverindex - Optional. Integer indicating the index of the server in which to filter.
895              
896             =item *
897              
898             txt - Optional. String indicating a filename in which to save output.
899              
900             =item *
901              
902             volume - Optional. String indicating a volume name on which to filter.
903              
904             =item *
905              
906             volumeindex - Optional. Integer indicating a volume index on which to filter.
907              
908             =item *
909              
910             xml - Optional. String indicating a filename in which to save xml formatted output.
911              
912             =item *
913              
914             success - A scalar reference which will be either set to true or false based on
915             the success/failure of the command.
916              
917             =item *
918              
919             output - A array reference to hold the CompCU output.
920              
921             =back 8
922              
923             =cut
924              
925             sub mapping_show{
926 0     0 0   my $self=shift;
927 0           my $arguments=shift;
928 0           my @command_parameters=qw(csv deviceid localport lun remoteport serialnumber server serverindex txt volume volumeindex xml);
929 0           my $s="mapping show".build_command($arguments,\@command_parameters);
930 0           my $c=$self->{command};
931 0           $c=~s/COMMAND/$s/;
932 0           execute_show($c,$arguments->{success},$arguments->{output});
933             }
934              
935             =head3 os show
936              
937             Retrieves OS information.
938              
939             =over 8
940              
941             Takes 10 parameters. Two are required.
942              
943             =item *
944              
945             csv - Optional. String indicating a filename in which to store csv formatted output.
946              
947             =item *
948              
949             index - Optional. Integer specifying the OS index on which to filter.
950              
951             =item *
952              
953             multipath - Optional. String. Indicates the OSs that support multiple paths for filtering purposes. Allowable values are "True" or "False".
954              
955             =item *
956              
957             name - Optional. String specifing the name of the OS on which to filter.
958              
959             =item *
960              
961             product - Optional. String specifying the OS product on which to filter.
962              
963             =item *
964              
965             txt - Optional. String indicating a filename in which to save output.
966              
967             =item *
968              
969             version - Optional. String indicating the OS version on which to filter.
970              
971             =item *
972              
973             xml - Optional. String indicating a filename in which to save xml formatted output.
974              
975             =item *
976              
977             success - A scalar reference which will be either set to true or false based on
978             the success/failure of the command.
979              
980             =item *
981              
982             output - A array reference to hold the CompCU output.
983              
984             =back 8
985              
986             =cut
987              
988             sub os_show{
989 0     0 0   my $self=shift;
990 0           my $arguments=shift;
991 0           my @command_parameters=qw(csv index multipath name product txt version xml);
992 0           my $s="os show".build_command($arguments,\@command_parameters);
993 0           my $c=$self->{command};
994 0           $c=~s/COMMAND/$s/;
995 0           execute_show($c,$arguments->{success},$arguments->{output});
996             }
997              
998             =head3 replay checkviews
999              
1000             Checks for and deletes expired views.
1001              
1002             =over 8
1003              
1004             Takes two parameters. One is optional.
1005              
1006             =item *
1007              
1008             success - A scalar reference which will be either set to true or false based on
1009             the success/failure of the command.
1010              
1011             =item *
1012              
1013             output - Optional. A array reference to hold the CompCU output.
1014              
1015             =back 8
1016              
1017             =cut
1018              
1019             sub replay_checkviews{
1020 0     0 0   my $self=shift;
1021 0           my $arguments=shift;
1022 0           my @command_parameters=qw();
1023 0           my $s="replay checkviews".build_command($arguments,\@command_parameters);
1024 0           my $c=$self->{command};
1025 0           $c=~s/COMMAND/$s/;
1026 0           execute($c,$arguments->{success},$arguments->{output});
1027             }
1028              
1029             =head3 replay create
1030              
1031             Creates a Replay of a volume. Optionally xreates and maps a view volume from the Replay.
1032              
1033             =over 8
1034              
1035             Takes 21 parameters. Only one of volumeindex, deviceid, serialnumber, or volume is strictly required.
1036             All other parameters, aside from the always required success parameter, are optional.
1037              
1038             =item *
1039              
1040             deviceid - String specifying the device id.
1041              
1042             =item *
1043              
1044             expire - Optional. Integer specifying the number of minutes after which the Replay expires.
1045              
1046             =item *
1047              
1048             folder - Optional. String specifying a folder for the volume.
1049              
1050             =item *
1051              
1052             folderindex - Optional. Integer indicating the folder index for the volume.
1053              
1054             =item *
1055              
1056             localport - Optional. String for specifying localport information.
1057              
1058             =item *
1059              
1060             lun - Optional. Integer for setting the logical unit number. Default is the first LUN.
1061              
1062             =item *
1063              
1064             move - Optional. Required if using the 'view' parameter, however. If used this
1065             parameter causes the Replay to be taken off the existing volume
1066             before making the new view volume the active view for the created Replay.
1067              
1068             =item *
1069              
1070             name - Optional. String for setting the Replay name.
1071              
1072             =item *
1073              
1074             nomovereplay - Optional. If the view volume created by the 'view' option already exists
1075             then makes the new view volume the active view for the created Replay without first
1076             taking a Replay of the existing view volume.
1077              
1078             =item *
1079              
1080             purge - Optional. Indicates that expired views should be permanently deleted. Default
1081             otherwise is to move to recycle bin.
1082              
1083             =item *
1084              
1085             readonly - Optional. Sets the Replay to be read only.
1086              
1087             =item *
1088              
1089             remoteport - Optional. String for setting the remote port name.
1090              
1091             =item *
1092              
1093             serialnumber - String for specifying the volume serial number.
1094              
1095             =item *
1096              
1097             server - Optional. Integer that specifies the server to map the view to.
1098              
1099             =item *
1100              
1101             singlepath - Optional. Indicates that only a single port can be used for mapping.
1102              
1103             =item *
1104              
1105             view - Optional. String that sets the volume on which the Replay is located.
1106              
1107             =item *
1108              
1109             viewexpire - Optional. Integer that sets the number of minutes to wait before unmapping and deleting an expire view.
1110              
1111             =item *
1112              
1113             volume - String that specifies the vlume on which to locate the replay.
1114              
1115             =item *
1116              
1117             volumeindex - Inetegr that specifes the index of the volume on which the Replay
1118             is to be located.
1119              
1120             =item *
1121              
1122             success - A scalar reference which will be either set to true or false based on
1123             the success/failure of the command.
1124              
1125             =item *
1126              
1127             output - Optional. A array reference to hold the CompCU output.
1128              
1129             =back 8
1130              
1131             =cut
1132              
1133             sub replay_create{
1134 0     0 0   my $self=shift;
1135 0           my $arguments=shift;
1136 0           my @command_parameters=qw(deviceid expire folder folderindex localport lun move name nomovereplay purge readonly remoteport serialnumber server singlepath view viewexpire volume volumeindex);
1137 0           my $s="replay create".build_command($arguments,\@command_parameters);
1138 0           my $c=$self->{command};
1139 0           $c=~s/COMMAND/$s/;
1140 0           execute($c,$arguments->{success},$arguments->{output});
1141             }
1142              
1143             =head3 replay createview
1144              
1145             Creates a view volume on an existing Replay. Optionally maps the new view volume
1146             to a server.
1147              
1148             =over 8
1149              
1150             Takes 23 parameters. Only one of index, volumeindex, deviceid, serialnumber, or volume is strictly required.
1151             All other parameters, aside from the always required success parameter, are optional.
1152              
1153             =item *
1154              
1155             boot - Optional. Sets the view volume on a Replay as a boot volume.
1156              
1157             =item *
1158              
1159             deviceid - String specifying the device id.
1160              
1161             =item *
1162              
1163             folder - Optional. String specifying a folder for the volume.
1164              
1165             =item *
1166              
1167             folderindex - Optional. Integer indicating the folder index for the volume.
1168              
1169             =item *
1170              
1171             index - Integer that specifies the Replay index.
1172              
1173             =item *
1174              
1175             last - Optional. Creates a view from the last frozen Replay.
1176              
1177             =item *
1178              
1179             localport - Optional. String for specifying localport information.
1180              
1181             =item *
1182              
1183             lun - Optional. Integer for setting the logical unit number. Default is the first LUN.
1184              
1185             =item *
1186              
1187             move - Optional. Required if using the 'view' parameter, however. If used this
1188             parameter causes the Replay to be taken off the existing volume
1189             before making the new view volume the active view for the created Replay.
1190              
1191             =item *
1192              
1193             name - Optional. String for setting the Replay name.
1194              
1195             =item *
1196              
1197             nomovereplay - Optional. If the view volume created by the 'view' option already exists
1198             then makes the new view volume the active view for the created Replay without first
1199             taking a Replay of the existing view volume.
1200              
1201             =item *
1202              
1203             purge - Optional. Indicates that expired views should be permanently deleted. Default
1204             otherwise is to move to recycle bin.
1205              
1206             =item *
1207              
1208             readonly - Optional. Sets the Replay to be read only.
1209              
1210             =item *
1211              
1212             remoteport - Optional. String for setting the remote port name.
1213              
1214             =item *
1215              
1216             serialnumber - String for specifying the volume serial number.
1217              
1218             =item *
1219              
1220             server - Optional. Integer that specifies the server to map the view to.
1221              
1222             =item *
1223              
1224             singlepath - Optional. Indicates that only a single port can be used for mapping.
1225              
1226             =item *
1227              
1228             view - Optional. String that sets the volume on which the Replay is located.
1229              
1230             =item *
1231              
1232             viewexpire - Optional. Integer that sets the number of minutes to wait before unmapping and deleting an expire view.
1233              
1234             =item *
1235              
1236             volume - String that specifies the vlume on which to locate the replay.
1237              
1238             =item *
1239              
1240             volumeindex - Inetegr that specifes the index of the volume on which the Replay
1241             is to be located.
1242              
1243             =item *
1244              
1245             success - A scalar reference which will be either set to true or false based on
1246             the success/failure of the command.
1247              
1248             =item *
1249              
1250             output - Optional. A array reference to hold the CompCU output.
1251              
1252             =back 8
1253              
1254             =cut
1255              
1256             sub replay_createview{
1257 0     0 0   my $self=shift;
1258 0           my $arguments=shift;
1259 0           my @command_parameters=qw(boot deviceid folder folderindex index last localport lun move name nomovereplay purge readonly remoteport serialnumber server singlepath view viewexpire volume volumeindex);
1260 0           my $s="replay createview".build_command($arguments,\@command_parameters);
1261 0           my $c=$self->{command};
1262 0           $c=~s/COMMAND/$s/;
1263 0           execute($c,$arguments->{success},$arguments->{output});
1264             }
1265              
1266             =head3 replay delete
1267              
1268             Deletes a specified Replay.
1269              
1270             =over 8
1271              
1272             Takes eight parameters. Only one of index, name, volume, deviceid, or serial number
1273             is strictly required. All the others, except the always required success parameter are optional.
1274              
1275             =item *
1276              
1277             deviceid - String specifying the volume's device id.
1278              
1279             =item *
1280              
1281             index - Integer specifying the Replay index.
1282              
1283             =item *
1284              
1285             name - Optional. String to set the Replay name.
1286              
1287             =item *
1288              
1289             serialnumber - Integer that specifies the volume serial number.
1290              
1291             =item *
1292              
1293             volume - Specifies the volume name on which the Replay is located.
1294              
1295             =item
1296              
1297             volumeindex - Optional. Integer to specify the volume where the Replay is located.
1298              
1299             =item *
1300              
1301             success - A scalar reference which will be either set to true or false based on
1302             the success/failure of the command.
1303              
1304             =item *
1305              
1306             output - Optional. A array reference to hold the CompCU output.
1307              
1308             =back 8
1309              
1310             =cut
1311              
1312             sub replay_delete{
1313 0     0 0   my $self=shift;
1314 0           my $arguments=shift;
1315 0           my @command_parameters=qw(deviceid index name serialnumber volume volumeindex);
1316 0           my $s="replay delete".build_command($arguments,\@command_parameters);
1317 0           my $c=$self->{command};
1318 0           $c=~s/COMMAND/$s/;
1319 0           execute($c,$arguments->{success},$arguments->{output});
1320             }
1321              
1322             =head3 replay show
1323              
1324             Retrieves Reaply information.
1325              
1326             =over 8
1327              
1328             Takes 12 parameters. Only two are required.
1329              
1330             =item *
1331              
1332             consistencygroup - Optional. String to provide the consistency group on which to filter.
1333              
1334             =item *
1335              
1336             csv - Optional. String that specifies the filename for storing csv formatted output.
1337              
1338             =item *
1339              
1340             expire - Optional. String that sets a Replay expiration timestamp on which to filter.
1341              
1342             =item *
1343              
1344             freeze - Optional. String that sets a Replay freeze timestamp on which to filter.
1345              
1346             =item *
1347              
1348             index - Optional. Integer to specify a Replay index on which to filter.
1349              
1350             =item *
1351              
1352             name - Optional. String that specifies the Replay name on which to filter.
1353              
1354             =item *
1355              
1356             txt - Optional. String that specifies a filename for storing output.
1357              
1358             =item *
1359              
1360             volume - Optional. String for setting a volume name on which to filter.
1361              
1362             =item *
1363              
1364             volumeindex - Optional. Integer for setting the volume index on which to filter.
1365              
1366             =item *
1367              
1368             xml - Optional. String that specifies the filename for storing xml formatted output.
1369              
1370             =item *
1371              
1372             success - A scalar reference which will be either set to true or false based on
1373             the success/failure of the command.
1374              
1375             =item *
1376              
1377             output - A array reference to hold the CompCU output.
1378              
1379             =back 8
1380              
1381             =cut
1382              
1383             sub replay_show{
1384 0     0 0   my $self=shift;
1385 0           my $arguments=shift;
1386 0           my @command_parameters=qw(consistencygroup csv expire freeze index name txt volume volumeindex xml);
1387 0           my $s="replay show".build_command($arguments,\@command_parameters);
1388 0           my $c=$self->{command};
1389 0           $c=~s/COMMAND/$s/;
1390 0           execute_show($c,$arguments->{success},$arguments->{output});
1391             }
1392              
1393             =head3 replayprofile createreplay
1394              
1395             Creates a Replay on all volumes in a Replay profile.
1396              
1397             =over 8
1398              
1399             Takes six parameters. Only one of index or name is strictly required (along with the always
1400             required success parameter).
1401              
1402             =item *
1403              
1404             expire - Optional. Integer which specifies the number of minutes after which the Replay profile expires.
1405              
1406             =item *
1407              
1408             index - Integer to set the index of the Replay profile.
1409              
1410             =item *
1411              
1412             name - String that sets the name of the Replay profile.
1413              
1414             =item *
1415              
1416             replayname - Optional. String to specify the name of the Replay.
1417              
1418             =item *
1419              
1420             success - A scalar reference which will be either set to true or false based on
1421             the success/failure of the command.
1422              
1423             =item *
1424              
1425             output - Optional. A array reference to hold the CompCU output.
1426              
1427             =back 8
1428              
1429             =cut
1430              
1431             sub replayprofile_createreplay{
1432 0     0 0   my $self=shift;
1433 0           my $arguments=shift;
1434 0           my @command_parameters=qw(expire index name replayname);
1435 0           my $s="replayprofile createreplay".build_command($arguments,\@command_parameters);
1436 0           my $c=$self->{command};
1437 0           $c=~s/COMMAND/$s/;
1438 0           execute($c,$arguments->{success},$arguments->{output});
1439             }
1440              
1441             =head3 replayprofile show
1442              
1443             Retrieves Replay profile information.
1444              
1445             =over 8
1446              
1447             Takes 11 parameters. Two are required.
1448              
1449             =item *
1450              
1451             csv - Optional. String that specifies the filename for storing csv formatted output.
1452              
1453             =item *
1454              
1455             index - Optional. Integer to specify a Replay profile index on which to filter.
1456              
1457             =item *
1458              
1459             name - Optional. String which specifies a Replay profile name on which to filter.
1460              
1461             =item *
1462              
1463             numrules - Optional. String which specifies the number of rules associated with a specified Replay profile.
1464              
1465             =item *
1466              
1467             numvolumes - Optional. Integer that sets the number of volumes using the profile.
1468              
1469             =item *
1470              
1471             schedule - Optional. String that sets the rules and associated schedules for the profile.
1472              
1473             =item *
1474              
1475             txt - Optional. String that specifies the filename for storing formatted output.
1476              
1477             =item *
1478              
1479             type - Optional. String for setting the Replay profile type.
1480              
1481             =item *
1482              
1483             xml - Optional. String that specifies the filename for storing xml formatted output.
1484              
1485             =item *
1486              
1487             success - A scalar reference which will be either set to true or false based on
1488             the success/failure of the command.
1489              
1490             =item *
1491              
1492             output - A array reference to hold the CompCU output.
1493              
1494             =back 8
1495              
1496             =cut
1497              
1498             sub replayprofile_show{
1499 0     0 0   my $self=shift;
1500 0           my $arguments=shift;
1501 0           my @command_parameters=qw(csv index name numrules numvolumes schedule txt type xml);
1502 0           my $s="replayprofile show".build_command($arguments,\@command_parameters);
1503 0           my $c=$self->{command};
1504 0           $c=~s/COMMAND/$s/;
1505 0           execute_show($c,$arguments->{success},$arguments->{output});
1506             }
1507              
1508             =head3 server addhba
1509              
1510             Configures a new HBA for an existing server in Storage Center.
1511              
1512             =over 8
1513              
1514             Takes seven parameters. Two are required.
1515              
1516             =item *
1517              
1518             index - Integer specifying the server index.
1519              
1520             =item *
1521              
1522             manual - Optional. Flag to configure the requested HBAs before they are are discovered.
1523              
1524             =item *
1525              
1526             name - String for setting the server name.
1527              
1528             =item *
1529              
1530             porttype - Optional. String which pecifies the transport type for all the HBAs being added.
1531             Allowed values are "FibreChannel" or "iSCSI".
1532              
1533             =item *
1534              
1535             WWN - Optional. String to specify one or more HBA world wide names for the server.
1536              
1537             =item *
1538              
1539             success - A scalar reference which will be either set to true or false based on
1540             the success/failure of the command.
1541              
1542             =item *
1543              
1544             output - Optional. A array reference to hold the CompCU output.
1545              
1546             =back 8
1547              
1548             =cut
1549              
1550             sub server_addhba{
1551 0     0 0   my $self=shift;
1552 0           my $arguments=shift;
1553 0           my @command_parameters=qw(index manual name porttype WWN);
1554 0           my $s="server addhba".build_command($arguments,\@command_parameters);
1555 0           my $c=$self->{command};
1556 0           $c=~s/COMMAND/$s/;
1557 0           execute($c,$arguments->{success},$arguments->{output});
1558             }
1559              
1560             =head3 server addtocluster
1561              
1562             Assigns an existing physical or virtual server to an existing server cluster.
1563              
1564             =over 8
1565              
1566             Takes six parameters. Two are required.
1567              
1568             =item *
1569              
1570             index - Integer to specify the server index.
1571              
1572             =item *
1573              
1574             name - String to set the server name.
1575              
1576             =item *
1577              
1578             parent - String to specify the server or cluster on which to host the new virtual server.
1579              
1580             =item *
1581              
1582             parentindex - Integer in which to specify the index of the parent server.
1583              
1584             =item *
1585              
1586             success - A scalar reference which will be either set to true or false based on
1587             the success/failure of the command.
1588              
1589             =item *
1590              
1591             output - Optional. A array reference to hold the CompCU output.
1592              
1593             =back 8
1594              
1595             =cut
1596              
1597             sub server_addtocluster{
1598 0     0 0   my $self=shift;
1599 0           my $arguments=shift;
1600 0           my @command_parameters=qw(index name parent parentindex);
1601 0           my $s="server addtocluster".build_command($arguments,\@command_parameters);
1602 0           my $c=$self->{command};
1603 0           $c=~s/COMMAND/$s/;
1604 0           execute($c,$arguments->{success},$arguments->{output});
1605             }
1606              
1607             =head3 server create
1608              
1609             Configures a physical server into the Storage Center system.
1610              
1611             =over 8
1612              
1613             Takes nine parameters. Three are required.
1614              
1615             =item *
1616              
1617             folder - Optional. String to specify a folder for the server.
1618              
1619             =item *
1620              
1621             folderindex - Optional. Integer to specify the server folder index.
1622              
1623             =item *
1624              
1625             name - String to set the server name.
1626              
1627             =item *
1628              
1629             notes - Optional. String to set user notes associated with the server.
1630              
1631             =item *
1632              
1633             os - Optional. String to specify the name of the OS hosted on the server.
1634              
1635             =item *
1636              
1637             osindex - Optional. Integer to set the index of the OS hosted on the server.
1638              
1639             =item *
1640              
1641             WWN - String to specify a globally unique WWN for the HBA.
1642              
1643             =item *
1644              
1645             success - A scalar reference which will be either set to true or false based on
1646             the success/failure of the command.
1647              
1648             =item *
1649              
1650             output - Optional. A array reference to hold the CompCU output.
1651              
1652             =back 8
1653              
1654             =cut
1655              
1656             sub server_create{
1657 0     0 0   my $self=shift;
1658 0           my $arguments=shift;
1659 0           my @command_parameters=qw(folder folderindex name notes os osindex WWN);
1660 0           my $s="server create".build_command($arguments,\@command_parameters);
1661 0           my $c=$self->{command};
1662 0           $c=~s/COMMAND/$s/;
1663 0           execute($c,$arguments->{success},$arguments->{output});
1664             }
1665              
1666             =head3 server createcluster
1667              
1668             Creates a server cluster with no underlying physical or virtual servers.
1669             Takes seven parameters. Three are required.
1670              
1671             =over 8
1672              
1673             =item *
1674              
1675             folder - Optional. String to specify a server folder name.
1676              
1677             =item *
1678              
1679             folderindex - Optional. Integer to set the server folder index.
1680              
1681             =item *
1682              
1683             name - String to set the server name.
1684              
1685             =item *
1686              
1687             os - String to specify the name os the OS for the new cluster.
1688              
1689             =item *
1690              
1691             osindex - Optional. Integer to specify the index of the OS for the new cluster.
1692              
1693             =item *
1694              
1695             success - A scalar reference which will be either set to true or false based on
1696             the success/failure of the command.
1697              
1698             =item *
1699              
1700             output - Optional. A array reference to hold the CompCU output.
1701              
1702             =back 8
1703              
1704             =cut
1705              
1706             sub server_createcluster{
1707 0     0 0   my $self=shift;
1708 0           my $arguments=shift;
1709 0           my @command_parameters=qw(folder folderindex name os osindex);
1710 0           my $s="server createcluster".build_command($arguments,\@command_parameters);
1711 0           my $c=$self->{command};
1712 0           $c=~s/COMMAND/$s/;
1713 0           execute($c,$arguments->{success},$arguments->{output});
1714             }
1715              
1716             =head3 server delete
1717              
1718             Deletes a server from the Storage Center system.
1719              
1720             =over 8
1721              
1722             Takes four parameters. Two are required. Use either index or name.
1723              
1724             =item *
1725              
1726             index - Integer to specify the index of the server.
1727              
1728             =item *
1729              
1730             name - String to specify the server name.
1731              
1732             =item *
1733              
1734             success - A scalar reference which will be either set to true or false based on
1735             the success/failure of the command.
1736              
1737             =item *
1738              
1739             output - Optional. A array reference to hold the CompCU output.
1740              
1741             =back 8
1742              
1743              
1744             =cut
1745              
1746             sub server_delete{
1747 0     0 0   my $self=shift;
1748 0           my $arguments=shift;
1749 0           my @command_parameters=qw(index name);
1750 0           my $s="server delete".build_command($arguments,\@command_parameters);
1751 0           my $c=$self->{command};
1752 0           $c=~s/COMMAND/$s/;
1753 0           execute($c,$arguments->{success},$arguments->{output});
1754             }
1755              
1756             =head3 server modify
1757              
1758             Modifies a server.
1759              
1760             =over 8
1761              
1762             Takes eight parameters. Two are required. Use either of index or name.
1763              
1764             =item *
1765              
1766             folder - Optional. String to specify a folder.
1767              
1768             =item *
1769              
1770             folderindex - Optional. Integer to specify a folder index.
1771              
1772             =item *
1773              
1774             index - Integer to specify the server index.
1775              
1776             =item *
1777              
1778             name - String. Specifies the server name.
1779              
1780             =item *
1781              
1782             os - Optional. String to set the name of the OS.
1783              
1784             =item *
1785              
1786             osindex - Optional. Integer to set the OS index of the OS hosted on the server.
1787              
1788             =item *
1789              
1790             success - A scalar reference which will be either set to true or false based on
1791             the success/failure of the command.
1792              
1793             =item *
1794              
1795             output - Optional. A array reference to hold the CompCU output.
1796              
1797             =back 8
1798              
1799             =cut
1800              
1801             sub server_modify{
1802 0     0 0   my $self=shift;
1803 0           my $arguments=shift;
1804 0           my @command_parameters=qw(folder folderindex index name os osindex);
1805 0           my $s="server modify".build_command($arguments,\@command_parameters);
1806 0           my $c=$self->{command};
1807 0           $c=~s/COMMAND/$s/;
1808 0           execute($c,$arguments->{success},$arguments->{output});
1809             }
1810              
1811              
1812             =head3 server removehba
1813              
1814             Removes an existing HBA assignment from an attached server.
1815              
1816             =over 8
1817              
1818             Takes five parameters. Three are required. Use either of name or index.
1819              
1820             =item *
1821              
1822             index - Integer to specify the server index.
1823              
1824             =item *
1825              
1826             name - String to set the server name.
1827              
1828             =item *
1829              
1830             WWN - String to specify the HBA to remove from the server.
1831              
1832             =item *
1833              
1834             success - A scalar reference which will be either set to true or false based on
1835             the success/failure of the command.
1836              
1837             =item *
1838              
1839             output - Optional. A array reference to hold the CompCU output.
1840              
1841             =back 8
1842              
1843             =cut
1844              
1845             sub server_removehba{
1846 0     0 0   my $self=shift;
1847 0           my $arguments=shift;
1848 0           my @command_parameters=qw(index name WWN);
1849 0           my $s="server removehba".build_command($arguments,\@command_parameters);
1850 0           my $c=$self->{command};
1851 0           $c=~s/COMMAND/$s/;
1852 0           execute($c,$arguments->{success},$arguments->{output});
1853             }
1854              
1855              
1856             =head3 server removefromcluster
1857              
1858             Removes a physical or virtual server from a server cluster.
1859              
1860             =over 8
1861              
1862             Takes four parameters. Two are required. Use either of index or name.
1863              
1864             =item *
1865              
1866             index - Integer to specify the server index.
1867              
1868             =item *
1869              
1870             name - String to specify the server name.
1871              
1872             =item *
1873              
1874             success - A scalar reference which will be either set to true or false based on
1875             the success/failure of the command.
1876              
1877             =item *
1878              
1879             output - Optional. A array reference to hold the CompCU output.
1880              
1881             =back 8
1882              
1883             =cut
1884              
1885             sub server_removefromcluster{
1886 0     0 0   my $self=shift;
1887 0           my $arguments=shift;
1888 0           my @command_parameters=qw(index name);
1889 0           my $s="server removefromcluster".build_command($arguments,\@command_parameters);
1890 0           my $c=$self->{command};
1891 0           $c=~s/COMMAND/$s/;
1892 0           execute($c,$arguments->{success},$arguments->{output});
1893             }
1894              
1895             =head3 server show
1896              
1897             Retrieves the attributes of known attached servers.
1898              
1899             =over 8
1900              
1901             Takes 15 parameters. Two are required.
1902              
1903             =item *
1904              
1905             connectstatus - Optional. String to specify connection status. Allowed values are "Connected", "Disconnected", or "Partially Connected".
1906              
1907             =item *
1908              
1909             csv - Optional. String to specify a filename in which to store csv formatted output.
1910              
1911             =item *
1912              
1913             folder - Optional. String to specify a server folder on which to filter.
1914              
1915             =item *
1916              
1917             folderindex - Optional. Integer to set a folder index on which to filter.
1918              
1919             =item *
1920              
1921             index - Optional. Integer wich sets a server index on which to filter.
1922              
1923             =item *
1924              
1925             name - Optional. String to specify a server name on which to filter.
1926              
1927             =item *
1928              
1929             os - Optional. String to specify the name of the OS on which to filter.
1930              
1931             =item *
1932              
1933             osindex - Optional. Integer to set the server index on which to filter.
1934              
1935             =item *
1936              
1937             parent - Optional. String to set the parent host name on which to filter.
1938              
1939             =item *
1940              
1941             parentindex - Optional. Integer to set the index of the parent host on which to filter.
1942              
1943             =item *
1944              
1945             transporttype - Optional. String to specify the transport type on whcih to filter.
1946             Allowed values are "FibreChannel", "iSCSI", or "Both".
1947              
1948             =item *
1949              
1950             txt - Optional. String to specify a filename in which to store output.
1951              
1952             =item *
1953              
1954             type - Optional. String to specify teh server type on which to filter.
1955             Allowed values are "Physical", "Virtual", "Cluster", or "'Remote Storage Center'".
1956              
1957             =item *
1958              
1959             wwn_list - Optional. String to specify one or more HBAs on which to filter.
1960              
1961             =item *
1962              
1963             xml - Optional. String to specify a filename in which to store xml formatted output.
1964              
1965             =item *
1966              
1967             success - A scalar reference which will be either set to true or false based on
1968             the success/failure of the command.
1969              
1970             =item *
1971              
1972             output - A array reference to hold the CompCU output.
1973              
1974             =back 8
1975              
1976             =cut
1977              
1978             sub server_show{
1979 0     0 0   my $self=shift;
1980 0           my $arguments=shift;
1981 0           my @command_parameters=qw(connectstatus csv folder folderindex index name os osindex parent parentindex transporttype txt type wwn_list xml);
1982 0           my $s="server show".build_command($arguments,\@command_parameters);
1983 0           my $c=$self->{command};
1984 0           $c=~s/COMMAND/$s/;
1985 0           execute_show($c,$arguments->{success},$arguments->{output});
1986             }
1987              
1988             =head3 server showhba
1989              
1990             Shows server HBA information for each attached server.
1991              
1992             =over 8
1993              
1994             Takes 14 parameters. Two are required.
1995              
1996             =item *
1997              
1998             connectstatus - Optional. String to specify connection status. Allowed values are "Connected", "Disconnected", or "Partially Connected".
1999              
2000             =item *
2001              
2002             csv - Optional. String to specify a filename in which to store csv formatted output.
2003              
2004             =item *
2005              
2006             hbatype - Optional. String to specify the transport type of the HBA. Allowed values
2007             are "iSCSI" or "FibreChannel".
2008              
2009             =item *
2010              
2011             ipaddress - Optional. String to specify the ip address ofr the HBA on which to filter.
2012              
2013             =item *
2014              
2015             iscsi_name - Optional. String to specify the iSCSI transport name on which to filter.
2016              
2017             =item *
2018              
2019             portinfo - Optional. Strig to specify additional port information on which to filter.
2020              
2021             =item *
2022              
2023             server - Optional. Integer to specify the server index on which to filter.
2024              
2025             =item *
2026              
2027             servername - Optional. String to specify the server name on which to filter.
2028              
2029             =item *
2030              
2031             status - Optional. String to specify the operational on which to filter.
2032             Allowed values are either "Up" or "Down".
2033              
2034             =item *
2035              
2036             txt - Optional. String to specify a filename in which to store output.
2037              
2038             =item *
2039              
2040             wwn - Optional. String to specify one or more HBAs on which to filter.
2041              
2042             =item *
2043              
2044             xml - Optional. String to specify a filename in which to store xml formatted output.
2045              
2046             =item *
2047              
2048             success - A scalar reference which will be either set to true or false based on
2049             the success/failure of the command.
2050              
2051             =item *
2052              
2053             output - A array reference to hold the CompCU output.
2054              
2055             =back 8
2056              
2057             =cut
2058              
2059             sub server_showhba{
2060 0     0 0   my $self=shift;
2061 0           my $arguments=shift;
2062 0           my @command_parameters=qw(connectstatus csv hbatype ipaddress iscsi portinfo server servername status txt wwn xml);
2063 0           my $s="server showhba".build_command($arguments,\@command_parameters);
2064 0           my $c=$self->{command};
2065 0           $c=~s/COMMAND/$s/;
2066 0           execute_show($c,$arguments->{success},$arguments->{output});
2067             }
2068              
2069             =head3 serverfolder create
2070              
2071             Creates a server folder.
2072              
2073             =over 8
2074              
2075             Takes five parameters. Two are required.
2076              
2077             =item *
2078              
2079             name - String to specifythe server folder name.
2080              
2081             =item *
2082              
2083             parent - Optional. String to specify the parent folder of the server folder.
2084              
2085             =item *
2086              
2087             parentindex - Optional. Integer to specify the index of the serverfolder's parent.
2088              
2089             =item *
2090              
2091             success - A scalar reference which will be either set to true or false based on
2092             the success/failure of the command.
2093              
2094             =item *
2095              
2096             output - Optional. An array reference to hold the CompCU output.
2097              
2098             =back 8
2099              
2100             =cut
2101              
2102             sub serverfolder_create{
2103 0     0 0   my $self=shift;
2104 0           my $arguments=shift;
2105 0           my @command_parameters=qw(name parent parentindex);
2106 0           my $s="serverfolder create".build_command($arguments,\@command_parameters);
2107 0           my $c=$self->{command};
2108 0           $c=~s/COMMAND/$s/;
2109 0           execute($c,$arguments->{success},$arguments->{output});
2110             }
2111              
2112             =head3 serverfolder delete
2113              
2114             Deletes a server folder.
2115              
2116             =over 8
2117              
2118             Takes five parameters. Two are required. Use any one of index or name.
2119              
2120             =item *
2121              
2122             index - Integer to specify the index of the server.
2123              
2124             =item *
2125              
2126             name - String to specifythe server folder name.
2127              
2128             =item *
2129              
2130             parent - Optional. String to specify the parent folder of the server folder.
2131              
2132             =item *
2133              
2134             success - A scalar reference which will be either set to true or false based on
2135             the success/failure of the command.
2136              
2137             =item *
2138              
2139             output - Optional. An array reference to hold the CompCU output.
2140              
2141             =back 8
2142              
2143             =cut
2144              
2145             sub serverfolder_delete{
2146 0     0 0   my $self=shift;
2147 0           my $arguments=shift;
2148 0           my @command_parameters=qw(index name parent);
2149 0           my $s="serverfolder delete".build_command($arguments,\@command_parameters);
2150 0           my $c=$self->{command};
2151 0           $c=~s/COMMAND/$s/;
2152 0           execute($c,$arguments->{success},$arguments->{output});
2153             }
2154              
2155             =head3 serverfolder modify
2156              
2157             =over 8
2158              
2159             Takes five parameters. Three are required. Use any one of index or name and
2160             any one of parent or parentindex.
2161              
2162             =item *
2163              
2164             index - Integer to specify the index of the server.
2165              
2166             =item *
2167              
2168             name - String to specifythe server folder name.
2169              
2170             =item *
2171              
2172             parent - String to specify the parent folder of the server folder.
2173              
2174             =item *
2175              
2176             parentindex - Integer to specify the index of the serverfolder's parent.
2177              
2178             =item *
2179              
2180             success - A scalar reference which will be either set to true or false based on
2181             the success/failure of the command.
2182              
2183             =item *
2184              
2185             output - Optional. An array reference to hold the CompCU output.
2186              
2187             =back 8
2188              
2189             =cut
2190              
2191             sub serverfolder_modify{
2192 0     0 0   my $self=shift;
2193 0           my $arguments=shift;
2194 0           my @command_parameters=qw(index name parent parentindex);
2195 0           my $s="serverfolder modify".build_command($arguments,\@command_parameters);
2196 0           my $c=$self->{command};
2197 0           $c=~s/COMMAND/$s/;
2198 0           execute($c,$arguments->{success},$arguments->{output});
2199             }
2200              
2201             =head3 serverfolder show
2202              
2203             Retrieves information about a server folder.
2204              
2205             =over 8
2206              
2207             Takes nine parameters. Two are required.
2208              
2209             =item *
2210              
2211             csv - Optional. String to specify a filename in which to save csv formatted output.
2212              
2213             =item *
2214              
2215             index - Optional. Integer to set the server folder index on which to filter.
2216              
2217             =item *
2218              
2219             name - Optional. String to set the server folder name on which to filter.
2220              
2221             =item *
2222              
2223             numservers - Optional. Integer. Shows the number of servers in the path.
2224              
2225             =item *
2226              
2227             path - Optional. String to specify the path of the server folder name.
2228              
2229             =item *
2230              
2231             txt - Optional. String that names a file in which to store output.
2232              
2233             =item *
2234              
2235             xml - Optional. String that names a file in which to store xml formatted output.
2236              
2237             =item *
2238              
2239             success - A scalar reference which will be either set to true or false based on
2240             the success/failure of the command.
2241              
2242             =item *
2243              
2244             output - An array reference to hold the CompCU output.
2245              
2246             =back 8
2247              
2248              
2249             =cut
2250              
2251             sub serverfolder_show{
2252 0     0 0   my $self=shift;
2253 0           my $arguments=shift;
2254 0           my @command_parameters=qw(csv index name numservers path txt xml);
2255 0           my $s="serverfolder show".build_command($arguments,\@command_parameters);
2256 0           my $c=$self->{command};
2257 0           $c=~s/COMMAND/$s/;
2258 0           execute_show($c,$arguments->{success},$arguments->{output});
2259             }
2260              
2261             =head3 storageprofile show
2262              
2263             Retrieves Storgae Profile information.
2264              
2265             =over 8
2266              
2267             Takes 15 parameters. Two are required.
2268              
2269             =item *
2270              
2271             csv - Optional. String to specify a filename in which to save csv formatted output.
2272              
2273             =item *
2274              
2275             dualhistorical - Optional. String to show the storage tier and RAID level for dual redundant Replay data.
2276              
2277             =item *
2278              
2279             dualredundantwritable - Optional. String to show the storage tier and RAID level for dual redundant writeable data.
2280              
2281             =item *
2282              
2283             index - Optional. Integer to specify a storage profile index on which to filter.
2284              
2285             =item *
2286              
2287             name - Optional. Integer to specify a storage profile name on which to filter.
2288              
2289             =item *
2290              
2291             nonredundanthistorical - Optional. String on which to filter the storage tier and RAID level for nonredundant Replay data.
2292              
2293             =item *
2294              
2295             nonredundantwritable - Optional. String on which to filter the storage tier and RAID level for nonredundant writeable data.
2296              
2297             =item *
2298              
2299             numvolumes - Optional. Integer to specify the number of volumes used by the Storage Profile on which to filter.
2300              
2301             =item *
2302              
2303             redundanthistorical - Optional. String to show the storage tier and RAID level for redundant Replay data.
2304              
2305             =item *
2306              
2307             redundantwritable - Optional. String to show the storage tier and RAID level for redundant writable data.
2308              
2309             =item *
2310              
2311             txt - Optional. String to specify a filename in which to store output.
2312              
2313             =item *
2314              
2315             xml - Optional. String to specify a filename in which to store xml formatted output.
2316              
2317             =item *
2318              
2319             success - A scalar reference which will be either set to true or false based on
2320             the success/failure of the command.
2321              
2322             =item *
2323              
2324             output - An array reference to hold the CompCU output.
2325              
2326             =back 8
2327              
2328             =cut
2329              
2330             sub storageprofile_show{
2331 0     0 0   my $self=shift;
2332 0           my $arguments=shift;
2333 0           my @command_parameters=qw(csv dualhistorical dualredundantwritable index name nonredundanthistorical nonredundantwritable numvolumes redundanthistorical redundantwritable txt xml);
2334 0           my $s="storageprofile show".build_command($arguments,\@command_parameters);
2335 0           my $c=$self->{command};
2336 0           $c=~s/COMMAND/$s/;
2337 0           execute_show($c,$arguments->{success},$arguments->{output});
2338             }
2339              
2340             =head3 storagetype show
2341              
2342             Retrieves storage type information.
2343              
2344             =over 8
2345              
2346             Takes 15 parameters. Two are required.
2347              
2348             =item *
2349              
2350             csv - Optional. String to specify a filename in which to save csv formatted output.
2351              
2352             =item *
2353              
2354             diskfolder - Optional. String to specify a diskfolder on which to filter.
2355              
2356             =item *
2357              
2358             index - Optional. Integer to specify a storage type index to filter on.
2359              
2360             =item *
2361              
2362             name - Optional. String to specify a storage type name to filter on.
2363              
2364             =item *
2365              
2366             pagesize - Optional. Integer to provide a pagesize to filter on.
2367              
2368             =item *
2369              
2370             pagesize - Optional. Integer to provide a pagesize (in blocks) to filter on.
2371              
2372             =item *
2373              
2374             redundancy - Optional. Integer to specify a redundancy type to filter on. Allowed values
2375             are 0, 1, or 2. These correspond, respectively, to non-redundant, redundant, dual-redundant.
2376              
2377             =item *
2378              
2379             spaceallocated - Optional. Integer to provide a space allocated size to filter on.
2380              
2381             =item *
2382              
2383             spaceallocatedblocks - Optional. Integer to provide a space allocated size (in blocks) to filter on.
2384              
2385             =item *
2386              
2387             spaceused - Optional. Optional. Integer to provide a space used size to filter on.
2388              
2389             =item *
2390              
2391             spaceusedblocks - Optional. Integer to provide a space used size (in blocks) to filter on.
2392              
2393             =item *
2394              
2395             txt - Optional. String to specify a filename in which to store output.
2396              
2397             =item *
2398              
2399             xml - Optional. String to specify a filename in which to store xml formatted output.
2400              
2401             =item *
2402              
2403             success - A scalar reference which will be either set to true or false based on
2404             the success/failure of the command.
2405              
2406             =item *
2407              
2408             output - An array reference to hold the CompCU output.
2409              
2410             =back 8
2411              
2412             =cut
2413              
2414             sub storagetype_show{
2415 0     0 0   my $self=shift;
2416 0           my $arguments=shift;
2417 0           my @command_parameters=qw(csv diskfolder index name pagesize pagesizeblocks redundancy spaceallocated spaceallocatedblocks spaceused spaceusedblocks txt xml);
2418 0           my $s="storagetype show".build_command($arguments,\@command_parameters);
2419 0           my $c=$self->{command};
2420 0           $c=~s/COMMAND/$s/;
2421 0           execute_show($c,$arguments->{success},$arguments->{output});
2422             }
2423              
2424             =head3 system restart
2425              
2426             Restarts Storage Center.
2427              
2428             =over 8
2429              
2430             Takes three parameters. Only 'success' is required.
2431              
2432             =item *
2433              
2434             simultaneous - Optional. If set then both controllers on a dual-controlled system will be restarted simulataneously.
2435             The default is restart them in sequence starting with the leader controller.
2436              
2437             =item *
2438              
2439             success - A scalar reference which will be either set to true or false based on
2440             the success/failure of the command.
2441              
2442             =item *
2443              
2444             output - Optional. An array reference to hold the CompCU output.
2445              
2446             =back 8
2447              
2448             =cut
2449              
2450             sub system_restart{
2451 0     0 0   my $self=shift;
2452 0           my $arguments=shift;
2453 0           my @command_parameters=qw(simultaneous);
2454 0           my $s="system restart".build_command($arguments,\@command_parameters);
2455 0           my $c=$self->{command};
2456 0           $c=~s/COMMAND/$s/;
2457 0           execute($c,$arguments->{success},$arguments->{output});
2458             }
2459              
2460             =head3 system show
2461              
2462             Retrieves the Storage Center management configuration information.
2463              
2464             =over 8
2465              
2466             Takes 13 parameters. Two are required.
2467              
2468             =item *
2469              
2470             backupmailserver - Optional. String to specify a back up mail server IP on which to filter.
2471              
2472             =item *
2473              
2474             csv - Optional. String to set a filename in which to store csv formatted output.
2475              
2476             =item *
2477              
2478             mailserver - Optional. String to set a mail server IP to filter on.
2479              
2480             =item *
2481              
2482             managementip - Optional. String to specify a Storage Center IP address to filter on.
2483              
2484             =item *
2485              
2486             name - Optional. String to specify a Storage Center name to filter on.
2487              
2488             =item *
2489              
2490             operationmode - Optional. String to specify an operation mode to filter on.
2491             Allowed values are "Install", "Maintenance", "Normal", or "PreProduction".
2492              
2493             =item *
2494              
2495             portsbalanced - Optional. String to specify a Ports Balanced status to filter on.
2496             Allowed values are "Yes" or "No".
2497              
2498             =item *
2499              
2500             serialnumber - Optional. String to specifu a Storage Center serial number to filter on.
2501              
2502             =item *
2503              
2504             txt - Optional. String secifying a filename to store output.
2505              
2506             =item *
2507              
2508             version - Optional. String to specify a four part Storage Center version to filter on.
2509              
2510             =item *
2511              
2512             xml - Optional. String to specify a filename to store xml formatted output in.
2513              
2514             =item *
2515              
2516             success - A scalar reference which will be either set to true or false based on
2517             the success/failure of the command.
2518              
2519             =item *
2520              
2521             output - An array reference to hold the CompCU output.
2522              
2523             =back 8
2524              
2525             =cut
2526              
2527             sub system_show{
2528 0     0 0   my $self=shift;
2529 0           my $arguments=shift;
2530 0           my @command_parameters=qw(backupmailserver csv mailserver managementip name operationmode portsbalanced serialnumber txt version xml);
2531 0           my $s="system show".build_command($arguments,\@command_parameters);
2532 0           my $c=$self->{command};
2533 0           $c=~s/COMMAND/$s/;
2534 0           execute_show($c,$arguments->{success},$arguments->{output});
2535             }
2536              
2537             =head3 system shutdown
2538              
2539             Shuts Storage Center down.
2540              
2541             =over 8
2542              
2543             Takes two parameters. Only 'success' is required.
2544              
2545             =item *
2546              
2547             success - A scalar reference which will be either set to true or false based on
2548             the success/failure of the command.
2549              
2550             =item *
2551              
2552             output - Optional. An array reference to hold the CompCU output.
2553              
2554             =back 8
2555              
2556             =cut
2557              
2558             sub system_shutdown{
2559 0     0 0   my $self=shift;
2560 0           my $arguments=shift;
2561 0           my @command_parameters=qw();
2562 0           my $s="system shutdown".build_command($arguments,\@command_parameters);
2563 0           my $c=$self->{command};
2564 0           $c=~s/COMMAND/$s/;
2565 0           execute($c,$arguments->{success},$arguments->{output});
2566             }
2567              
2568              
2569             =head3 user create
2570              
2571             Creates a new Storage Enter user account.
2572              
2573             =over 8
2574              
2575             Takes 10 parameters. Four are required.
2576              
2577             =item *
2578              
2579             email - Optional. String to specify the user's email address.
2580              
2581             =item *
2582              
2583             notes - Optional. String stating some notes on the user to be created.
2584              
2585             =item *
2586              
2587             password - String to set the user's password.
2588              
2589             =item *
2590              
2591             privilege - String to set the user's priviledge level. Allowed values are "Admin", "VolumeManager", or "Reporter".
2592              
2593             =item *
2594              
2595             realname - Optional. String to specify the user's real name.
2596              
2597             =item *
2598              
2599             usergroup - Optional. Specifies user group(s) for the new user.
2600              
2601             =item *
2602              
2603             usergroupindex - Optional. String to specify the index of groups to add the user too.
2604              
2605             =item *
2606              
2607             username - String to set the name of the user to be created.
2608              
2609             =item *
2610              
2611             success - A scalar reference which will be either set to true or false based on
2612             the success/failure of the command.
2613              
2614             =item *
2615              
2616             output - Optional. An array reference to hold the CompCU output.
2617              
2618             =back 8
2619              
2620             =cut
2621              
2622             sub user_create{
2623 0     0 0   my $self=shift;
2624 0           my $arguments=shift;
2625 0           my @command_parameters=qw(email notes password privilege realname usergroup usergroupindex username);
2626 0           my $s="user create".build_command($arguments,\@command_parameters);
2627 0           my $c=$self->{command};
2628 0           $c=~s/COMMAND/$s/;
2629 0           execute($c,$arguments->{success},$arguments->{output});
2630             }
2631              
2632              
2633             =head3 user delete
2634              
2635             Deletes an existing Storage Center user account.
2636              
2637             =over 8
2638              
2639             Takes four parameters. Two are required. Use any one of 'index' or 'username'.
2640              
2641             =item *
2642              
2643             index - Integer to specify the user's index.
2644              
2645             =item *
2646              
2647             username - String to specify the username of the user to be deleted.
2648              
2649             =item *
2650              
2651             success - A scalar reference which will be either set to true or false based on
2652             the success/failure of the command.
2653              
2654             =item *
2655              
2656             output - Optional. An array reference to hold the CompCU output.
2657              
2658             =back 8
2659              
2660             =cut
2661              
2662             sub user_delete{
2663 0     0 0   my $self=shift;
2664 0           my $arguments=shift;
2665 0           my @command_parameters=qw(index username);
2666 0           my $s="user delete".build_command($arguments,\@command_parameters);
2667 0           my $c=$self->{command};
2668 0           $c=~s/COMMAND/$s/;
2669 0           execute($c,$arguments->{success},$arguments->{output});
2670             }
2671              
2672             =head3 user modify
2673              
2674             Modifies a Storage Center user account information.
2675              
2676             =over 8
2677              
2678             Takes 12 parameters. Two are required. Use any one of 'index' or 'username'.
2679              
2680             =item *
2681              
2682             email - Optional. String to specify a user's email address.
2683              
2684             =item *
2685              
2686             enabled - Optional. String (either "true" or "false") to specify if the account is enabled.
2687              
2688             =item *
2689              
2690             index - Integer to set the index of the user's account.
2691              
2692             =item *
2693              
2694             notes - Optional. String to specify any notes about the user.
2695              
2696             =item *
2697              
2698             password - Optional. String to set the user's password.
2699              
2700             =item *
2701              
2702             privilege - Optional. String to specify the user's privilege level. Allowed values are "Admin", VolumeManager", or "Reporter".
2703              
2704             =item *
2705              
2706             realname - Optional. String to set the user's real name.
2707              
2708             =item *
2709              
2710             usergroup - Optional. String specifying which group(s) the user should belong to.
2711              
2712             =item *
2713              
2714             usergroupindex - Optional. String specifying which group(s) (by index) the user should belong to.
2715              
2716             =item *
2717              
2718             username - String specifying the user name.
2719              
2720             =item *
2721              
2722             success - A scalar reference which will be either set to true or false based on
2723             the success/failure of the command.
2724              
2725             =item *
2726              
2727             output - Optional. An array reference to hold the CompCU output.
2728              
2729             =back 8
2730              
2731             =cut
2732              
2733             sub user_modify{
2734 0     0 0   my $self=shift;
2735 0           my $arguments=shift;
2736 0           my @command_parameters=qw(email enabled index notes password privilege realname usergroup usergroupindex username);
2737 0           my $s="user modify".build_command($arguments,\@command_parameters);
2738 0           my $c=$self->{command};
2739 0           $c=~s/COMMAND/$s/;
2740 0           execute($c,$arguments->{success},$arguments->{output});
2741             }
2742              
2743             =head3 user show
2744              
2745             Retrieves Storage Center user information.
2746              
2747             =over 8
2748              
2749             Takes 13 parameters. Two are required.
2750              
2751             =item *
2752              
2753             csv - Optional. String to specify a file in which to store csv formatted output.
2754              
2755             =item *
2756              
2757             email - Optional. String to specify a user's email address.
2758              
2759             =item *
2760              
2761             enabled - Optional. String (either "true" or "false") to specify if the account is enabled.
2762              
2763             =item *
2764              
2765             index - Optional. Integer to set the index of the user's account.
2766              
2767             =item *
2768              
2769             privilege - Optional. String to specify the user's privilege level. Allowed values are "Admin", VolumeManager", or "Reporter".
2770              
2771             =item *
2772              
2773             realname - Optional. String to set the user's real name.
2774              
2775             =item *
2776              
2777             showgroupindex - Optional. Flag that if set will cause the user groups to be displayed by index instead of name.
2778              
2779             =item *
2780              
2781             txt - Optional. String to specify a file in which to store output.
2782              
2783             =item *
2784              
2785             user_groups - Optional. String specifying which group(s) the user should belong to.
2786              
2787             =item *
2788              
2789             username - String specifying the user name.
2790              
2791             =item *
2792              
2793             xml - Optional. String to specify a file in which to store xml formatted output.
2794              
2795             =item *
2796              
2797             success - A scalar reference which will be either set to true or false based on
2798             the success/failure of the command.
2799              
2800             =item *
2801              
2802             output - An array reference to hold the CompCU output.
2803              
2804             =back 8
2805              
2806             =cut
2807              
2808             sub user_show{
2809 0     0 0   my $self=shift;
2810 0           my $arguments=shift;
2811 0           my @command_parameters=qw(csv email enabled index privilege realname showgroupindex txt user_groups username xml);
2812 0           my $s="user show".build_command($arguments,\@command_parameters);
2813 0           my $c=$self->{command};
2814 0           $c=~s/COMMAND/$s/;
2815 0           execute_show($c,$arguments->{success},$arguments->{output});
2816             }
2817              
2818             =head3 usergroup create
2819              
2820             Creates a new Storage Center user group.
2821              
2822             =over 8
2823              
2824             Takes nine parameters. Five are required. Use any one of 'volumefolder' or 'volumeindex'.
2825             Similarily, use any one of 'serverfolder'/'serverfolderindex' and 'diskfolder'/'diskfolderindex'.
2826              
2827             =item *
2828              
2829             diskfolder - Optional. String to specify the name of the disk folder(s) for the user group.
2830              
2831             =item *
2832              
2833             diskfolderindex - Optional. String to specify the index/indices of the disk folder(s) for the user group.
2834              
2835             =item *
2836              
2837             name - Optional. String to specify the name of the user group.
2838              
2839             =item *
2840              
2841             serverfolder - Optional. String to specify the server folders by name.
2842              
2843             =item *
2844              
2845             serverfolderindex - Optional. String to specify the server folders by index.
2846              
2847             =item *
2848              
2849             volumefolder - Optional. String to specify the volumefolders by name.
2850              
2851             =item *
2852              
2853             volumefolderindex - Optional. String to specify the volumefolders by index.
2854              
2855             =item *
2856              
2857             success - A scalar reference which will be either set to true or false based on
2858             the success/failure of the command.
2859              
2860             =item *
2861              
2862             output - Optional. An array reference to hold the CompCU output.
2863              
2864             =back 8
2865              
2866             =cut
2867              
2868             sub usergroup_create{
2869 0     0 0   my $self=shift;
2870 0           my $arguments=shift;
2871 0           my @command_parameters=qw(diskfolder diskfolderindex name serverfolder serverfolderindex volumefolder volumefolderindex);
2872 0           my $s="usergroup create".build_command($arguments,\@command_parameters);
2873 0           my $c=$self->{command};
2874 0           $c=~s/COMMAND/$s/;
2875 0           execute($c,$arguments->{success},$arguments->{output});
2876             }
2877              
2878             =head3 usergroup delete
2879              
2880             Deletes an existing Storage Center user group.
2881              
2882             =over 8
2883              
2884             Takes four parameters. Two are required. Use one of 'index' or 'name'.
2885              
2886             =item *
2887              
2888             index - Integer to specify the group by index.
2889              
2890             =item *
2891              
2892             name - String to specify the group by name.
2893              
2894             =item *
2895              
2896             success - A scalar reference which will be either set to true or false based on
2897             the success/failure of the command.
2898              
2899             =item *
2900              
2901             output - Optional. An array reference to hold the CompCU output.
2902              
2903             =back 8
2904              
2905             =cut
2906              
2907             sub usergroup_delete{
2908 0     0 0   my $self=shift;
2909 0           my $arguments=shift;
2910 0           my @command_parameters=qw(index name);
2911 0           my $s="usergroup delete".build_command($arguments,\@command_parameters);
2912 0           my $c=$self->{command};
2913 0           $c=~s/COMMAND/$s/;
2914 0           execute($c,$arguments->{success},$arguments->{output});
2915             }
2916              
2917             =head3 usergroup modify
2918              
2919             Modifies the details of an existing usergroup.
2920              
2921             =over 8
2922              
2923             Takes 10 parameters. Three are required. Use one of 'index' or 'name'.
2924              
2925             =item *
2926              
2927             diskfolder - Optional. String to specify the name of the disk folder(s) for the user group.
2928              
2929             =item *
2930              
2931             diskfolderindex - Optional. String to specify the index/indices of the disk folder(s) for the user group.
2932              
2933             =item *
2934              
2935             index - Integer to specify the group by index.
2936              
2937             =item *
2938              
2939             name - String to specify the name of the user group.
2940              
2941             =item *
2942              
2943             serverfolder - Optional. String to specify the server folders by name.
2944              
2945             =item *
2946              
2947             serverfolderindex - Optional. String to specify the server folders by index.
2948              
2949             =item *
2950              
2951             volumefolder - Optional. String to specify the volumefolders by name.
2952              
2953             =item *
2954              
2955             volumefolderindex - Optional. String to specify the volumefolders by index.
2956              
2957             =item *
2958              
2959             success - A scalar reference which will be either set to true or false based on
2960             the success/failure of the command.
2961              
2962             =item *
2963              
2964             output - Optional. An array reference to hold the CompCU output.
2965              
2966             =back 8
2967              
2968             =cut
2969              
2970             sub usergroup_modify{
2971 0     0 0   my $self=shift;
2972 0           my $arguments=shift;
2973 0           my @command_parameters=qw(diskfolder diskfolderindex index name serverfolder serverfolderindex volumefolder volumefolderindex);
2974 0           my $s="usergroup modify".build_command($arguments,\@command_parameters);
2975 0           my $c=$self->{command};
2976 0           $c=~s/COMMAND/$s/;
2977 0           execute($c,$arguments->{success},$arguments->{output});
2978             }
2979              
2980             =head3 usergroup show
2981              
2982             Retrieves Storage Center user group information.
2983              
2984             =over 8
2985              
2986             Takes 11 parameters. Two are required.
2987              
2988             =item *
2989              
2990             csv - Optional. String to specify a filename in which to store csv formatted output.
2991              
2992             =item *
2993              
2994             disk_folders - Optional. String to specify the folders assigned to the user group.
2995              
2996             =item *
2997              
2998             index - Optional. Integer to specify a user group by index to filter on.
2999              
3000             =item *
3001              
3002             name - Optional. String to specify a user group name on which to filter.
3003              
3004             =item *
3005              
3006             server_folders - Optional. String to set which server folders to filter on.
3007              
3008             =item *
3009              
3010             showfolderindex - Optional. Flag that if set retrieves folder indices instead of names.
3011              
3012             =item *
3013              
3014             txt - Optional. String which names a file inw hcih to save output.
3015              
3016             =item *
3017              
3018             volume_folders - Optional. String to specify volume folders assigned to the user group in which to filter.
3019              
3020             =item *
3021              
3022             xml - Optional. String to specify a filename in which to save xml formatted output.
3023              
3024             =item *
3025              
3026             success - A scalar reference which will be either set to true or false based on
3027             the success/failure of the command.
3028              
3029             =item *
3030              
3031             output - An array reference to hold the CompCU output.
3032              
3033             =back 8
3034              
3035             =cut
3036              
3037             sub usergroup_show{
3038 0     0 0   my $self=shift;
3039 0           my $arguments=shift;
3040 0           my @command_parameters=qw(csv disk_folders index name server_folders showfolderindex txt volume_folders xml);
3041 0           my $s="usergroup show".build_command($arguments,\@command_parameters);
3042 0           my $c=$self->{command};
3043 0           $c=~s/COMMAND/$s/;
3044 0           execute_show($c,$arguments->{success},$arguments->{output});
3045             }
3046              
3047             =head3 volume create
3048              
3049             Creates a new volume.
3050              
3051             =over 8
3052              
3053             Takes 26 parameters. Three are required.
3054              
3055             =item *
3056              
3057             boot - Optional. Flag to designate the mapped volume as a boot volume.
3058              
3059             =item *
3060              
3061             controller - Optional. String to specify the controller by name.
3062              
3063             =item *
3064              
3065             diskfolder - Optional. String to specify a disk folder for the volume.
3066              
3067             =item *
3068              
3069             folder - Optional. String to specify the name of an existing volume folder.
3070              
3071             =item *
3072              
3073             folderindex - Optional. String to specify the index of an existing volume folder.
3074              
3075             =item *
3076              
3077             localport - Optional. String to set the WWN of the local port to use for the mapping.
3078              
3079             =item *
3080              
3081             lun - Optional. Integer to set the Logical Unit Number.
3082              
3083             =item *
3084              
3085             maxwrite - Optional. Integer to set the maximum size for volume writes.
3086              
3087             =item *
3088              
3089             name - String to specify the volume name.
3090              
3091             =item *
3092              
3093             notes - Optional. String to specify some notes for the volume.
3094              
3095             =item *
3096              
3097             pagesize - Optional. Integer to set the pagesize to use for the volume.
3098              
3099             =item *
3100              
3101             readcache - Optional. String to enable/disable the volume read cache. Allowed values are "true" or "false".
3102              
3103             =item *
3104              
3105             redundancy - Optional. Integer to set volume storage type. allowed values are 0,
3106             1, or 2 and correspeonf, respectively, to non-redundant, redundant, or dual-redundant.
3107              
3108             =item *
3109              
3110             remoteport - Optional. String to specify the WWN of the remore port.
3111              
3112             =item *
3113              
3114             replayprofile - Optional. String to specify one or more Replay profiles for the volume.
3115              
3116             =item *
3117              
3118             server - Optional. String to specify the server for the volume.
3119              
3120             =item *
3121              
3122             serverindex - Optional. Integer to specify a server by index.
3123              
3124             =item *
3125              
3126             singlepath - Optional. Flag to indicate that only a single port can be used for ampping.
3127              
3128             =item *
3129              
3130             size - Integer to specify the volume size.
3131              
3132             =item *
3133              
3134             storageprofile - Optional. String to specify a Storage Profile by name for the volume.
3135              
3136             =item *
3137              
3138             storageprofileindex - Optional. String to specify a Storage Profile by index for the volume.
3139              
3140             =item *
3141              
3142             storagetype - Optional. String to specify a storage type by name.
3143              
3144             =item *
3145              
3146             storagetypeindex - Optional. String to specify a storage type by index.
3147              
3148             =item *
3149              
3150             writecache - Optional. String to enable/disable writecache. Allowed values are "true" or "false".
3151             Alternatively, respectively, 0 or 1 may be used.
3152              
3153             =item *
3154              
3155             success - A scalar reference which will be either set to true or false based on
3156             the success/failure of the command.
3157              
3158             =item *
3159              
3160             output - Optional. An array reference to hold the CompCU output.
3161              
3162             =back 8
3163              
3164             =cut
3165              
3166             sub volume_create{
3167 0     0 0   my $self=shift;
3168 0           my $arguments=shift;
3169 0           my @command_parameters=qw(boot controller diskfolder folder folderindex localport lun maxwrite name notes pagesize readcache redundancy remoteport replayprofile server serverindex singlepath size storageprofile storageprofileindex storagetype storagetypeindex writecache);
3170 0           my $s="volume create".build_command($arguments,\@command_parameters);
3171 0           my $c=$self->{command};
3172 0           $c=~s/COMMAND/$s/;
3173 0           execute($c,$arguments->{success},$arguments->{output});
3174             }
3175              
3176             =head3 volume delete
3177              
3178             Deletes a Storage Center volume.
3179              
3180             =over 8
3181              
3182             Takes seven parameters. Two are required. Use any one of 'deviceid', 'index', 'name', or 'serialnumber'.
3183              
3184             =item *
3185              
3186             deviceid - String to specify the volume's device id.
3187              
3188             =item *
3189              
3190             index - Integer to specify a volume by index.
3191              
3192             =item *
3193              
3194             name - String to specify a volume by name.
3195              
3196             =item *
3197              
3198             purge - Optional. Flag to indicate if the volume should be purged.
3199              
3200             =item *
3201              
3202             serialnumber - String to specify the volume by serial number.
3203              
3204             =item *
3205              
3206             success - A scalar reference which will be either set to true or false based on
3207             the success/failure of the command.
3208              
3209             =item *
3210              
3211             output - Optional. An array reference to hold the CompCU output.
3212              
3213             =back 8
3214              
3215             =cut
3216              
3217             sub volume_delete{
3218 0     0 0   my $self=shift;
3219 0           my $arguments=shift;
3220 0           my @command_parameters=qw(deviceid index name purge serialnumber);
3221 0           my $s="volume delete".build_command($arguments,\@command_parameters);
3222 0           my $c=$self->{command};
3223 0           $c=~s/COMMAND/$s/;
3224 0           execute($c,$arguments->{success},$arguments->{output});
3225             }
3226              
3227              
3228             =head3 volume erase
3229              
3230             Erases all data from a volume.
3231              
3232             =over 8
3233              
3234             Takes six paramters. Two are required. Use any one of 'deviceid', 'index', 'name', or 'serialnumber'.
3235              
3236             =item *
3237              
3238             deviceid - String to specify the volume's device id.
3239              
3240             =item *
3241              
3242             index - Integer to specify a volume by index.
3243              
3244             =item *
3245              
3246             name - String to specify a volume by name.
3247              
3248             =item *
3249              
3250             serialnumber - String to specify the volume by serial number.
3251              
3252             =item *
3253              
3254             success - A scalar reference which will be either set to true or false based on
3255             the success/failure of the command.
3256              
3257             =item *
3258              
3259             output - Optional. An array reference to hold the CompCU output.
3260              
3261             =back 8
3262              
3263             =cut
3264              
3265             sub volume_erase{
3266 0     0 0   my $self=shift;
3267 0           my $arguments=shift;
3268 0           my @command_parameters=qw(deviceid index name serialnumber);
3269 0           my $s="volume erase".build_command($arguments,\@command_parameters);
3270 0           my $c=$self->{command};
3271 0           $c=~s/COMMAND/$s/;
3272 0           execute($c,$arguments->{success},$arguments->{output});
3273             }
3274              
3275             =head3 volume expand
3276              
3277             Expands the size of the volume.
3278              
3279             =over 8
3280              
3281             Takes seven parameters. Three are required. Use any one of 'deviceid', 'index', 'name', or 'serialnumber'.
3282              
3283             =item *
3284              
3285             deviceid - String to specify the volume's device id.
3286              
3287             =item *
3288              
3289             index - Integer to specify a volume by index.
3290              
3291             =item *
3292              
3293             name - String to specify a volume by name.
3294              
3295             =item *
3296              
3297             serialnumber - String to specify the volume by serial number.
3298              
3299             =item *
3300              
3301             size - Integer to specify the amount by which to expand the volume.
3302              
3303             =item *
3304              
3305             success - A scalar reference which will be either set to true or false based on
3306             the success/failure of the command.
3307              
3308             =item *
3309              
3310             output - Optional. An array reference to hold the CompCU output.
3311              
3312             =back 8
3313              
3314             =cut
3315              
3316             sub volume_expand{
3317 0     0 0   my $self=shift;
3318 0           my $arguments=shift;
3319 0           my @command_parameters=qw(deviceid index name serialnumber size);
3320 0           my $s="volume expand".build_command($arguments,\@command_parameters);
3321 0           my $c=$self->{command};
3322 0           $c=~s/COMMAND/$s/;
3323 0           execute($c,$arguments->{success},$arguments->{output});
3324             }
3325              
3326             =head3 volume map
3327              
3328             Maps an existing volume to a server.
3329              
3330             =over 8
3331              
3332             Takes 16 parameters. Four are required. Use any one of 'deviceid', 'index', 'name',
3333             or 'serialnumber'. Similarily, use any one of 'server' and 'serverindex' as well as
3334             any one of 'boot' or 'lun'.
3335              
3336              
3337             =item *
3338              
3339             boot - Flag to designate the mapped volume as a boot volume.
3340              
3341             =item *
3342              
3343             controller - Optional. String to specify the controller by name.
3344              
3345             =item *
3346              
3347             deviceid - String to specify the volume device id.
3348              
3349             =item *
3350              
3351             force - Optional. Flag to force mapping even if another mapping exists.
3352              
3353             =item *
3354              
3355             index - Integer to specify the index of an existing volume.
3356              
3357             =item *
3358              
3359             localport - Optional. String to set the WWN of the local port to use for the mapping.
3360              
3361             =item *
3362              
3363             lun - Integer to set the Logical Unit Number.
3364              
3365             =item *
3366              
3367             name - String to specify the volume name.
3368              
3369             =item *
3370              
3371             readonly - Optional. Flag to set the map as read only.
3372              
3373             =item *
3374              
3375             remoteport - Optional. String to specify the WWN of the remote port.
3376              
3377             =item *
3378              
3379             serialnumber - String to specify the volume by serialnumber.
3380              
3381             =item *
3382              
3383             server - String to specify the server for the volume.
3384              
3385             =item *
3386              
3387             serverindex - Integer to specify a server by index.
3388              
3389             =item *
3390              
3391             singlepath - Optional. Flag to indicate that only a single port can be used for a mapping.
3392              
3393             =item *
3394              
3395             success - A scalar reference which will be either set to true or false based on
3396             the success/failure of the command.
3397              
3398             =item *
3399              
3400             output - Optional. An array reference to hold the CompCU output.
3401              
3402             =back 8
3403              
3404             =cut
3405              
3406             sub volume_map{
3407 0     0 0   my $self=shift;
3408 0           my $arguments=shift;
3409 0           my @command_parameters=qw(boot controller deviceid force index localport lun name readonly remoteport serialnumber server serverindex singlepath);
3410 0           my $s="volume map".build_command($arguments,\@command_parameters);
3411 0           my $c=$self->{command};
3412 0           $c=~s/COMMAND/$s/;
3413 0           execute($c,$arguments->{success},$arguments->{output});
3414             }
3415              
3416             =head3 volume modify
3417              
3418             Modifies a volumeE<0x0027>s details.
3419              
3420             =over 8
3421              
3422             Takes 14 parameters. Two are required. Use one of 'deviceid', 'index', 'name',
3423             or 'serialnumber'.
3424              
3425             =item *
3426              
3427             deviceid - String to specify the volume's device id.
3428              
3429             =item *
3430              
3431             folder - Optional. String to specify the name of an existing volume folder.
3432              
3433             =item *
3434              
3435             folderindex - Optional. String to specify the index of an existing volume folder.
3436              
3437             =item *
3438              
3439             index - Integer to specify the volume by index.
3440              
3441             =item *
3442              
3443             maxwrite - Optional. Integer to set the maximum size for volume writes.
3444              
3445             =item *
3446              
3447             name - String to specify the volume name.
3448              
3449             =item *
3450              
3451             readcache - Optional. String to enable/disable the volume read cache. Allowed values are "true" or "false".
3452              
3453             =item *
3454              
3455             replayprofile - Optional. String to specify one or more Replay profiles for the volume.
3456              
3457             =item *
3458              
3459             serialnumber - String to specify the volume by serial number.
3460              
3461             =item *
3462              
3463             storageprofile - Optional. String to specify a Storage Profile by name for the volume.
3464              
3465             =item *
3466              
3467             storageprofileindex - Optional. String to specify a Storage Profile by index for the volume.
3468              
3469             =item *
3470              
3471             writecache - Optional. String to enable/disable writecache. Allowed values are "true" or "false".
3472             Alternatively, respectively, 0 or 1 may be used.
3473              
3474             =item *
3475              
3476             success - A scalar reference which will be either set to true or false based on
3477             the success/failure of the command.
3478              
3479             =item *
3480              
3481             output - Optional. An array reference to hold the CompCU output.
3482              
3483             =back 8
3484              
3485             =cut
3486              
3487             sub volume_modify{
3488 0     0 0   my $self=shift;
3489 0           my $arguments=shift;
3490 0           my @command_parameters=qw(deviceid folder folderindex index maxwrite name readcache replayprofile serialnumber storageprofile storageprofileindex writecache);
3491 0           my $s="volume modify".build_command($arguments,\@command_parameters);
3492 0           my $c=$self->{command};
3493 0           $c=~s/COMMAND/$s/;
3494 0           execute($c,$arguments->{success},$arguments->{output});
3495             }
3496              
3497             =head3 volume show
3498              
3499             Retrieves volume information.
3500              
3501             =over 8
3502              
3503             Takes 19 parameters. Two are required.
3504              
3505             =item *
3506              
3507             activesize - Optional. Integer to specify an activesize to filter on.
3508              
3509             =item *
3510              
3511             activesizeblocks - Optional. Integer to specify an activesize (in blocks) to filter on.
3512              
3513             =item *
3514              
3515             csv - Optional. String to specify a filename in which to store csv formatted output.
3516              
3517             =item *
3518              
3519             deviceid - Optional. String to specify a device id to filter on.
3520              
3521             =item *
3522              
3523             folder - Optional. String to specify a folder name to filter on.
3524              
3525             =item *
3526              
3527             index - Optional. Integer to specify a volume's index to filter on.
3528              
3529             =item *
3530              
3531             maxwritesizeblocks - Optional. Integer to specify a maximum write size (in blocks)
3532             to filter on.
3533              
3534             =item *
3535              
3536             name - Optional. String to specify a volume's name to filter on.
3537              
3538             =item *
3539              
3540             readcache - Optional. String to specify a read cache setting to filter on. Allowed values
3541             are "true" or "false".
3542              
3543             =item *
3544              
3545             replaysize - Optional. Integer to specify a Replay size to filter on.
3546              
3547             =item *
3548              
3549             replaysize - Optional. Integer to specify a Replay size (in blocks) to filter on.
3550              
3551             =item *
3552              
3553             serialnumber - Optional. String to specify a volume's serial number on which to filter.
3554              
3555             =item *
3556              
3557             status - Optional. String to specify a volume status to filter on. Allowed values are
3558             "Up", "Down", "Inactive", or "Recycled".
3559              
3560             =item *
3561              
3562             storageprofile - Optional. String to specify a Storage Profile to filter on.
3563              
3564             =item *
3565              
3566             txt - Optional. String to specify a filename to store output in.
3567              
3568             =item *
3569              
3570             writecache - Optional. String to specify a write cache setting to filter on. Allowed values
3571             are "true" or "false".
3572              
3573             =item *
3574              
3575             xml - Optional. String to specify a filename in which to store xml formatted output.
3576              
3577             =item *
3578              
3579             success - A scalar reference which will be either set to true or false based on
3580             the success/failure of the command.
3581              
3582             =item *
3583              
3584             output - An array reference to hold the CompCU output.
3585              
3586             =back 8
3587              
3588             =cut
3589              
3590             sub volume_show{
3591 0     0 0   my $self=shift;
3592 0           my $arguments=shift;
3593 0           my @command_parameters=qw(activesize activesizeblocks csv deviceid folder index maxwriteblocksize name readcache replaysize replaysizeblocks serialnumber status storageprofile txt writecache xml);
3594 0           my $s="volume show".build_command($arguments,\@command_parameters);
3595 0           my $c=$self->{command};
3596 0           $c=~s/COMMAND/$s/;
3597 0           execute_show($c,$arguments->{success},$arguments->{output});
3598             }
3599              
3600             =head3 volume unmap
3601              
3602             Deletes mappings for a volume.
3603              
3604             =over 8
3605              
3606             Takes six paramters. Two are required. Use any one of 'deviceid', 'index', 'name', or 'serialnumber'.
3607              
3608             =item *
3609              
3610             deviceid - String to specify the volume's device id.
3611              
3612             =item *
3613              
3614             index - Integer to specify a volume by index.
3615              
3616             =item *
3617              
3618             name - String to specify a volume by name.
3619              
3620             =item *
3621              
3622             serialnumber - String to specify the volume by serial number.
3623              
3624             =item *
3625              
3626             success - A scalar reference which will be either set to true or false based on
3627             the success/failure of the command.
3628              
3629             =item *
3630              
3631             output - Optional. An array reference to hold the CompCU output.
3632              
3633             =back 8
3634              
3635             =cut
3636              
3637             sub volume_unmap{
3638 0     0 0   my $self=shift;
3639 0           my $arguments=shift;
3640 0           my @command_parameters=qw(deviceid index name serialnumber);
3641 0           my $s="volume unmap".build_command($arguments,\@command_parameters);
3642 0           my $c=$self->{command};
3643 0           $c=~s/COMMAND/$s/;
3644 0           execute($c,$arguments->{success},$arguments->{output});
3645             }
3646              
3647             =head3 volumefolder create
3648              
3649             Creates a volume folder.
3650              
3651             =over 8
3652              
3653             Takes five parameters. Two are required.
3654              
3655             =item *
3656              
3657             name - String to set the volume folder name.
3658              
3659             =item *
3660              
3661             parent - Optional. String to specify the parent folder for this volume folder.
3662              
3663             =item *
3664              
3665             parentindex - Optional. Integer to specify the parent folder for this volume folder by index.
3666              
3667             =item *
3668              
3669             success - A scalar reference which will be either set to true or false based on
3670             the success/failure of the command.
3671              
3672             =item *
3673              
3674             output - Optional. An array reference to hold the CompCU output.
3675              
3676             =back 8
3677              
3678             =cut
3679              
3680             sub volumefolder_create{
3681 0     0 0   my $self=shift;
3682 0           my $arguments=shift;
3683 0           my @command_parameters=qw(name parent parentindex);
3684 0           my $s="volumefolder create".build_command($arguments,\@command_parameters);
3685 0           my $c=$self->{command};
3686 0           $c=~s/COMMAND/$s/;
3687 0           execute($c,$arguments->{success},$arguments->{output});
3688             }
3689              
3690             =head3 volumefolder delete
3691              
3692             Deletes a volume folder.
3693              
3694             =over 8
3695              
3696             Takes five parameters. Three are required. Use one of 'index' or 'name'.
3697              
3698             =item *
3699              
3700             index - Integer to specify the volume folder by index.
3701              
3702             =item *
3703              
3704             name - String to specify the volume folder by name.
3705              
3706             =item *
3707              
3708             parent - String to specify the parent folder.
3709              
3710             =item *
3711              
3712             success - A scalar reference which will be either set to true or false based on
3713             the success/failure of the command.
3714              
3715             =item *
3716              
3717             output - Optional. An array reference to hold the CompCU output.
3718              
3719             =back 8
3720              
3721             =cut
3722              
3723             sub volumefolder_delete{
3724 0     0 0   my $self=shift;
3725 0           my $arguments=shift;
3726 0           my @command_parameters=qw(index name parent);
3727 0           my $s="volumefolder delete".build_command($arguments,\@command_parameters);
3728 0           my $c=$self->{command};
3729 0           $c=~s/COMMAND/$s/;
3730 0           execute($c,$arguments->{success},$arguments->{output});
3731             }
3732              
3733              
3734             =head3 volumefolder modify
3735              
3736             Modifies a volume folder.
3737              
3738             =over 8
3739              
3740             Takes six parameters. Three are required. Use one of 'index' or 'name'
3741             and one of 'parent' or 'parentindex'.
3742              
3743             =item *
3744              
3745             index - Integer to specify the index of the volume folder to modify.
3746              
3747             =item *
3748              
3749             name - String that specifies the volume folder to modify by name.
3750              
3751             =item *
3752              
3753             parent - String to specify the parent folder by name.
3754              
3755             =item *
3756              
3757             parentindex - Integer to specify the parent folder by its index.
3758              
3759             =item *
3760              
3761             success - A scalar reference which will be either set to true or false based on
3762             the success/failure of the command.
3763              
3764             =item *
3765              
3766             output - Optional. An array reference to hold the CompCU output.
3767              
3768             =back 8
3769              
3770             =cut
3771              
3772             sub volumefolder_modify{
3773 0     0 0   my $self=shift;
3774 0           my $arguments=shift;
3775 0           my @command_parameters=qw(index name parent parentindex);
3776 0           my $s="volumefolder modify".build_command($arguments,\@command_parameters);
3777 0           my $c=$self->{command};
3778 0           $c=~s/COMMAND/$s/;
3779 0           execute($c,$arguments->{success},$arguments->{output});
3780             }
3781              
3782             =head3 volumefolder show
3783              
3784             Retrieves volume folder information.
3785              
3786             =over 8
3787              
3788             Takes nine parameters. Two are required.
3789              
3790             =item *
3791              
3792             csv - Optional. String to specify a filename to store csv formatted output.
3793              
3794             =item *
3795              
3796             index - Optional. Integer to specify a volume folder index to filter on.
3797              
3798             =item *
3799              
3800             name - Optional. String to specify the name of a volume folder to filter on.
3801              
3802             =item *
3803              
3804             numvolumes - Optional. Integer to specify a number of volumes to filter on.
3805              
3806             =item *
3807              
3808             path - Optional. String to specify a volume folder path to filter on.
3809              
3810             =item *
3811              
3812             txt - Optional. String to specify a filename to store formatted output.
3813              
3814             =item *
3815              
3816             xml - Optional. String to specify a filename to store xml formatted output.
3817              
3818             =item *
3819              
3820             success - A scalar reference which will be either set to true or false based on
3821             the success/failure of the command.
3822              
3823             =item *
3824              
3825             output - Optional. An array reference to hold the CompCU output.
3826              
3827             =back 8
3828              
3829             =cut
3830              
3831             sub volumefolder_show{
3832 0     0 0   my $self=shift;
3833 0           my $arguments=shift;
3834 0           my @command_parameters=qw(csv index name numvolumes path txt xml);
3835 0           my $s="volumefolder show".build_command($arguments,\@command_parameters);
3836 0           my $c=$self->{command};
3837 0           $c=~s/COMMAND/$s/;
3838 0           execute_show($c,$arguments->{success},$arguments->{output});
3839             }
3840              
3841             =head3 build_command
3842              
3843             Builds the command string to be passed to CompCU.
3844              
3845             =over 8
3846              
3847             Takes 2 required parameters.
3848              
3849             =item *
3850              
3851             arguments - A hash reference containing the arguments passed to the calling subroutine.
3852              
3853             =item *
3854              
3855             parameters - An array reference containing the parametrs allowed for a given command.
3856              
3857             =back 8
3858              
3859             =cut
3860              
3861             sub build_command{
3862 0     0 1   my $arguments=shift;
3863 0           my $parameters=shift;
3864 0           my $s="";
3865 0           foreach my $k (keys %$arguments){
3866 0           my @a=grep {/$k/} @$parameters;
  0            
3867 0 0         unless(!@a){
3868 0           $s.=" -$k $arguments->{$k}";
3869             }
3870             }
3871 0           return $s;
3872             }
3873              
3874             =head3 execute
3875              
3876             Executes the CompCU commands for non "show" functions.
3877              
3878             =over 8
3879              
3880             Takes 3 required parameters.
3881              
3882             =item *
3883              
3884             command - A String containing the command to execute.
3885              
3886             =item *
3887              
3888             success - A scalar reference to the caller's $success
3889              
3890             =item *
3891              
3892             output - An array reference to the caller's $success
3893              
3894             =back 8
3895              
3896             =cut
3897              
3898             sub execute{
3899 0     0 1   my ($command,$success,$output)=@_;
3900 0           my $buffer;
3901 0           my $command_ok=scalar run(command => $command,verbose => 0,buffer =>\$buffer);
3902 0           my @lines=modify_lines($buffer);
3903 0 0         if($command_ok) {
3904 0 0         if(check_success(\@lines)){
3905 0           $$success=1;
3906             }
3907             else{
3908 0           $$success=0;
3909             }
3910 0 0         if($output){
3911 0           my $l=@lines;
3912 0           my @a=@lines[(FIRST..$l - FOOTER_LENGTH)];#the first lines and the last few lines aren't important.
3913 0           unshift @$output, @a; #they just contain header/footer infor from CompCU. The +2 skips the "---" seperator.
3914             }
3915             }
3916             else{
3917 0           $$success=0;
3918 0           unshift @$output, $lines[FIRST];#just send the only output line, it will contain information about what went wrong
3919             }
3920             }
3921              
3922             =head3 execute_show
3923              
3924             Executes the CompCU commands for "show" functions.
3925              
3926             =over 8
3927              
3928             Takes 3 required parameters.
3929              
3930             =item *
3931              
3932             command - A String containing the command to execute.
3933              
3934             =item *
3935              
3936             success - A scalar reference to the caller's $success
3937              
3938             =item *
3939              
3940             output - An array reference to the caller's $success
3941              
3942             =back 8
3943              
3944             =cut
3945              
3946             sub execute_show{
3947 0     0 1   my ($command,$success,$output)=@_;
3948 0           my $buffer;
3949 0           my $command_ok=scalar run(command => $command,verbose => 0,buffer =>\$buffer);
3950 0           my @lines=modify_lines($buffer);
3951 0 0         if($command_ok) {
3952 0 0         if(check_success(\@lines)){
3953 0           $$success=1;
3954             }
3955             else{
3956 0           $$success=0;
3957             }
3958 0 0         if($output){
3959 0           my $l=@lines;
3960 0           my @a=@lines[(FIRST_SHOW,FIRST_SHOW+2..$l - FOOTER_LENGTH)];#the first lines and the last few lines aren't important.
3961 0           unshift @$output, @a; #they just contain header/footer infor from CompCU. The +2 skips the "---" seperator.
3962             }
3963             }
3964             else{
3965 0           $$success=0;
3966 0           unshift @$output, $lines[FIRST_SHOW];#just send the only output line, it will contain information about what went wrong
3967             }
3968             }
3969              
3970             =head3 modify_lines
3971              
3972             Output from CompCU is formatted so that each line ends with a "\r\n".
3973             Also, IPC::Cmd output buffering is buggy. So we get output as a single string
3974             and use this subroutine for preparing the lines of output into an array.
3975              
3976             =over 8
3977              
3978             Takes 1 required parameter.
3979              
3980             =item *
3981              
3982             output - A string containing all the output.
3983              
3984             =back 8
3985              
3986             =cut
3987              
3988             sub modify_lines{
3989 0     0 1   my $output=shift;
3990 0           $output=~tr/\r//d;
3991 0           return split(/\n/,$output);
3992             }
3993              
3994             =head3 check_success
3995              
3996             When CompCU executes a command it will always end with the line
3997             "Successfully finished running Compellent Command Utility (CompCU) application."
3998             If the command was successful. Otherwise this message is not printed.
3999             Returns a true/false value based on whether this success message is found.
4000             This subroutine is redundant in that IPC::CmdE<0x0027>s C will not return
4001             true if not successful. I decided to include this subroutine more out of
4002             paranoia than anything else.
4003              
4004             =over 8
4005              
4006             Takes 1 required parameter.
4007              
4008             =item *
4009              
4010             output - An array reference containing all the output.
4011              
4012             =back 8
4013              
4014             =cut
4015              
4016             sub check_success{
4017 0     0 1   my $output=shift;
4018 0           foreach my $line (@$output){
4019 0 0         if($line=~/Successfully finished/){
4020 0           return 1;
4021             }
4022             }
4023 0           return 0;
4024             }
4025              
4026             1;
4027              
4028             =end lip
4029              
4030             =cut
4031              
4032             __END__