Exemplo n.º 1
0
        public async Task <List <AzureTenant> > GetAzureARMTenants(bool allowRestCacheUse = false)
        {
            this.LogProvider.WriteLog("GetAzureARMTenants", "Start");

            if (_ArmTenants != null)
            {
                return(_ArmTenants);
            }

            if (this.TokenProvider == null)
            {
                throw new ArgumentNullException("TokenProvider Context is null.  Unable to call Azure API without TokenProvider.");
            }

            AuthenticationResult tenantAuthenticationResult = await this.TokenProvider.GetToken(this.AzureEnvironment.ResourceManagerEndpoint, Guid.Empty);

            String tenantUrl = this.AzureEnvironment.ResourceManagerEndpoint + "tenants?api-version=2015-01-01";

            this.StatusProvider.UpdateStatus("BUSY: Getting Tenants...");

            AzureRestRequest  azureRestRequest  = new AzureRestRequest(tenantUrl, tenantAuthenticationResult, "GET", allowRestCacheUse);
            AzureRestResponse azureRestResponse = await this.AzureRetriever.GetAzureRestResponse(azureRestRequest);

            JObject tenantsJson = JObject.Parse(azureRestResponse.Response);

            var tenants = from tenant in tenantsJson["value"]
                          select tenant;

            _ArmTenants = new List <AzureTenant>();

            foreach (JObject tenantJson in tenants)
            {
                try
                {
                    AzureTenant azureTenant = new AzureTenant(this, tenantJson);
                    await azureTenant.InitializeChildren(this, allowRestCacheUse);

                    _ArmTenants.Add(azureTenant);
                }
                catch (Exception exc)
                {
                    this.LogProvider.WriteLog("GetAzureARMTenants", "Error getting Azure Tenant: '" + exc.Message);
                }
            }

            return(_ArmTenants);
        }
Exemplo n.º 2
0
        public async Task <List <AzureTenant> > GetAzureARMTenants()
        {
            _AzureContext.LogProvider.WriteLog("GetAzureARMTenants", "Start");

            if (_ArmTenants != null)
            {
                return(_ArmTenants);
            }

            if (_AzureContext == null)
            {
                throw new ArgumentNullException("AzureContext is null.  Unable to call Azure API without Azure Context.");
            }
            if (_AzureContext.TokenProvider == null)
            {
                throw new ArgumentNullException("TokenProvider Context is null.  Unable to call Azure API without TokenProvider.");
            }
            if (_AzureContext.TokenProvider.AccessToken == null)
            {
                throw new ArgumentNullException("AccessToken Context is null.  Unable to call Azure API without AccessToken.");
            }

            String tenantUrl = _AzureContext.AzureServiceUrls.GetARMServiceManagementUrl() + "tenants?api-version=2015-01-01";

            _AzureContext.StatusProvider.UpdateStatus("BUSY: Getting Tenants...");

            AzureRestRequest  azureRestRequest  = new AzureRestRequest(tenantUrl, _AzureContext.TokenProvider.AccessToken, "GET", true);
            AzureRestResponse azureRestResponse = await _AzureContext.AzureRetriever.GetAzureRestResponse(azureRestRequest);

            JObject tenantsJson = JObject.Parse(azureRestResponse.Response);

            var tenants = from tenant in tenantsJson["value"]
                          select tenant;

            _ArmTenants = new List <AzureTenant>();

            foreach (JObject tenantJson in tenants)
            {
                AzureTenant azureTenant = new AzureTenant(tenantJson, _AzureContext);
                await azureTenant.InitializeChildren();

                _ArmTenants.Add(azureTenant);
            }

            return(_ArmTenants);
        }