public async Task <List <AdminSubscription> > GetAzureStackARMSubscriptions(AzureTenant azureTenant) { //_AzureContext.LogProvider.WriteLog("GetAzureARMSubscriptions", "Start - azureTenant: " + azureTenant.ToString()); String subscriptionsUrl = this.GetARMServiceManagementUrl() + "subscriptions?api-version=2015-01-01"; AuthenticationResult authenticationResult = await this.TokenProvider.GetToken(this.GetARMTokenResourceUrl(), azureTenant.TenantId, Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior.Auto); //_AzureContext.StatusProvider.UpdateStatus("BUSY: Getting Subscriptions..."); AzureRestRequest azureRestRequest = new AzureRestRequest(subscriptionsUrl, authenticationResult, "GET", false); AzureRestResponse azureRestResponse = await this.AzureRetriever.GetAzureRestResponse(azureRestRequest); JObject subscriptionsJson = JObject.Parse(azureRestResponse.Response); var subscriptions = from subscription in subscriptionsJson["value"] select subscription; List <AdminSubscription> tenantSubscriptions = new List <AdminSubscription>(); foreach (JObject azureSubscriptionJson in subscriptions) { AdminSubscription azureSubscription = new AdminSubscription(this, azureSubscriptionJson, azureTenant, this.AzureEnvironment, this.GetARMServiceManagementUrl(), this.GetARMTokenResourceUrl()); await azureSubscription.GetAzureStackUserSubscriptions(); tenantSubscriptions.Add(azureSubscription); } return(tenantSubscriptions); }
private async Task InitializeARMVMSizes() { AzureContext azureContext = this.AzureSubscription.AzureTenant.AzureContext; azureContext.LogProvider.WriteLog("InitializeARMVMSizes", "Start - Location : " + this.Name); ProviderResourceType provideResourceType = this.AzureSubscription.GetProviderResourceType(ArmConst.MicrosoftCompute, "locations/vmSizes"); if (provideResourceType == null) { azureContext.LogProvider.WriteLog("InitializeARMVMSizes", "Unable to locate Provider Resource Type - Provider : '" + ArmConst.MicrosoftCompute + "' Resource Type: '" + "locations/vmSizes" + "'"); } else if (!provideResourceType.IsLocationSupported(this)) { azureContext.LogProvider.WriteLog("InitializeARMVMSizes", "Provider Resource Type not supported in Location. - Provider : '" + ArmConst.MicrosoftCompute + "' Resource Type: '" + "locations/vmSizes" + "' Location: '" + this.ToString() + "'"); } else { if (_ArmVmSizes == null) { try { AuthenticationResult armToken = await azureContext.TokenProvider.GetToken(this.AzureSubscription.TokenResourceUrl, this.AzureSubscription.AzureTenant.TenantId); // https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-list-sizes-region string url = this.AzureSubscription.ApiUrl + "subscriptions/" + this.AzureSubscription.SubscriptionId + String.Format(ArmConst.ProviderVMSizes, this.Name) + "?api-version=" + this.AzureSubscription.GetProviderMaxApiVersion(ArmConst.MicrosoftCompute, "locations/vmSizes"); azureContext.StatusProvider.UpdateStatus("BUSY: Getting ARM VMSizes Location : " + this.ToString()); AzureRestRequest azureRestRequest = new AzureRestRequest(url, armToken); AzureRestResponse azureRestResponse = await azureContext.AzureRetriever.GetAzureRestResponse(azureRestRequest); JObject locationsVMSizesJson = JObject.Parse(azureRestResponse.Response); azureContext.StatusProvider.UpdateStatus("BUSY: Loading VMSizes for Location: " + this.ToString()); var VMSizes = from VMSize in locationsVMSizesJson["value"] select VMSize; List <VMSize> vmSizes = new List <VMSize>(); foreach (var VMSize in VMSizes) { Arm.VMSize armVMSize = new Arm.VMSize(VMSize); vmSizes.Add(armVMSize); azureContext.StatusProvider.UpdateStatus("BUSY: Instantiated VMSize '" + armVMSize.ToString() + "' for Location: " + this.ToString()); } _ArmVmSizes = vmSizes.OrderBy(a => a.Name).ToList(); } catch (Exception exc) { azureContext.LogProvider.WriteLog("InitializeARMVMSizes", "Error loading VM Sizes - Location : " + this.Name + " Error: " + exc.Message); _ArmVmSizes = new List <VMSize>(); } } } azureContext.LogProvider.WriteLog("InitializeARMVMSizes", "End - Location : " + this.Name); azureContext.StatusProvider.UpdateStatus("Ready"); }
public static async Task <AzureStackEndpoints> LoadMetadataEndpoints(AzureRetriever azureRetriever, string azureStackAdminManagementUrl) { string metadataEndpointsUrlBase = azureStackAdminManagementUrl; if (!metadataEndpointsUrlBase.EndsWith("/")) { metadataEndpointsUrlBase += "/"; } String metadataEndpointsUrl = metadataEndpointsUrlBase + "metadata/endpoints?api-version=2015-01-01"; AzureRestRequest azureRestRequest = new AzureRestRequest(metadataEndpointsUrl); AzureRestResponse azureRestResponse = await azureRetriever.GetAzureRestResponse(azureRestRequest); return(new AzureStackEndpoints(metadataEndpointsUrlBase, azureRestResponse)); }