コード例 #1
0
        public async Task AzureResourceGroups_Discovery_Succeeds()
        {
            // Arrange
            var testData = ReadTestData("DiscoverAzureResourceGroupsAsync.json");

            _azureResourceGraph.Setup(m => m.QueryAzureLandscapeAsync("Discover Azure Resource Groups", It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).ReturnsAsync(new PagedQueryResult(testData, 100, 1, 100));
            var expectedResourceGroups = GetAzureResourceGroups();

            // Act
            var pagedAzureResourceGroups = await _azureResourceRepository.DiscoverAzureResourceGroupsAsync(1, 100);

            // Assert
            Assert.NotNull(pagedAzureResourceGroups);
            Assert.NotStrictEqual(expectedResourceGroups, pagedAzureResourceGroups.Result);
            _azureResourceGraph.Verify(m => m.QueryAzureLandscapeAsync("Discover Azure Resource Groups", It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once);
        }
        public async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            Logger.LogTrace("Discovering Azure Resource Groups...");

            PagedPayload <AzureResourceGroupInformation> discoveredResourceGroups;
            var currentPage = 1;

            do
            {
                // Discover Azure subscriptions
                discoveredResourceGroups = await AzureResourceRepository.DiscoverAzureResourceGroupsAsync(pageSize : 1000, currentPage : currentPage);

                // Report discovered information as metric
                foreach (var resourceGroupInformation in discoveredResourceGroups.Result)
                {
                    ReportDiscoveredAzureInfo(resourceGroupInformation);
                }

                currentPage++;
            }while (discoveredResourceGroups.HasMore);

            Logger.LogTrace("Azure Resource Groups discovered.");
        }