Quantcast
Channel: VMware Communities : Discussion List - vSphere SDK for Perl
Viewing all articles
Browse latest Browse all 1577

get_view question

$
0
0

Hello,

 

 

I am learning vSphere sdk, and I am trying to replicate the following Java code from a book in Perl:

 

CreateFolderDatacenter.java
package vim25.samples.mo;
import java.net.URL;
import com.vmware.vim25.mo.Folder;
import com.vmware.vim25.mo.ServiceInstance;
public class CreateFolderDatacenter
{
public static void main(String[] args) throws Exception
{
if(args.length != 3)
{
System.out.println(“Usage: java CreateFolderDatacenter” +
“ <url> <username> <password>”);
return;
}
ServiceInstance si = new ServiceInstance(new URL(args[0]),
args[1], args[2], true);
Folder rootFolder = si.getRootFolder();
rootFolder.createDatacenter(“HeadQuarter”);
Folder paFolder = rootFolder.createFolder(“Palo Alto”);
Folder engFolder = paFolder.createFolder(“Engineering”);
engFolder.createDatacenter(“Dev”);
engFolder.createDatacenter(“QA”);
paFolder.createDatacenter(“Sales”);
paFolder.createDatacenter(“Corporate”);
Folder bFolder = rootFolder.createFolder(“Boston”);
bFolder.createDatacenter(“Engineering”);
Folder lFolder = rootFolder.createFolder(“London”);
lFolder.createDatacenter(“Engineering”);
si.getServerConnection().logout();
}

 

 

In Perl  it looks like I have to call get_view every time I get a MOR to dereference. Is there any way in Perl to make the code look cleaner like Java example? My Perl code looks like:

 

 

my $content = Vim::get_service_content();

 

 

my $rf=Vim::get_view(mo_ref => $content->{rootFolder});

 

$rf->CreateDatacenter(name => "Headquarters");

 

my $paMOR = $rf->CreateFolder(name => "Palo Alto");

my $engMOR=(Vim::get_view(mo_ref => $paMOR)->CreateFolder(name => "Engineering"));

 

my $engFolder=Vim::get_view(mo_ref => $engMOR);

 

$engFolder->CreateFolder(name =>"Dev");

$engFolder->CreateFolder(name =>"QA");

$engFolder->CreateFolder(name =>"PROD");

 

my $paFolder=Vim::get_view(mo_ref => $paMOR);

 

$paFolder->CreateDatacenter(name =>"Sales");

$paFolder->CreateDatacenter(name =>"Corporate");

 

etc....

 

 

 

 

   

Viewing all articles
Browse latest Browse all 1577

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>