private IEnumerable <ForwardingRule> GetAllProjectForwardingRules(string project) { if (Global) { GlobalForwardingRulesResource.ListRequest request = Service.GlobalForwardingRules.List(project); do { ForwardingRuleList response = request.Execute(); if (response.Items != null) { foreach (ForwardingRule forwardingRule in response.Items) { yield return(forwardingRule); } } request.PageToken = response.NextPageToken; } while (!Stopping && request.PageToken != null); } else { ForwardingRulesResource.AggregatedListRequest request = Service.ForwardingRules.AggregatedList(project); do { ForwardingRuleAggregatedList response = request.Execute(); if (response.Items != null) { foreach (KeyValuePair <string, ForwardingRulesScopedList> kvp in response.Items) { if (kvp.Value?.ForwardingRules != null) { foreach (ForwardingRule forwardingRule in kvp.Value.ForwardingRules) { yield return(forwardingRule); } } } } request.PageToken = response.NextPageToken; } while (!Stopping && request.PageToken != null); } }
/// <summary> /// Snaps the GlobalForwardingRules. /// </summary> /// <param name="subscription">The subscription.</param> public static StreamWriter SnapGlobalForwardingRules(Subscription subscription, StreamWriter writer) { writer.Write("GlobalForwardingRules"); writer.Write(Environment.NewLine); writer.Write("ForwardingRules Name", "Project", "Created Time", "Status"); writer.Write(Environment.NewLine); string scope = ConfigurationManager.AppSettings["Scope"]; var project = subscription.SubscriptionFriendlyName; ComputeService computeService = new ComputeService(new BaseClientService.Initializer { HttpClientInitializer = GetCredential(ConfigurationManager.AppSettings["AdminUserName"], ConfigurationManager.AppSettings["ServiceAccountKey"], scope), ApplicationName = "Google-ComputeSample/0.1", }); GlobalForwardingRulesResource.ListRequest forwardRuleRequest = computeService.GlobalForwardingRules.List(project); ComputeServiceData.ForwardingRuleList forwardRuleResponse = null; do { try { forwardRuleResponse = forwardRuleRequest.Execute(); } catch (Exception ex) { log.ErrorFormat("Exception while executing GlobalForwardingRulesResource request: {0}", ex.ToString()); } if (forwardRuleResponse.Items == null) { continue; } foreach (ComputeServiceData.ForwardingRule forwardingRule in forwardRuleResponse.Items) { writer.Write(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\"", forwardingRule.Name, subscription.SubscriptionFriendlyName, forwardingRule.CreationTimestamp, "")); writer.Write(Environment.NewLine); } } while (forwardRuleResponse.NextPageToken != null); return(writer); }