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); }
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); }