// Exports an Activity Log for the given subscription to Event Hub
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            string apiVersion    = "2016-03-01";
            string ehnamespace   = request.DataStore.GetValue("ActivityLogNamespace");
            string resourceGroup = request.DataStore.GetValue("SelectedResourceGroup");
            string subscription  = request.DataStore.GetJson("SelectedSubscription", "SubscriptionId");
            string token         = request.DataStore.GetJson("AzureToken", "access_token");

            string body = $"{{\"id\":null,\"location\":null,\"name\":null,\"properties\":{{\"categories\":[\"Write\",\"Delete\",\"Action\"],\"storageAccountId\":null,\"locations\":[\"australiaeast\",\"australiasoutheast\",\"brazilsouth\",\"canadacentral\",\"canadaeast\",\"centralindia\",\"centralus\",\"eastasia\",\"eastus\",\"eastus2\",\"japaneast\",\"japanwest\",\"koreacentral\",\"koreasouth\",\"northcentralus\",\"northeurope\",\"southcentralus\",\"southindia\",\"southeastasia\",\"uksouth\",\"ukwest\",\"westcentralus\",\"westeurope\",\"westindia\",\"westus\",\"westus2\",\"global\"],\"retentionPolicy\":{{\"enabled\":false,\"days\":0}},\"serviceBusRuleId\":\"/subscriptions/{subscription}/resourceGroups/{resourceGroup}/providers/Microsoft.EventHub/namespaces/{ehnamespace}/authorizationrules/RootManageSharedAccessKey\"}},\"tags\":null}}";
            string uri  = $"https://management.azure.com/subscriptions/{subscription}/providers/microsoft.insights/logprofiles/default?api-version={apiVersion}";

            AzureHttpClient ahc = new AzureHttpClient(token, subscription);

            bool isSuccess = await ahc.IsSuccess(HttpMethod.Put, uri, body);

            for (int i = 0; i < ATTEMPTS && !isSuccess; i++)
            {
                Thread.Sleep(WAIT);
                isSuccess = await ahc.IsSuccess(HttpMethod.Put, uri, body);
            }

            string logProfileError = string.Empty;

            if (!isSuccess)
            {
                logProfileError = await ahc.Test(HttpMethod.Put, uri);
            }

            return(isSuccess
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ActivityLogsErrorExportingToEventHub", logProfileError)));
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string nameStreamAnalyticsJob = request.DataStore.GetValue("nameStreamAnalyticsJob");

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.StreamAnalytics/streamingjobs/{nameStreamAnalyticsJob}/start?api-version=2015-10-01";

            string error = await ahc.Test(HttpMethod.Post, url);

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("StreamAnalyticsToggleFailure", error)));
        }
