private bool CreateWorkspace(LogAnalyticsWorkspaceModel workspaceModel = null) { Log.Info("enter"); bool response = false; // create workspaceModel Log.Info($"creating workspaceModel {Config.LogAnalyticsWorkspaceName}"); if (Config.LogAnalyticsCreate) { _arm.CreateResourceGroup($"/subscriptions/{Config.AzureSubscriptionId}/resourcegroups/{Config.AzureResourceGroup}", Config.AzureResourceGroupLocation); } string resourceId = $"/subscriptions/{Config.AzureSubscriptionId}/resourcegroups/{Config.AzureResourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{Config.LogAnalyticsWorkspaceName}"; if (workspaceModel == null) { Log.Info("creating default workspaceModel"); workspaceModel = new LogAnalyticsWorkspaceModel() { location = Config.AzureResourceGroupLocation, properties = new LogAnalyticsWorkspaceModel.Properties() { retentionInDays = Config.LogAnalyticsWorkspaceSku.ToLower() == "free" ? 7 : 30, source = "Azure", sku = new LogAnalyticsWorkspaceModel.Properties.Sku() { name = Config.LogAnalyticsWorkspaceSku } } }; } Http http = _arm.ProvisionResource(resourceId, JsonConvert.SerializeObject(workspaceModel), _logAnalyticsApiVer); if (!http.Success) { return(false); } response = GetCurrentWorkspace(JsonConvert.DeserializeObject <LogAnalyticsWorkspaceRecordResult>(http.ResponseStreamString).properties.customerId); // set new key Config.LogAnalyticsKey = GetWorkspacePrimaryKey(); return(response); }
private bool GetCurrentWorkspace(string workspaceId = null) { Log.Info("enter"); string url = $"{ManagementAzureCom}/subscriptions/{Config.AzureSubscriptionId}/providers/Microsoft.OperationalInsights/workspaces?{_logAnalyticsApiVer}"; Http http = _arm.SendRequest(url); workspaceId = workspaceId ?? Config.LogAnalyticsId; LogAnalyticsWorkspaceRecordResult[] workspaces = (JsonConvert.DeserializeObject <LogAnalyticsWorkspaceRecordResults>(http.ResponseStreamString)).value.ToArray(); CurrentWorkspace = workspaces.FirstOrDefault(x => x.properties.customerId == workspaceId); Log.Info("current workspaceModel:", ConsoleColor.Green, null, CurrentWorkspace); if (CurrentWorkspace != null) { Config.AzureResourceGroupLocation = Config.AzureResourceGroupLocation ?? CurrentWorkspace.location; Config.LogAnalyticsWorkspaceName = Config.LogAnalyticsWorkspaceName ?? CurrentWorkspace.name; Config.LogAnalyticsId = CurrentWorkspace.properties.customerId; _currentWorkspaceModelModel = GetCurrentWorkspaceModel(); } return(http.Success & CurrentWorkspace != null); }
private LogAnalyticsWorkspaceModel GetCurrentWorkspaceModel() { LogAnalyticsWorkspaceModel currentWorkspaceModel = new LogAnalyticsWorkspaceModel(); if (ParseWorkspaceResourceId(CurrentWorkspace.id)) { currentWorkspaceModel.location = CurrentWorkspace.location; currentWorkspaceModel.properties = new LogAnalyticsWorkspaceModel.Properties() { retentionInDays = CurrentWorkspace.properties.retentionInDays, sku = new LogAnalyticsWorkspaceModel.Properties.Sku() { name = CurrentWorkspace.properties.sku.name } }; } else { Log.Error("unable to get current workspaceModel model"); } return(currentWorkspaceModel); }