/// <summary>
 /// Gets the status objects for the managed instances.
 /// </summary>
 private IEnumerable <ManagedInstance> GetInstances(IEnumerable <InstanceGroupManager> managers)
 {
     foreach (InstanceGroupManager manager in managers)
     {
         string project = GetProjectNameFromUri(manager.SelfLink);
         string zone    = GetZoneNameFromUri(manager.Zone);
         string name    = manager.Name;
         InstanceGroupManagersResource.ListManagedInstancesRequest request =
             Service.InstanceGroupManagers.ListManagedInstances(project, zone, name);
         InstanceGroupManagersListManagedInstancesResponse response = request.Execute();
         if (response.ManagedInstances != null)
         {
             foreach (ManagedInstance instance in response.ManagedInstances)
             {
                 yield return(instance);
             }
         }
     }
 }
        public void TestWaitGceManagedInstanceGroupPipelineZonal()
        {
            var listResponse = new InstanceGroupManagersListManagedInstancesResponse()
            {
                ManagedInstances = new[]
                {
                    FirstTestInstance,
                    SecondTestInstance
                }
            };

            string instanceGroupName = "RegionalInstanceGroup";
            string zoneLink          = $"{ComputeHttpsLink}/projects/{FakeProjectId}/zones/{FakeZoneName}";
            InstanceGroupManager regionalInstanceGroup = new InstanceGroupManager()
            {
                Name     = instanceGroupName,
                Zone     = zoneLink,
                SelfLink = $"{zoneLink}/instanceGroupManagers/{instanceGroupName}"
            };

            string managedRegionVar = "managedRegion";

            Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionVar, regionalInstanceGroup);

            Mock <InstanceGroupManagersResource> instances =
                ServiceMock.Resource(s => s.InstanceGroupManagers);

            instances.SetupRequest(
                item => item.ListManagedInstances(FakeProjectId, FakeZoneName, instanceGroupName),
                listResponse);

            Pipeline.Commands.AddScript(
                $"${managedRegionVar} | Wait-GceManagedInstanceGroup");
            Pipeline.Invoke();

            instances.VerifyAll();
        }
 private IEnumerable<Instance> GetActiveInstances(InstanceGroupManagersListManagedInstancesResponse response)
 {
     if (response.ManagedInstances != null)
     {
         foreach (ManagedInstance managedInstance in response.ManagedInstances)
         {
             if (managedInstance.InstanceStatus != null)
             {
                 string project = GetProjectNameFromUri(managedInstance.Instance);
                 string zone = GetZoneNameFromUri(managedInstance.Instance);
                 string name = GetUriPart("instances", managedInstance.Instance);
                 yield return Service.Instances.Get(project, zone, name).Execute();
             }
         }
     }
 }