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.
