Orchestrator Function: Extend Lease for vCACCAFE Catalog Resource

by Simon Sparks · 2 June 2025

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

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

Filename: vRealizeAutomation.ts

Function vCACCAFECatalogResourceLeaseExtend

Description: The following code extends the lease for a vCACCAFE Catalog Resource.

publicvCACCAFECatalogResourceLeaseExtend(strVcVirtualMachineName:string,objVCACCAFEHost:vCACCAFEHost,intNumberOfDaysToAdd:number=14):vCACCAFEResourceActionRequest{

letarrVCACCAFECatalogResource:vCACCAFECatalogResource[]=Server.findAllForType("VCACCAFE:CatalogResource",strVcVirtualMachineName);

letobjCCACCAFECatalogResource:vCACCAFECatalogResource=arrVCACCAFECatalogResource.find((objCCACCAFECatalogResource:vCACCAFECatalogResource):boolean=>{
returnobjCCACCAFECatalogResource.getName()===strVcVirtualMachineName;
});

letobjCCACCAFECatalogResourceParent:vCACCAFECatalogResource=vCACCAFEEntitiesFinder.getCatalogResource(objVCACCAFEHost,objCCACCAFECatalogResource.parentResourceRef.getId());

letarrVCACCAFEConsumerResourceOperation:vCACCAFEConsumerResourceOperation[]=objCCACCAFECatalogResourceParent.getOperations();

letobjVCACCAFEConsumerResourceOperation:vCACCAFEConsumerResourceOperation=arrVCACCAFEConsumerResourceOperation.find((objVCACCAFEConsumerResourceOperation:vCACCAFEConsumerResourceOperation):boolean=>{
returnobjVCACCAFEConsumerResourceOperation.getName()=="Change Lease";
});

letobjDateNewLease:Date=newDate();

objDateNewLease.setDate(objDateNewLease.getDate()+intNumberOfDaysToAdd);

this.objLogger.info(`Setting new lease date to${objDateNewLease}.`);

letobjVCACCAFEDateTimeLiteral:vCACCAFEDateTimeLiteral=newvCACCAFEDateTimeLiteral(objDateNewLease);

letobjPropertiesInputs:Properties=newProperties();
objPropertiesInputs.put("provider-ExpirationDate",objVCACCAFEDateTimeLiteral);

letobjVCACCAFEForm:vCACCAFEForm=vCACCAFERequestsHelper.getRequestFormForResourceAction(objVCACCAFEConsumerResourceOperation);

letarrVCACCAFEFormField:string[]=vCACCAFERequestsHelper.getFormKeys(objVCACCAFEForm);

this.objLogger.info(`Form Fields to Fill In:${JSON.stringify(arrVCACCAFEFormField)}.`);

objVCACCAFEForm=vCACCAFERequestsHelper.setFormValues(objVCACCAFEForm,objPropertiesInputs);

letobjVCACCAFEResourceActionRequest:vCACCAFEResourceActionRequest=vCACCAFERequestsHelper.requestResourceAction(objVCACCAFEConsumerResourceOperation,objVCACCAFEForm);

returnobjVCACCAFEResourceActionRequest;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like