public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            string          azure_access_token = request.DataStore.GetJson("AzureToken", "access_token");
            string          subscription       = request.DataStore.GetJson("SelectedSubscription", "SubscriptionId");
            string          resourceGroup      = request.DataStore.GetValue("SelectedResourceGroup");
            string          apiVersion         = "2015-08-01";
            string          ehnamespace        = request.DataStore.GetValue("ActivityLogNamespace");
            string          uri            = $"https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resourceGroup}/providers/Microsoft.EventHub/namespaces/{ehnamespace}/eventhubs?api-version={apiVersion}";
            string          body           = $"\"parameters\": {{\"namespaceName\":\"{ehnamespace}\",\"resourceGroupName\":\"{resourceGroup}\",\"api-version\":\"2015-08-01\", \"subscriptionId\": \"{subscription}\"}}";
            AzureHttpClient ahc            = new AzureHttpClient(azure_access_token, subscription);
            bool            areHubsPresent = false;

            for (int i = 0; i < RETRIES && !areHubsPresent; i++)
            {
                if (!areHubsPresent)
                {
                    Thread.Sleep(SLEEP);
                }
                List <EventHub> hubs = await ahc.RequestValue <List <EventHub> >(HttpMethod.Get, uri, body);

                if (!hubs.IsNullOrEmpty())
                {
                    foreach (EventHub hub in hubs)
                    {
                        if (hub.Name.EqualsIgnoreCase(INSIGHTS))
                        {
                            areHubsPresent = true;
                            break;
                        }
                    }
                }
            }
            return(areHubsPresent ? new ActionResponse(ActionStatus.Success) : new ActionResponse(ActionStatus.Failure));
        }
Example #2
0
        public override async Task <ActionResponse> ExecuteActionAsync(ActionRequest request)
        {
            AzureHttpClient ahc = new AzureHttpClient(request.DataStore.GetJson("AzureToken", "access_token"));

            List <PowerAppEnvironment> environments = await ahc.RequestValue <List <PowerAppEnvironment> >(HttpMethod.Get, PowerAppUtility.URL_POWERAPPS_ENVIRONMENTS);

            bool foundEnvironment = false;

            if (environments.IsNullOrEmpty())
            {
                PowerAppUtility.SkipPowerApp(request.DataStore);
                foundEnvironment = true;
            }
            else
            {
                for (int i = 0; i < environments.Count && !foundEnvironment; i++)
                {
                    PowerAppEnvironment environment = environments[i];
                    if (environment.Properties != null && environment.Properties.IsDefault && environment.Properties.Permissions != null && environment.Properties.Permissions.CreatePowerApp != null)
                    {
                        request.DataStore.AddToDataStore("PowerAppEnvironment", environment.Name, DataStoreType.Private);
                        foundEnvironment = true;
                    }
                }
            }

            return(foundEnvironment
                ? new ActionResponse(ActionStatus.Success)
                : new ActionResponse(ActionStatus.Failure, JsonUtility.GetEmptyJObject(), "PowerAppNoEnvironment"));
        }
        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);

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