To use this function add it to the class library file named PluginAVIService.ts
GitHub Repository: https://github.com/SimonSparksUK/Orchestrator
Filename: PluginAVIService.ts
Description: Orchestrator Function to Create an AVI VsVip with IPAM.
Private Function: AviVsVipCreateWithIPAM
public AviVsVipCreateWithIPAM(objAviWorkflowRuntime: AviWorkflowRuntime, strTenant: string = "admin", strAviCloud: string = "Default-Cloud", strVipID: string, strVsVipUUID: string, strName: string, strFQDN: string, strNetworkName: string, strAviIpAddrType: "V4" | "V6", strAutoAllocateIpType: "V4_ONLY", strAviDnsInfoAlgorithm: "DNS_RECORD_RESPONSE_ROUND_ROBIN" | "DNS_RECORD_RESPONSE_CONSISTENT_HASH" = "DNS_RECORD_RESPONSE_CONSISTENT_HASH", strAviDnsInfoType: "DNS_RECORD_OTHER" | "DNS_RECORD_A" | "DNS_RECORD_NS" | "DNS_RECORD_CNAME" | "DNS_RECORD_SOA" | "DNS_RECORD_PTR" | "DNS_RECORD_HINFO" | "DNS_RECORD_MX" | "DNS_RECORD_TXT" | "DNS_RECORD_RP" | "DNS_RECORD_DNSKEY" | "DNS_RECORD_AAAA" | "DNS_RECORD_SRV" | "DNS_RECORD_OPT" | "DNS_RECORD_RRSIG" | "DNS_RECORD_AXFR" | "DNS_RECORD_ANY" = "DNS_RECORD_A", strLogicalRouterTier1: string, intTTL: number = 30, blnAutoAllocateIp: boolean, blnEnabled: boolean, blnAviAllocatedFIp: boolean, blnAutoAllocateFloatingIp: boolean, blnAviAllocatedVip: boolean, blnEastWestPlacement: boolean): AviWorkflowRuntime {
let objAviDnsInfo: AviDnsInfo = this.AviDnsInfoBuild(strFQDN, intTTL, strAviDnsInfoType, strAviDnsInfoAlgorithm)
let arrAviDnsInfo: AviDnsInfo[] = [];
arrAviDnsInfo.push(objAviDnsInfo);
let objAviVroClient: AviVroClient = objAviWorkflowRuntime.getAviVroClient();
let objAviNetwork: AviNetwork = objAviVroClient.getObjectByName("network", strNetworkName, strTenant);
let strAviNetworkRef: string = objAviNetwork.getUrl();
let arrAviSubnet: AviSubnet[] = objAviNetwork.getConfiguredSubnets();
let objAviSubnet: AviSubnet = arrAviSubnet[0];
let objAviIpAddrPrefix: AviIpAddrPrefix = objAviSubnet.getPrefix();
let ip: AviIpAddr = objAviIpAddrPrefix.getIpAddr();
let arrAviIpAddrPrefix: AviIpAddrPrefix[] = [];
arrAviIpAddrPrefix.push(objAviIpAddrPrefix);
let objAviDiscoveredNetwork: AviDiscoveredNetwork = new AviDiscoveredNetwork();
objAviDiscoveredNetwork.setSubnet(arrAviIpAddrPrefix);
objAviDiscoveredNetwork.setNetworkRef(strAviNetworkRef);
let arrAviDiscoveredNetwork: AviDiscoveredNetwork[] = [];
arrAviDiscoveredNetwork.push(objAviDiscoveredNetwork);
let objAviIPNetworkSubnet: AviIPNetworkSubnet = new AviIPNetworkSubnet();
objAviIPNetworkSubnet.setSubnet(objAviIpAddrPrefix);
objAviIPNetworkSubnet.setNetworkRef(strAviNetworkRef);
let objAviIpAddr: AviIpAddr = objAviIpAddrPrefix.getIpAddr();
let objAviVip: AviVip = this.AviVipBuild(strAviIpAddrType, objAviIpAddr.getAddr(), strVipID, blnEnabled, strAutoAllocateIpType, arrAviDiscoveredNetwork, objAviIPNetworkSubnet, blnAviAllocatedFIp, blnAutoAllocateIp, blnAutoAllocateFloatingIp, blnAviAllocatedVip);
let arrAviVip: AviVip[] = [];
arrAviVip.push(objAviVip);
let objAviVsVip: AviVsVip = this.AviVsVipBuild(strAviCloud, strTenant, strName, strVsVipUUID, arrAviVip, arrAviDnsInfo, strLogicalRouterTier1, blnEastWestPlacement);
objAviVroClient.addObject(objAviVsVip, objAviWorkflowRuntime.getWorkflowId(), strTenant);
return objAviWorkflowRuntime;
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
