Esempio n. 1
0
        public async Task <ExportPipeline> CreateExportPipelineResourceAsync()
        {
            var exportResourceGroupName = options.ExportPipeline.ResourceGroupName;
            var exportRegistryName      = options.ExportPipeline.RegistryName;

            var registry = await registryClient.Registries.GetAsync(
                exportResourceGroupName,
                exportRegistryName).ConfigureAwait(false);

            if (registry != null)
            {
                var exportPipeline = new ExportPipeline(
                    name: options.ExportPipeline.PipelineName,
                    location: registry.Location,
                    identity: IdentityHelper.GetManagedIdentity(options.ExportPipeline.UserAssignedIdentity),
                    target: new ExportPipelineTargetProperties
                {
                    Type        = "AzureStorageBlobContainer",
                    Uri         = options.ExportPipeline.ContainerUri,
                    KeyVaultUri = options.ExportPipeline.KeyVaultUri
                },
                    options: options.ExportPipeline.Options
                    );

                return(await registryClient.ExportPipelines.CreateAsync(registryName : options.ExportPipeline.RegistryName,
                                                                        resourceGroupName : options.ExportPipeline.ResourceGroupName,
                                                                        exportPipelineName : options.ExportPipeline.PipelineName,
                                                                        exportPipelineCreateParameters : exportPipeline).ConfigureAwait(false));
            }
            else
            {
                throw new ArgumentException($"Could not find registry '{exportRegistryName}'. Please ensure the registry exists in the current resource group {exportResourceGroupName}.");
            }
        }
Esempio n. 2
0
        public async Task ExportImagesAsync(ExportPipeline exportPipeline)
        {
            var pipelineId      = exportPipeline.Id;
            var pipelineRunName = options.ExportPipelineRun.PipelineRunName;
            var targetName      = options.ExportPipelineRun.TargetName;
            var artifacts       = options.ExportPipelineRun.Artifacts;

            Console.WriteLine($"Export PipelineRun properties:");
            Console.WriteLine($"  registryName: {options.ExportPipeline.RegistryName}");
            Console.WriteLine($"  pipelineRunName: {options.ExportPipelineRun.PipelineRunName}");
            Console.WriteLine($"  pipelineResourceId: {pipelineId}");
            Console.WriteLine($"  targetName: {options.ExportPipelineRun.TargetName}");
            Console.WriteLine($"  artifacts: {string.Join(Environment.NewLine, artifacts)}");
            Console.WriteLine($"======================================================================");

            var pipelineRunRequest = new PipelineRunRequest
            {
                PipelineResourceId = pipelineId,
                Target             = new PipelineRunTargetProperties
                {
                    Type = "AzureStorageBlob",
                    Name = targetName
                },
                Artifacts = artifacts
            };

            Console.WriteLine($"Running pipelineRun {pipelineRunName}...");

            var pipelineRun = await registryClient.PipelineRuns.CreateAsync(registryName : options.ExportPipeline.RegistryName,
                                                                            resourceGroupName : options.ExportPipeline.ResourceGroupName,
                                                                            pipelineRunName : pipelineRunName,
                                                                            request : pipelineRunRequest).ConfigureAwait(false);

            if (string.Equals(pipelineRun.ProvisioningState, "Failed", StringComparison.OrdinalIgnoreCase))
            {
                Console.WriteLine($"PipelineRun {pipelineRunName} failed with the inner error '{pipelineRun.Response.PipelineRunErrorMessage}'.");
            }
            else
            {
                Console.WriteLine($"PipelineRun {pipelineRunName} completed successfully!");
                Console.WriteLine($"Uploaded blob {targetName} to {options.ExportPipeline.ContainerUri}.");
            }
        }
Esempio n. 3
0
        public void Validate()
        {
            if (string.IsNullOrWhiteSpace(TenantId))
            {
                throw new ArgumentNullException(nameof(TenantId));
            }

            if (string.IsNullOrWhiteSpace(MIClientId) &&
                (string.IsNullOrWhiteSpace(SPClientId) || string.IsNullOrWhiteSpace(SPClientSecret)))
            {
                throw new ArgumentNullException($"Missing {nameof(MIClientId)} or {nameof(SPClientId)}/{nameof(SPClientSecret)}");
            }

            if (string.IsNullOrWhiteSpace(SubscriptionId))
            {
                throw new ArgumentNullException(nameof(SubscriptionId));
            }

            ExportPipeline.Validate();
            ImportPipeline.Validate();
        }
 /// <summary>
 /// Creates an export pipeline for a container registry with the specified
 /// parameters.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group to which the container registry belongs.
 /// </param>
 /// <param name='registryName'>
 /// The name of the container registry.
 /// </param>
 /// <param name='exportPipelineName'>
 /// The name of the export pipeline.
 /// </param>
 /// <param name='exportPipelineCreateParameters'>
 /// The parameters for creating an export pipeline.
 /// </param>
 public static ExportPipeline Create(this IExportPipelinesOperations operations, string resourceGroupName, string registryName, string exportPipelineName, ExportPipeline exportPipelineCreateParameters)
 {
     return(operations.CreateAsync(resourceGroupName, registryName, exportPipelineName, exportPipelineCreateParameters).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Creates an export pipeline for a container registry with the specified
 /// parameters.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group to which the container registry belongs.
 /// </param>
 /// <param name='registryName'>
 /// The name of the container registry.
 /// </param>
 /// <param name='exportPipelineName'>
 /// The name of the export pipeline.
 /// </param>
 /// <param name='exportPipelineCreateParameters'>
 /// The parameters for creating an export pipeline.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async System.Threading.Tasks.Task <ExportPipeline> BeginCreateAsync(this IExportPipelinesOperations operations, string resourceGroupName, string registryName, string exportPipelineName, ExportPipeline exportPipelineCreateParameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginCreateWithHttpMessagesAsync(resourceGroupName, registryName, exportPipelineName, exportPipelineCreateParameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }