Orchestrator Function: WaitForVcTaskEnd

by Simon Sparks · 20 December 2025

Top use this function add it to the class library file named vCenterServerService.ts

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

Filename: vCenterServerService.ts


publicWaitForVcTaskEnd(objVcTask:VcTask,intPollRate:number):any{

while (objVcTask.info!==null){

letobjVcTaskInfoState:VcTaskInfoState=objVcTask.info.state;

if (objVcTaskInfoState.value==="success"){
break;
}
elseif (objVcTaskInfoState.value==="error"){
if (objVcTask.info.error.localizedMessage===null){
throw`Task '${objVcTask.info.name}' has encountered an unknown error`;
}
else{
throw`Task '${objVcTask.info.name}' error: '${objVcTask.info.error.localizedMessage}'`;
}
}
elseif (objVcTaskInfoState.value==="running"){
if (objVcTask.info.progress===null){
this.objLogger.info(`${objVcTask.info.name} - Queued or In Progress...`);
}
else{
this.objLogger.info(`${objVcTask.info.name} - Progress:${objVcTask.info.progress} %`);
}
}

System.sleep(intPollRate*1000);
}

this.objLogger.info(objVcTask.info.name+" - Completed");

System.sleep(2*1000);

if (objVcTask!==null&&objVcTask.info!==null&&objVcTask.info.result_AnyValue!==null){

letobjVcSdkConnection:VcSdkConnection=objVcTask.sdkConnection;

returnVcPlugin.convertToVimManagedObject(objVcSdkConnection,objVcTask.info.result_AnyValue);
}
else{
returnnull;
}
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like