in src/Azure.Deployments.Extensibility.Providers.ThirdParty/ThirdPartyExtensibilityProvider.cs [31:62]
public Task<ExtensibilityOperationResponse> GetAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
this.HandleRequestByContainerRegistryAsync(operation: "get", request: request, cancellation: cancellationToken);
public Task<ExtensibilityOperationResponse> PreviewSaveAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
this.HandleRequestByContainerRegistryAsync(operation: "previewSave", request: request, cancellation: cancellationToken);
public Task<ExtensibilityOperationResponse> SaveAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
this.HandleRequestByContainerRegistryAsync(operation: "save", request: request, cancellation: cancellationToken);
public Task<ExtensibilityOperationResponse> DeleteAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
this.HandleRequestByContainerRegistryAsync(operation: "delete", request: request, cancellation: cancellationToken);
private async Task<ExtensibilityProviderContainerRegistry?> TryGetExtensibilityProviderContainerRegistry(string providerName, string tag, CancellationToken cancellation)
{
var client = new ContainerRegistryClient(new($"https://{ContainerRegistryHostname}"), new ContainerRegistryClientOptions
{
Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud,
});
var serverRepo = $"{providerName}/server";
try
{
await client.GetRepository(serverRepo).GetArtifact(tag).GetManifestPropertiesAsync(cancellation);
return new ExtensibilityProviderContainerRegistry(ContainerRegistry: $"{ContainerRegistryHostname}/{serverRepo}", ExternalPort: ExtensibilityContainerPort);
}
catch (RequestFailedException ex) when (ex.Status == 404)
{
return null;
}
}