Example #1
0
 public static async Task <Microsoft.Azure.Management.Fluent.IAzure> GetAzure(this IAuthJanitorProvider provider)
 {
     return(await Microsoft.Azure.Management.Fluent.Azure
            .Configure()
            .Authenticate(provider.Credential.CreateAzureCredentials())
            .WithDefaultSubscriptionAsync());
 }
        public async Task <IEnumerable <ProviderResourceSuggestion> > EnumerateProviders(AccessTokenCredential credential, IAuthJanitorProvider provider)
        {
            provider.Credential = credential;
            if (provider is ICanEnumerateResourceCandidates)
            {
                var enumerable = provider as ICanEnumerateResourceCandidates;
                try
                {
                    var results = await enumerable.EnumerateResourceCandidates(GetProviderConfiguration(provider.GetType().AssemblyQualifiedName, provider.SerializedConfiguration));

                    return(results.Select(r => new ProviderResourceSuggestion()
                    {
                        Name = r.Name,
                        ProviderType = r.ProviderType,
                        Configuration = r.Configuration,
                        SerializedConfiguration = JsonSerializer.Serialize <object>(r.Configuration),
                        AddressableNames = r.AddressableNames.Distinct(),
                        ResourceValues = r.ResourceValues.Distinct(),
                        ResourcesAddressingThis = r.ResourcesAddressingThis
                    }));
                }
                catch (Exception ex)
                {
                    _serviceProvider.GetRequiredService <ILogger <ProviderManagerService> >().LogError(ex, "Error enumerating resource candidates for provider type " + provider.GetType().AssemblyQualifiedName);
                }
            }
            return(new ProviderResourceSuggestion[0]);
        }