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 List</summary> public void List() { // Snippet: List(string, string, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) string project = ""; string zone = ""; // Make the request OperationList response = zoneOperationsClient.List(project, zone); // End snippet }
/// <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 }
/// <summary>Snippet for Delete</summary> public void Delete() { // Snippet: Delete(string, string, string, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) string project = ""; string zone = ""; string operation = ""; // Make the request DeleteZoneOperationResponse response = zoneOperationsClient.Delete(project, zone, operation); // End snippet }
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)); }
/// <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 }
/// <summary>Snippet for Get</summary> public void GetRequestObject() { // Snippet: Get(GetZoneOperationRequest, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) GetZoneOperationRequest request = new GetZoneOperationRequest { Zone = "", Operation = "", Project = "", }; // Make the request Operation response = zoneOperationsClient.Get(request); // End snippet }
/// <summary>Snippet for Delete</summary> public void DeleteRequestObject() { // Snippet: Delete(DeleteZoneOperationRequest, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) DeleteZoneOperationRequest request = new DeleteZoneOperationRequest { Zone = "", Operation = "", Project = "", }; // Make the request DeleteZoneOperationResponse response = zoneOperationsClient.Delete(request); // End snippet }
/// <summary>Snippet for List</summary> public void List() { // Snippet: List(string, string, string, int?, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) string project = ""; string zone = ""; // Make the request PagedEnumerable <OperationList, Operation> response = zoneOperationsClient.List(project, zone); // Iterate over all response items, lazily performing RPCs as required foreach (Operation item in response) { // Do something with each item Console.WriteLine(item); } // Or iterate over pages (of server-defined size), performing one RPC per page foreach (OperationList page in response.AsRawResponses()) { // 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 = response.ReadPage(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 }
/// <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 }
/// <summary>Snippet for List</summary> public void ListRequestObject() { // Snippet: List(ListZoneOperationsRequest, CallSettings) // Create client ZoneOperationsClient zoneOperationsClient = ZoneOperationsClient.Create(); // Initialize request argument(s) ListZoneOperationsRequest request = new ListZoneOperationsRequest { Zone = "", PageToken = "", MaxResults = 0U, OrderBy = "", Project = "", Filter = "", ReturnPartialSuccess = false, }; // Make the request OperationList response = zoneOperationsClient.List(request); // End snippet }
/// <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 }
private Func <Operation> CreatePoller(Operation operation) { if (operation.HasRegion && !operation.HasZone) { RegionOperationsClient client = RegionOperationsClient.Create(); GetRegionOperationRequest request = new GetRegionOperationRequest { Operation = operation.Name, Region = Region, Project = ProjectId, }; return(() => client.Get(request)); } else if (operation.HasZone && !operation.HasRegion) { ZoneOperationsClient client = ZoneOperationsClient.Create(); GetZoneOperationRequest request = new GetZoneOperationRequest { Operation = operation.Name, Zone = Zone, Project = ProjectId, }; return(() => client.Get(request)); } else if (!operation.HasZone && !operation.HasRegion) { GlobalOperationsClient client = GlobalOperationsClient.Create(); GetGlobalOperationRequest request = new GetGlobalOperationRequest { Operation = operation.Name, Project = ProjectId, }; return(() => client.Get(request)); } throw new ArgumentException($"Unable to determine operation type for {operation}"); }