/// <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(); } } } }