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.

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

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

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

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

    let arrVCACCAFEConsumerResourceOperation: vCACCAFEConsumerResourceOperation[] = objCCACCAFECatalogResourceParent.getOperations();

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

    let objDateNewLease: Date = new Date();

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

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

    let objVCACCAFEDateTimeLiteral: vCACCAFEDateTimeLiteral = new vCACCAFEDateTimeLiteral(objDateNewLease);

    let objPropertiesInputs: Properties = new Properties();
    objPropertiesInputs.put("provider-ExpirationDate", objVCACCAFEDateTimeLiteral);

    let objVCACCAFEForm: vCACCAFEForm = vCACCAFERequestsHelper.getRequestFormForResourceAction(objVCACCAFEConsumerResourceOperation);

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

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

    objVCACCAFEForm = vCACCAFERequestsHelper.setFormValues(objVCACCAFEForm, objPropertiesInputs);

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

    return objVCACCAFEResourceActionRequest;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like