#!/usr/bin/perl -I../lib use Data::Dumper; use Getopt::Long; use VMware::API::LabManager; use strict; my $version = ( split ' ', '$Revision: 2.1 $' )[1]; my ( $username, $password, $server); my $orgname = 'Global'; my $workspace = 'Main'; my $ret = GetOptions ( 'username=s' => \$username, 'password=s' => \$password, 'orgname=s' => \$orgname, 'workspace=s' => \$workspace, 'server=s' => \$server ); die "Check the POD. This script needs command line parameters." unless $username and $password and $orgname and $workspace and $server; my $labman = new VMware::API::LabManager ( $username, $password, $server, $orgname, $workspace ); print "THIS WILL DELETE EVERYTHING ON THE TARGET LAB MANAGER SERVER: $server\n\nCTRL-C to avoid this. RETURN to continue with deletion.\n"; ; print "NO REALLY. I MEAN IT. --> EVERYTHING <-- WILL BE DELETED.\n\nCTRL-C to avoid this. RETURN to continue with deletion.\n"; ; my @confs = ( $labman->ListConfigurations(1), $labman->ListConfigurations(2) ); for my $conf (@confs) { my $id = $conf->{id}; my $name = $conf->{name}; if ( $conf->{isDeployed} eq 'true' ) { print "Undeploying config: $name ($id)\n"; my $ret = $labman->ConfigurationUndeploy($id); warn $ret if $ret; } print "Deleting config: $name ($id)\n"; my $ret = $labman->ConfigurationDelete($id); warn $ret if $ret; } my @templates = ( $labman->priv_ListTemplates() ); for my $temp (@templates) { next if $temp eq ''; # WTF? my $id = $temp->{id}; my $name = $temp->{name}; next if $name =~ /^VMwareLM-ServiceVM/; # Internal labman machine if ( $temp->{isDeployed} eq 'true' ) { print "Undeploying template: $name ($id)\n"; my $ret = $labman->priv_TemplatePerformAction($id,2); warn $ret if $ret; } print "Deleting template: $name ($id)\n"; my $ret = $labman->priv_TemplatePerformAction($id,3); warn $ret if $ret; }