Esempio n. 1
0
    public static async Task <Operation> PollUntilCompletedAsync(this Operation operation, string projectId, string zone)
    {
        ZoneOperationsClient operationClient = await ZoneOperationsClient.CreateAsync();

        GetZoneOperationRequest pollRequest = new GetZoneOperationRequest
        {
            Operation = operation.Name,
            Zone      = zone,
            Project   = projectId,
        };

        TimeSpan timeOut      = TimeSpan.FromMinutes(3);
        TimeSpan pollInterval = TimeSpan.FromSeconds(15);

        DateTime deadline = DateTime.UtcNow + timeOut;

        while (operation.Status != Operation.Types.Status.Done)
        {
            operation = await operationClient.GetAsync(pollRequest);

            if (operation.Status == Operation.Types.Status.Done)
            {
                break;
            }

            if (DateTime.UtcNow + pollInterval > deadline)
            {
                throw new InvalidOperationException("Timeout hit while polling for the status of the operation.");
            }

            await Task.Delay(pollInterval);
        }

        return(operation);
    }
        /// <summary>Snippet for ListAsync</summary>
        public async Task ListRequestObjectAsync()
        {
            // Snippet: ListAsync(ListZoneOperationsRequest, CallSettings)
            // Create client
            ZoneOperationsClient zoneOperationsClient = await ZoneOperationsClient.CreateAsync();

            // Initialize request argument(s)
            ListZoneOperationsRequest request = new ListZoneOperationsRequest
            {
                Zone    = "",
                OrderBy = "",
                Project = "",
                Filter  = "",
                ReturnPartialSuccess = false,
            };
            // Make the request
            PagedAsyncEnumerable <OperationList, Operation> response = zoneOperationsClient.ListAsync(request);

            // Iterate over all response items, lazily performing RPCs as required
            await response.ForEachAsync((Operation item) =>
            {
                // Do something with each item
                Console.WriteLine(item);
            });

            // Or iterate over pages (of server-defined size), performing one RPC per page
            await response.AsRawResponses().ForEachAsync((OperationList page) =>
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (Operation item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            });

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int pageSize = 10;
            Page <Operation> singlePage = await response.ReadPageAsync(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (Operation item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
Esempio n. 3
0
    public static async Task <Operation> PollUntilCompletedAsync(this Operation operation, string projectId, string zone)
    {
        ZoneOperationsClient operationsClient = await ZoneOperationsClient.CreateAsync();

        GetZoneOperationRequest pollRequest = new GetZoneOperationRequest
        {
            Operation = operation.Name,
            Zone      = zone,
            Project   = projectId,
        };

        async Task <Operation> Poller() => await operationsClient.GetAsync(pollRequest);

        return(await operation.PollUntilCompletedAsync(Poller));
    }
Esempio n. 4
0
        /// <summary>Snippet for ListAsync</summary>
        public async Task ListAsync()
        {
            // Snippet: ListAsync(string, string, CallSettings)
            // Additional: ListAsync(string, string, CancellationToken)
            // Create client
            ZoneOperationsClient zoneOperationsClient = await ZoneOperationsClient.CreateAsync();

            // Initialize request argument(s)
            string project = "";
            string zone    = "";
            // Make the request
            OperationList response = await zoneOperationsClient.ListAsync(project, zone);

            // End snippet
        }
Esempio n. 5
0
        /// <summary>Snippet for DeleteAsync</summary>
        public async Task DeleteRequestObjectAsync()
        {
            // Snippet: DeleteAsync(DeleteZoneOperationRequest, CallSettings)
            // Additional: DeleteAsync(DeleteZoneOperationRequest, CancellationToken)
            // Create client
            ZoneOperationsClient zoneOperationsClient = await ZoneOperationsClient.CreateAsync();

            // Initialize request argument(s)
            DeleteZoneOperationRequest request = new DeleteZoneOperationRequest
            {
                Zone      = "",
                Operation = "",
                Project   = "",
            };
            // Make the request
            DeleteZoneOperationResponse response = await zoneOperationsClient.DeleteAsync(request);

            // End snippet
        }
Esempio n. 6
0
        /// <summary>Snippet for ListAsync</summary>
        public async Task ListRequestObjectAsync()
        {
            // Snippet: ListAsync(ListZoneOperationsRequest, CallSettings)
            // Additional: ListAsync(ListZoneOperationsRequest, CancellationToken)
            // Create client
            ZoneOperationsClient zoneOperationsClient = await ZoneOperationsClient.CreateAsync();

            // Initialize request argument(s)
            ListZoneOperationsRequest request = new ListZoneOperationsRequest
            {
                Zone                 = "",
                PageToken            = "",
                MaxResults           = 0U,
                OrderBy              = "",
                Project              = "",
                Filter               = "",
                ReturnPartialSuccess = false,
            };
            // Make the request
            OperationList response = await zoneOperationsClient.ListAsync(request);

            // End snippet
        }