public async Task <Response <TriggerRunsQueryResponse> > QueryTriggerRunsByWorkspaceAsync(RunFilterParameters filterParameters, CancellationToken cancellationToken = default)
        {
            if (filterParameters == null)
            {
                throw new ArgumentNullException(nameof(filterParameters));
            }

            using var message = CreateQueryTriggerRunsByWorkspaceRequest(filterParameters);
            await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false);

            switch (message.Response.Status)
            {
            case 200:
            {
                TriggerRunsQueryResponse value = default;
                using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false);

                if (document.RootElement.ValueKind == JsonValueKind.Null)
                {
                    value = null;
                }
                else
                {
                    value = TriggerRunsQueryResponse.DeserializeTriggerRunsQueryResponse(document.RootElement);
                }
                return(Response.FromValue(value, message.Response));
            }
Beispiel #2
0
 public void TriggerRuns_QueryByFactory()
 {
     RunTest("TriggerRuns_QueryByFactory", (example, client, responseCode) =>
     {
         RunFilterParameters filterParams  = GetTypedParameter <RunFilterParameters>(example, client, "filterParameters");
         TriggerRunsQueryResponse response = client.TriggerRuns.QueryByFactory(RGN(example), FN(example), filterParams);
         CheckResponseBody(example, client, responseCode, response);
     });
 }
Beispiel #3
0
        public async Task TestQueryRuns()
        {
            TriggerClient    triggerClient = CreateTriggerClient();
            TriggerRunClient runClient     = CreateRunClient();

            TriggerResource resource = await DisposableTrigger.CreateResource(triggerClient, Recording);

            TriggerStartTriggerOperation startOperation = await triggerClient.StartStartTriggerAsync(resource.Name);

            await startOperation.WaitAndAssertSuccessfulCompletion();

            TriggerRunsQueryResponse response = await runClient.QueryTriggerRunsByWorkspaceAsync(new RunFilterParameters (DateTimeOffset.MinValue, DateTimeOffset.MaxValue));

            Assert.GreaterOrEqual(response.Value.Count, 1);
        }
        public virtual List <PSTriggerRun> ListTriggerRuns(TriggerRunFilterOptions triggerRunFilter)
        {
            List <PSTriggerRun> triggerRuns = new List <PSTriggerRun>();
            var runFilters = new RunFilterParameters()
            {
                LastUpdatedAfter  = triggerRunFilter.TriggerRunStartedAfter,
                LastUpdatedBefore = triggerRunFilter.TriggerRunStartedBefore,
                Filters           = new List <RunQueryFilter>(),
                OrderBy           = new List <RunQueryOrderBy>(),
            };

            if (triggerRunFilter.TriggerName != null)
            {
                runFilters.Filters.Add(
                    new RunQueryFilter()
                {
                    Operand          = RunQueryFilterOperand.TriggerName,
                    OperatorProperty = RunQueryFilterOperator.Equals,
                    Values           = new List <string>()
                    {
                        triggerRunFilter.TriggerName
                    }
                });
            }

            TriggerRunsQueryResponse response = this.DataFactoryManagementClient.TriggerRuns.QueryByFactory(
                triggerRunFilter.ResourceGroupName,
                triggerRunFilter.DataFactoryName,
                runFilters);

            triggerRuns.AddRange(response.Value.Select(tr =>
                                                       new PSTriggerRun(tr, triggerRunFilter.ResourceGroupName, triggerRunFilter.DataFactoryName)));

            string continuationToken = response.ContinuationToken;

            while (!string.IsNullOrWhiteSpace(continuationToken))
            {
                runFilters.ContinuationToken = continuationToken;
                response = this.DataFactoryManagementClient.TriggerRuns.QueryByFactory(triggerRunFilter.ResourceGroupName,
                                                                                       triggerRunFilter.DataFactoryName, runFilters);

                triggerRuns.AddRange(response.Value.Select(tr =>
                                                           new PSTriggerRun(tr, triggerRunFilter.ResourceGroupName, triggerRunFilter.DataFactoryName)));

                continuationToken = response.ContinuationToken;
            }
            return(triggerRuns);
        }
        private void CaptureTriggerRuns_QueryByFactory(DateTime lastUpdatedAfter, DateTime lastUpdatedBefore)
        {
            interceptor.CurrentExampleName = "TriggerRuns_QueryByFactory";

            //Wait for the Trigger to Run
            System.Threading.Thread.Sleep(TimeSpan.FromMinutes(6));

            TriggerRunsQueryResponse response = client.TriggerRuns.QueryByFactory(secrets.ResourceGroupName, secrets.FactoryName, new RunFilterParameters
            {
                Filters = new List <RunQueryFilter>
                {
                    new RunQueryFilter("TriggerName", RunQueryFilterOperator.Equals, new List <string> {
                        triggerName
                    })
                },
                LastUpdatedAfter  = lastUpdatedAfter,
                LastUpdatedBefore = lastUpdatedBefore
            });

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();
            do
            {
                if (response != null && response.Value.Count > 0)
                {
                    return; // found successful run
                }

                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30));

                response = client.TriggerRuns.QueryByFactory(secrets.ResourceGroupName, secrets.FactoryName, new RunFilterParameters
                {
                    Filters = new List <RunQueryFilter>
                    {
                        new RunQueryFilter("TriggerName", RunQueryFilterOperator.Equals, new List <string> {
                            triggerName
                        })
                    },
                    LastUpdatedAfter  = lastUpdatedAfter,
                    LastUpdatedBefore = lastUpdatedBefore,
                    ContinuationToken = response.ContinuationToken
                });
            } while (sw.Elapsed.TotalMinutes <= 3);

            throw new TimeoutException("TriggerRuns_QueryByFactory didn't finish in 5 minutes");
        }
Beispiel #6
0
        public async Task TestCancelRerun()
        {
            TriggerClient    triggerClient = CreateTriggerClient();
            TriggerRunClient runClient     = CreateRunClient();

            TriggerResource resource = await DisposableTrigger.CreateResource(triggerClient, Recording);

            TriggerStartTriggerOperation startOperation = await triggerClient.StartStartTriggerAsync(resource.Name);

            await startOperation.WaitAndAssertSuccessfulCompletion();

            TriggerRunsQueryResponse response = await runClient.QueryTriggerRunsByWorkspaceAsync(new RunFilterParameters (DateTimeOffset.MinValue, DateTimeOffset.MaxValue));

            // Find the active run and cancel (CancelTriggerInstanceAsync)

            // Rerun canceled run (RerunTriggerInstanceAsync)
        }