private void PrintStartTaskInfo(CloudPool pool) { IPagedEnumerable <ComputeNode> nodes = pool.ListComputeNodes(); PagedEnumerableExtensions.ForEachAsync <ComputeNode>(nodes, delegate(ComputeNode node) { Console.WriteLine("***** Start Task Details *****"); Console.WriteLine($"Start time: [{node.StartTaskInformation.StartTime}]"); Console.WriteLine($"State: [{node.StartTaskInformation.State}]"); if (node.StartTaskInformation.Result.Equals(TaskExecutionResult.Failure)) { Console.WriteLine($"Error Category: [{node.StartTaskInformation.FailureInformation.Category}]"); Console.WriteLine($"Error Details: [{node.StartTaskInformation.FailureInformation.Details}]"); Console.WriteLine($"Error Message: [{node.StartTaskInformation.FailureInformation.Message}]"); Console.WriteLine($"Failure Code: [{node.StartTaskInformation.FailureInformation.Code}]"); } Console.WriteLine($"End time: [{node.StartTaskInformation.EndTime}]"); }).Wait(); }
private VirtualMachineConfiguration CreateVirtualMachineConfiguration( BatchClient batchClient, ImageReference imageReference) { List <ImageInformation> nodeAgentSkus = null; IPagedEnumerable <ImageInformation> agentSkus = batchClient.PoolOperations.ListSupportedImages(); Task <List <ImageInformation> > nodeAgentTask = PagedEnumerableExtensions.ToListAsync <ImageInformation>(agentSkus); nodeAgentTask.Wait(); if (nodeAgentTask.Status == TaskStatus.Faulted) { throw new BatchOperationException( "Couldn't retrieve list of Batch supported VM images, aborting ..."); } else { nodeAgentSkus = nodeAgentTask.Result; } /** nodeAgentSkus.ForEach(delegate(ImageInformation img) * { * Console.WriteLine("-------------------------"); * Console.WriteLine("Node SKU: {0}", img.NodeAgentSkuId); * Console.WriteLine("Publisher {0}", img.ImageReference.Publisher); * Console.WriteLine("Offer {0}", img.ImageReference.Offer); * Console.WriteLine("Sku {0}", img.ImageReference.Sku); * Console.WriteLine("-------------------------"); * }); **/ ImageInformation ubuntuAgentSku = nodeAgentSkus.Find( imageRef => imageRef.ImageReference.Publisher == BatchVmConfig.VM_IMAGE_PUBLISHER && imageRef.ImageReference.Offer == BatchVmConfig.VM_IMAGE_OFFER && imageRef.ImageReference.Sku.Contains(BatchVmConfig.VM_IMAGE_SKU)); Console.WriteLine("Batch node agent: {0}", ubuntuAgentSku.NodeAgentSkuId); VirtualMachineConfiguration vmConfig = new VirtualMachineConfiguration( imageReference: imageReference, nodeAgentSkuId: ubuntuAgentSku.NodeAgentSkuId); // nodeAgentSkuId: "batch.node.ubuntu 18.04"); Dictionary <string, string> imageList = GetContainerImageList(); if ((imageList != null) && (imageList.Count > 0)) { string contRegistry = EnvVars[AzureEnvConstants.AZURE_ACR_NAME]; string contRegistryUser = EnvVars[AzureEnvConstants.AZURE_ACR_USER]; string contRegistryUserPwd = EnvVars[AzureEnvConstants.AZURE_ACR_USER_PWD]; // Specify a container registry ContainerRegistry containerRegistry = new ContainerRegistry( registryServer: contRegistry, userName: contRegistryUser, password: contRegistryUserPwd); // Create container configuration, prefetching Docker images from the container registry ContainerConfiguration containerConfig = new ContainerConfiguration(); containerConfig.ContainerImageNames = new List <string>(imageList.Values); containerConfig.ContainerRegistries = new List <ContainerRegistry> { containerRegistry }; vmConfig.ContainerConfiguration = containerConfig; } ; return(vmConfig); }