Orchestrator Function: Create an Empty vCloud vApp and link it to a Virtual Data Center Network

by Simon Sparks · 5 September 2013

To use this function add it to the class library file named vCloudService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: vCloudService.ts

Description: Orchestrator Function to Create an Empty vCloud vApp and the linking of it to a virtual data center network.

Function VclVAppCreate

publicVclVAppCreate(objVclVdc:VclVdc,strVclVAppName:string,objVclOrgVdcNetwork:VclOrgVdcNetwork,strGateway:string,strSubnetMask:string,strIpSyslogServerPrimary:string,strIpSyslogServerSecondary:string,strIpDnsServerPrimary:string,strIpDnsServerSecondary:string,strDnsSuffix:string,strIpAddressRangeStart:string,strIpAddressRangeEnd:string,intSubnetPrefixLength:number=24):void{

letobjVclSyslogServerSettings:VclSyslogServerSettings=newVclSyslogServerSettings();
objVclSyslogServerSettings.syslogServerIp1=strIpSyslogServerPrimary;
objVclSyslogServerSettings.syslogServerIp2=strIpSyslogServerSecondary;

letobjVclIpRange:VclIpRange=newVclIpRange();
objVclIpRange.startAddress=strIpAddressRangeStart;
objVclIpRange.endAddress=strIpAddressRangeEnd;

letobjVclIpRanges:VclIpRanges=newVclIpRanges();
objVclIpRanges.ipRange.add(objVclIpRange);

letobjVclIpScope:VclIpScope=newVclIpScope();
objVclIpScope.dns1="";
objVclIpScope.dns2="";
objVclIpScope.isEnabled=true;
objVclIpScope.gateway=strGateway;
objVclIpScope.netmask=strSubnetMask;
objVclIpScope.subnetPrefixLength=intSubnetPrefixLength;
objVclIpScope.ipRanges=objVclIpRanges;
objVclIpScope.dns1=strIpDnsServerPrimary;
objVclIpScope.dns2=strIpDnsServerSecondary;
objVclIpScope.dnsSuffix=strDnsSuffix;

letobjVclNetworkConfiguration:VclNetworkConfiguration=newVclNetworkConfiguration();
objVclNetworkConfiguration.ipScope=objVclIpScope;
objVclNetworkConfiguration.parentNetwork=objVclOrgVdcNetwork.getReference();
objVclNetworkConfiguration.fenceMode="bridged";
objVclNetworkConfiguration.features=null;
objVclNetworkConfiguration.routerInfo=null;
objVclNetworkConfiguration.backwardCompatibilityMode=false;
objVclNetworkConfiguration.retainNetInfoAcrossDeployments=false;
objVclNetworkConfiguration.syslogServerSettings=objVclSyslogServerSettings;

letobjVclVAppNetworkConfiguration:VclVAppNetworkConfiguration=newVclVAppNetworkConfiguration();
objVclVAppNetworkConfiguration.configuration=objVclNetworkConfiguration;
objVclVAppNetworkConfiguration.description=objVclOrgVdcNetwork.name;
objVclVAppNetworkConfiguration.networkName=objVclOrgVdcNetwork.name;
objVclVAppNetworkConfiguration.isDeployed=true;

letobjVclMsg:VclMsg=newVclMsg();
objVclMsg.value="NetworkConfigSection";

letobjVclNetworkConfigSection:VclNetworkConfigSection=newVclNetworkConfigSection();
objVclNetworkConfigSection.info=objVclMsg;
objVclNetworkConfigSection.networkConfig.add(objVclVAppNetworkConfiguration);

letobjVclInstantiationParams:VclInstantiationParams=newVclInstantiationParams()
objVclInstantiationParams.section.add(objVclNetworkConfigSection);

letobjVclComposeVAppParams:VclComposeVAppParams=newVclComposeVAppParams();
objVclComposeVAppParams.name=strVclVAppName;
objVclComposeVAppParams.description="Orchestrator Deployed vApp -"+strVclVAppName;
objVclComposeVAppParams.deploy=false;
objVclComposeVAppParams.powerOn=false;
objVclComposeVAppParams.allEULAsAccepted=true;
objVclComposeVAppParams.linkedClone=true;
objVclComposeVAppParams.instantiationParams=objVclInstantiationParams;

letobjVclVApp:VclVApp=objVclVdc.composeVApp(objVclComposeVAppParams);

letobjVclTasksInProgress:VclTasksInProgress=objVclVApp.tasks;

if (objVclTasksInProgress!=null){
letarrVclTask:VclTask[]=objVclTasksInProgress.getTasks();

letobjVclTask:VclTask=arrVclTask[0];

this.WaitForVclTask(objVclTask,1);
}

objVclVApp.updateInternalState();
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like