コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }