public AuthorizationManager(
     IHttpContextAccessor contextAccessor,
     ITokenAcquisition tokenAcquisition,
     IConfiguration configuration,
     IAzureResourceProvider azureResourceProvider,
     IGraphProvider graphProvider) : base(contextAccessor, tokenAcquisition)
 {
     _azureResourceProvider = azureResourceProvider;
     _configuration         = configuration;
     _graphProvider         = graphProvider;
 }
 public StorageController(
     IConfiguration configuration,
     IManagementClientProvider managementClientProvider,
     CloudBlobClient cloudBlobClient,
     IAssetRepoCoordinator assetRepoCoordinator,
     IEnvironmentCoordinator environmentCoordinator,
     IPackageCoordinator packageCoordinator,
     IAzureResourceProvider azureResourceProvider) : base(environmentCoordinator, packageCoordinator, assetRepoCoordinator)
 {
     _configuration            = configuration;
     _azureResourceProvider    = azureResourceProvider;
     _managementClientProvider = managementClientProvider;
 }
 public AssetRepoCoordinator(
     IConfigRepository <AssetRepository> configCoordinator,
     ITemplateProvider templateProvider,
     IIdentityProvider identityProvider,
     IDeploymentQueue deploymentQueue,
     IManagementClientProvider clientProvider,
     IAzureResourceProvider azureResourceProvider,
     ILogger <AssetRepoCoordinator> logger)
 {
     _configCoordinator     = configCoordinator;
     _templateProvider      = templateProvider;
     _identityProvider      = identityProvider;
     _deploymentQueue       = deploymentQueue;
     _clientProvider        = clientProvider;
     _azureResourceProvider = azureResourceProvider;
     _logger = logger;
 }
Beispiel #4
0
        private static IAssetRepoCoordinator CreateAssetRepoCoordinator(
            IServiceProvider p,
            IManagementClientProvider clientProvider,
            IAzureResourceProvider resourceProvider)
        {
            var cbc   = p.GetRequiredService <CloudBlobClient>();
            var cache = p.GetRequiredService <IMemoryCache>();

            return(new AssetRepoCoordinator(
                       new CachingConfigRepository <AssetRepository>(
                           new GenericConfigRepository <AssetRepository>(cbc.GetContainerReference("storage")),
                           cache),
                       p.GetRequiredService <ITemplateProvider>(),
                       p.GetRequiredService <IIdentityProvider>(),
                       p.GetRequiredService <IDeploymentQueue>(),
                       clientProvider,
                       resourceProvider,
                       p.GetRequiredService <ILogger <AssetRepoCoordinator> >()));
        }
Beispiel #5
0
 public StorageController(
     IConfiguration configuration,
     IManagementClientProvider managementClientProvider,
     IAssetRepoCoordinator assetRepoCoordinator,
     IEnvironmentCoordinator environmentCoordinator,
     IPackageCoordinator packageCoordinator,
     IAzureResourceProvider azureResourceProvider,
     IDeploymentCoordinator deploymentCoordinator,
     IIdentityProvider identityProvider,
     ITokenAcquisition tokenAcquisition,
     ILogger <StorageController> logger) : base(
         environmentCoordinator,
         packageCoordinator,
         assetRepoCoordinator,
         tokenAcquisition)
 {
     _configuration            = configuration;
     _azureResourceProvider    = azureResourceProvider;
     _managementClientProvider = managementClientProvider;
     _deploymentCoordinator    = deploymentCoordinator;
     _identityProvider         = identityProvider;
     _logger = logger;
 }
        //
        // Deployment operations
        //
        public async Task BeginRepositoryDeploymentAsync(AssetRepository repository, IManagementClientProvider managementClientProvider, IAzureResourceProvider azureResourceProvider)
        {
            using (var client = await managementClientProvider.CreateResourceManagementClient(repository.SubscriptionId))
            {
                await client.ResourceGroups.CreateOrUpdateAsync(
                    repository.ResourceGroupName,
                    new ResourceGroup(
                        repository.Subnet.Location, // The subnet location pins us to a region
                        tags : AzureResourceProvider.GetEnvironmentTags(repository.EnvironmentName)));

                await azureResourceProvider.AssignManagementIdentityAsync(
                    repository.SubscriptionId,
                    repository.ResourceGroupResourceId,
                    AzureResourceProvider.ContributorRole,
                    _identityProvider.GetPortalManagedServiceIdentity());

                repository.DeploymentName = "FileServerDeployment";
                await UpdateRepository(repository);

                await DeployFileServer(repository as NfsFileServer, managementClientProvider);
            }
        }