public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/providers/Microsoft.ApiManagement/service?api-version=2016-10-10";

            List <ApiManagementService> apiManagementServices = await ahc.RequestValue <List <ApiManagementService> >(HttpMethod.Get, url);

            return(apiManagementServices.IsNullOrEmpty()
                ? new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ApiManagementErrorNoServicesFound"))
                : new ActionResponse(ActionStatus.Success, JsonUtility.Serialize(apiManagementServices)));
        }
        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)));
        }
        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);

            int    attemptsInsights = request.DataStore.GetCount("attemptsInsights");
            string nameNamespace    = request.DataStore.GetValue("nameNamespace");

            if (attemptsInsights < RETRIES)
            {
                attemptsInsights++;
                request.DataStore.AddToDataStore("attemptsInsights", attemptsInsights.ToString(), DataStoreType.Public);

                string url  = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.EventHub/namespaces/{nameNamespace}/eventhubs?api-version=2015-08-01";
                string body = $"\"parameters\": {{\"namespaceName\":\"{nameNamespace}\",\"resourceGroupName\":\"{ba.NameResourceGroup}\",\"api-version\":\"2015-08-01\", \"subscriptionId\": \"{ba.IdSubscription}\"}}";

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

                List <EventHub> hubs = await ahc.RequestValue <List <EventHub> >(HttpMethod.Get, url, body);

                if (!hubs.IsNullOrEmpty())
                {
                    foreach (EventHub hub in hubs)
                    {
                        if (hub.Name.EqualsIgnoreCase(INSIGHTS))
                        {
                            return(new ActionResponse(ActionStatus.Success));
                        }
                    }
                }

                Thread.Sleep(SLEEP);

                return(new ActionResponse(ActionStatus.InProgress));
            }
            else
            {
                return(new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("ActivityLogsVerifyInsightsTimeout")));
            }
        }
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            BpstAzure ba = new BpstAzure(request.DataStore);

            AzureHttpClient ahc = new AzureHttpClient(ba.TokenAzure);

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

            string url = $"https://management.azure.com/subscriptions/{ba.IdSubscription}/resourceGroups/{ba.NameResourceGroup}/providers/Microsoft.EventHub/namespaces/{nameNamespace}/AuthorizationRules/RootManageSharedAccessKey/listkeys?api-version=2014-09-01";

            EventHubKeys eventHubKeys = await ahc.Request <EventHubKeys>(HttpMethod.Post, url);

            if (eventHubKeys != null)
            {
                request.DataStore.AddToDataStore("EventHubPrimaryConnectionString", eventHubKeys.PrimaryConnectionString, DataStoreType.Private);
                request.DataStore.AddToDataStore("EventHubPrimaryKey", eventHubKeys.PrimaryKey, DataStoreType.Private);
            }

            return(eventHubKeys == null
                ? new ActionResponse(ActionStatus.Failure, new ActionResponseExceptionDetail("EventHubFailedToQueryKeys"))
                : new ActionResponse(ActionStatus.Success));
        }
        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 #8
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 #10
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)));
        }