/// <summary> /// Waits for a compute node to get to the idle state /// </summary> public static void WaitForIdleComputeNode(BatchController controller, BatchAccountContext context, string poolId, string computeNodeId) { RequestInterceptor interceptor = CreateHttpRecordingInterceptor(); BatchClientBehavior[] behaviors = new BatchClientBehavior[] { interceptor }; BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListComputeNodeOptions options = new ListComputeNodeOptions(context, poolId, null, behaviors) { ComputeNodeId = computeNodeId }; DateTime timeout = DateTime.Now.AddMinutes(2); PSComputeNode computeNode = client.ListComputeNodes(options).First(); if (computeNode.State != ComputeNodeState.Idle) { if (DateTime.Now > timeout) { throw new TimeoutException("Timed out waiting for idle compute node"); } Sleep(5000); computeNode = client.ListComputeNodes(options).First(); } }
/// <summary> /// Gets the id of a compute node in the specified pool /// </summary> public static string GetComputeNodeId(BatchController controller, BatchAccountContext context, string poolId, int index = 0) { BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListComputeNodeOptions options = new ListComputeNodeOptions(context, poolId, null); List <PSComputeNode> computeNodes = client.ListComputeNodes(options).ToList(); return(computeNodes[index].Id); }
/// <summary> /// Gets the id of a compute node in the specified pool /// </summary> public static string GetComputeNodeId(BatchController controller, BatchAccountContext context, string poolId) { RequestInterceptor interceptor = CreateHttpRecordingInterceptor(); BatchClientBehavior[] behaviors = new BatchClientBehavior[] { interceptor }; BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListComputeNodeOptions options = new ListComputeNodeOptions(context, poolId, null, behaviors); return(client.ListComputeNodes(options).First().Id); }
public override void ExecuteCmdlet() { ListComputeNodeOptions options = new ListComputeNodeOptions(this.BatchContext, this.PoolId, this.Pool, this.AdditionalBehaviors) { ComputeNodeId = this.Id, Filter = this.Filter, MaxCount = this.MaxCount }; // The enumerator will internally query the service in chunks. Using WriteObject with the enumerate flag will enumerate // the entire collection first and then write the items out one by one in a single group. Using foreach, we can take // advantage of the enumerator's behavior and write output to the pipeline in bursts. foreach (PSComputeNode computeNode in BatchClient.ListComputeNodes(options)) { WriteObject(computeNode); } }
/// <summary> /// Waits for a compute node to get to the idle state /// </summary> public static void WaitForIdleComputeNode(BatchController controller, BatchAccountContext context, string poolId, string computeNodeId) { BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListComputeNodeOptions options = new ListComputeNodeOptions(context, poolId, null) { ComputeNodeId = computeNodeId, Select = "id,state" }; DateTime timeout = DateTime.Now.AddMinutes(5); PSComputeNode computeNode = client.ListComputeNodes(options).First(); while (computeNode.State != ComputeNodeState.Idle) { if (DateTime.Now > timeout) { throw new TimeoutException("Timed out waiting for idle compute node"); } Sleep(5000); computeNode = client.ListComputeNodes(options).First(); } }