Beispiel #3
0
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            string apiVersion   = "2016-03-01";
            string subscription = request.DataStore.GetJson("SelectedSubscription", "SubscriptionId");
            string token        = request.DataStore.GetJson("AzureToken", "access_token");

            string uri = $"https://management.azure.com/subscriptions/{subscription}/providers/microsoft.insights/logprofiles/default?api-version={apiVersion}";

            AzureHttpClient ahc = new AzureHttpClient(token, subscription);

            string logProfileError = await ahc.Test(HttpMethod.Get, uri);

            return(string.IsNullOrEmpty(logProfileError)
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ActivityLogsInsufficientPermissions", logProfileError)));
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string nameStreamAnalyticsJob = request.DataStore.GetValue("nameStreamAnalyticsJob");

            string query = "SELECT CreatedDate,ServiceName,RequestId,IPAddress,Operation,OperationId,Api,ApiId,Product,ProductId,SubscriptionName,SubscriptionId,Length\r\nINTO [TemplatesSQLRequest]\r\nFROM [APIMEventHub] TIMESTAMP BY CreatedDate\r\nWHERE Type = 'Request'\r\n\r\nSELECT CreatedDate,ServiceName,RequestId,StatusCode,StatusReason,Length\r\nINTO [TemplatesSQLResponse]\r\nFROM [APIMEventHub] TIMESTAMP BY CreatedDate\r\nWHERE Type = 'Response'\r\n\r\nSELECT CreatedDate,ServiceName,RequestId,Source,Reason,Message \r\nINTO [TemplatesSQLError]\r\nFROM [APIMEventHub] TIMESTAMP BY CreatedDate\r\nWHERE Type = 'Error'";

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.StreamAnalytics/streamingjobs/{nameStreamAnalyticsJob}/transformations/Transformation?api-version=2015-10-01";

            StreamAnalyticsQueryPropertiesWrapper body = new StreamAnalyticsQueryPropertiesWrapper(query);

            string error = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(body));

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("StreamAnalyticsUpdateQueryFailure", error)));
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            string nameNamespace = request.DataStore.GetValue("nameNamespace");

            ActivityLogProfile logProfile = new ActivityLogProfile(ba.IdSubscription, ba.NameResourceGroup, nameNamespace);

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/providers/microsoft.insights/logprofiles/default?api-version=2016-03-01";

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure, ba.IdSubscription);

            string logProfileError = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(logProfile));

            request.DataStore.AddToDataStore("nameEventHub", INSIGHTS_OPERATIONAL_LOGS, DataStoreType.Private);

            return(string.IsNullOrEmpty(logProfileError)
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ActivityLogsErrorExportingToEventHub", logProfileError)));
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba  = new BpstAzure(request.DataStore);
            BpstSql   sql = new BpstSql(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            StreamAnalyticsOutputSql parameters = JsonUtility.Deserialize <StreamAnalyticsOutputSql>(request.DataStore.GetJson("streamAnalyticsOutputSql"));
            string nameStreamAnalyticsJob       = request.DataStore.GetValue("nameStreamAnalyticsJob");

            string aliasOutput = parameters.Name;

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.StreamAnalytics/streamingjobs/{nameStreamAnalyticsJob}/outputs/{aliasOutput}?api-version=2015-10-01";

            StreamAnalyticsOutputSqlPropertiesWrapper body = new StreamAnalyticsOutputSqlPropertiesWrapper(sql, parameters.Table);

            string error = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(body));

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("StreamAnalyticsSetOutputFailure", error)));
        }
Beispiel #7
0
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string aliasInput             = request.DataStore.GetValue("nameStreamAnalyticsInputEventHub");
            string keyPrimary             = request.DataStore.GetValue("EventHubPrimaryKey");
            string nameEventHub           = request.DataStore.GetValue("nameEventHub");
            string nameNamespace          = request.DataStore.GetValue("nameNamespace");
            string nameStreamAnalyticsJob = request.DataStore.GetValue("nameStreamAnalyticsJob");

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.StreamAnalytics/streamingjobs/{nameStreamAnalyticsJob}/inputs/{aliasInput}?api-version=2015-10-01";

            StreamAnalyticsInputPropertiesWrapper body = new StreamAnalyticsInputPropertiesWrapper(nameEventHub, nameNamespace, keyPrimary);

            string error = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(body));

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("StreamAnalyticsSetInputFailure", error)));
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string idApimLogger  = request.DataStore.GetValue("IdApimLogger");
            string idApimService = request.DataStore.GetValue("IdApimService");

            string policyContent = File.ReadAllText(Path.Combine(request.Info.App.AppFilePath, "Service/Policy.txt"));

            policyContent = policyContent.Replace("$(idLogger)", idApimLogger);

            ApiManagementPolicy policy = new ApiManagementPolicy(idApimService, policyContent);

            string url = $"https://management.azure.com{idApimService}/policies/policy?api-version=2017-03-01";

            string error = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(policy));

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ApiManagementFailedToUpdatePolicy", error)));
        }
Beispiel #9
0
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string connectionString = request.DataStore.GetValue("EventHubPrimaryConnectionString");
            string idApimLogger     = RandomGenerator.GetRandomHexadecimal("bpst-apim-l-");
            string idApimService    = request.DataStore.GetValue("IdApimService");
            string nameEventHub     = request.DataStore.GetValue("nameEventHub");

            request.DataStore.AddToDataStore("IdApimLogger", idApimLogger, DataStoreType.Private);

            ApiManagementLogger logger = new ApiManagementLogger(idApimService, idApimLogger, nameEventHub, connectionString);

            string url = $"https://management.azure.com{idApimService}/loggers/{idApimLogger}?api-version=2017-03-01";

            string error = await ahc.Test(HttpMethod.Put, url, JsonUtility.Serialize(logger));

            return(error == null
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ApiManagementFailedToCreateLogger", error)));
        }