8 use lib "$FindBin::Bin/lib";
9 use lib "$FindBin::Bin/../lib";
15 my $clearadm = new Clearadm;
19 alias => 'defaria.com',
20 admin => 'Andrew DeFaria',
21 os => 'Linux defaria.com 2.6.32-25-generic-pae #45-Ubuntu SMP Sat Oct 16 21:01:33 UTC 2010 i686 GNU/Linux',
23 description => 'Home server',
27 'system' => 'jupiter',
35 'system' => 'jupiter',
36 'filesystem' => '/dev/mapper/jupiter-root',
43 'system' => 'jupiter',
44 'tag' => '/vobs/clearscm',
48 'system' => 'jupiter',
49 'tag' => 'andrew_view',
53 'verbose' => sub { set_verbose },
54 'usage' => sub { Usage },
57 sub DisplayRecord (%) {
60 foreach (keys %record) {
62 display "$_: $record{$_}";
64 display "$_: <undef>";
69 sub DisplayRecords (@) {
77 verbose "Adding system $system{name}";
79 my ($err, $msg) = $clearadm->AddSystem (%system);
82 warning 'You already have that record!';
87 verbose "Finding systems that match \'jup\'";
88 DisplayRecords $clearadm->FindSystem ('jup');
90 verbose "Getting record for \'jupiter\'";
91 DisplayRecord $clearadm->GetSystem ('jupiter');
93 verbose "Finding systems that match \'def\'";
94 DisplayRecords $clearadm->FindSystem ('def');
96 verbose "Getting record for \'defaria.com\'";
97 DisplayRecord $clearadm->GetSystem ('defaria.com');
100 'region' => 'East Coast',
103 verbose "Updating system $system{name}";
105 ($err, $msg) = $clearadm->UpdateSystem ($system{name}, %update);
112 verbose "Adding package $package{name}";
114 my ($err, $msg) = $clearadm->AddPackage (%package);
117 warning 'You already have that record!';
123 'vendor' => 'ClearSCM',
124 'description' => 'This is not ClearSCM\'s version of MySQL',
127 verbose "Updating package $package{name}";
129 ($err, $msg) = $clearadm->UpdatePackage ($package{system}, $package{name}, %update);
134 verbose "Finding packages for $system{name} that match \'My\'";
135 DisplayRecords $clearadm->FindPackage ($system{name}, 'My');
137 verbose ("Getting package for $system{name} record for \'MySQL\'");
138 DisplayRecord $clearadm->GetPackage ($system{name}, 'MySQL');
141 sub TestFilesystem () {
142 verbose "Adding filesystem $filesystem{filesystem}";
144 my ($err, $msg) = $clearadm->AddFilesystem (%filesystem);
149 $filesystem{filesystem} = '/dev/sda5';
150 $filesystem{path} = '/disk2';
152 verbose "Adding filesystem $filesystem{filesystem}";
154 ($err, $msg) = $clearadm->AddFilesystem (%filesystem);
160 'filesystem' => '/dev/sdb5',
163 verbose "Updating filesystem $filesystem{filesystem}";
165 ($err, $msg) = $clearadm->UpdateFilesystem (
166 $filesystem{system}, $filesystem{filesystem}, %update
172 verbose "Finding filesystems for $system{name} that match \'My\'";
173 DisplayRecords $clearadm->FindFilesystem ($system{name}, 'root');
175 verbose ("Getting filesystem for $system{name} record for \'/dev/sdb5\'");
176 DisplayRecord $clearadm->GetFilesystem ($system{name}, '/dev/sdb5');
180 verbose "Adding vob $vob{tag}";
182 my ($err, $msg) = $clearadm->AddVob (%vob);
187 $vob{tag} = '/vobs/clearscm_old';
189 verbose "Adding vob $vob{tag}";
191 ($err, $msg) = $clearadm->AddVob (%vob);
196 verbose "Finding vobs that match \'clearscm\'";
197 DisplayRecords $clearadm->FindVob ('clearscm');
199 verbose ("Getting vob for \'clearscm\'");
200 DisplayRecord $clearadm->GetVob ('clearscm');
204 verbose "Adding view $view{tag}";
206 my ($err, $msg) = $clearadm->AddView (%view);
211 $view{tag} = 'andrew2_view';
213 verbose "Adding view $view{tag}";
215 ($err, $msg) = $clearadm->AddView (%view);
220 verbose "Finding views that match \'andrew\'";
221 DisplayRecords $clearadm->FindView ('andrew');
223 verbose ("Getting view for \'view\'");
224 DisplayRecord $clearadm->GetView ('andrew');
233 ########################
234 verbose "Deleting system $system{name}";
236 my ($err, $msg) = $clearadm->DeleteSystem ($system{name});