@Test(expected = IllegalArgumentException.class) public void isContainerRecycledMalformedRequest () { gcpComputePlatform.isContainerRecycled(mock(Container.class)); }
@Override public boolean isContainerRecycled (Container container) { if (!(container instanceof GcpComputeInstanceContainer)) throw new IllegalArgumentException(); GcpComputeInstanceContainer gcpContainer = (GcpComputeInstanceContainer) container; String oldUUID = gcpContainer.getUniqueIdentifier(); ProjectZoneInstanceName instanceName = ProjectZoneInstanceName.of(gcpContainer.getInstanceName(), getProjectName().getProject(), gcpContainer.getZone()); try { Instance instance = getInstanceClient().getInstance(instanceName); String instanceId = instance.getId(); return !Objects.equals(instanceId, oldUUID); } catch (ApiException e) { if (e.getStatusCode().getCode().getHttpStatusCode() == 404) return true; throw e; } }
GcpComputePlatform extends Platform implements SshBasedExperiment<GcpComputeInstanceContainer> { @Override public boolean isContainerRecycled (Container container) { if (!(container instanceof GcpComputeInstanceContainer)) throw new IllegalArgumentException(); GcpComputeInstanceContainer gcpContainer = (GcpComputeInstanceContainer) container; String oldUUID = gcpContainer.getUniqueIdentifier(); ProjectZoneInstanceName instanceName = ProjectZoneInstanceName.of(gcpContainer.getInstanceName(), getProjectName().getProject(), gcpContainer.getZone()); try { Instance instance = getInstanceClient().getInstance(instanceName); String instanceId = instance.getId(); return !Objects.equals(instanceId, oldUUID); } catch (ApiException e) { if (e.getStatusCode().getCode().getHttpStatusCode() == 404) return true; throw e; } } }
GcpComputePlatform extends Platform implements SshBasedExperiment<GcpComputeInstanceContainer> { @Override public boolean isContainerRecycled (Container container) { if (!(container instanceof GcpComputeInstanceContainer)) throw new IllegalArgumentException(); GcpComputeInstanceContainer gcpContainer = (GcpComputeInstanceContainer) container; String oldUUID = gcpContainer.getUniqueIdentifier(); ProjectZoneInstanceName instanceName = ProjectZoneInstanceName.of(gcpContainer.getInstanceName(), getProjectName().getProject(), gcpContainer.getZone()); try { Instance instance = getInstanceClient().getInstance(instanceName); String instanceId = instance.getId(); return !Objects.equals(instanceId, oldUUID); } catch (ApiException e) { if (e.getStatusCode().getCode().getHttpStatusCode() == 404) return true; throw e; } }  }
GcpComputePlatform extends Platform implements SshBasedExperiment<GcpComputeInstanceContainer> { @Override public boolean isContainerRecycled (Container container) { if (!(container instanceof GcpComputeInstanceContainer)) throw new IllegalArgumentException(); GcpComputeInstanceContainer gcpContainer = (GcpComputeInstanceContainer) container; String oldUUID = gcpContainer.getUniqueIdentifier(); ProjectZoneInstanceName instanceName = ProjectZoneInstanceName.of(gcpContainer.getInstanceName(), getProjectName().getProject(), gcpContainer.getZone()); try { Instance instance = getInstanceClient().getInstance(instanceName); String instanceId = instance.getId(); return !Objects.equals(instanceId, oldUUID); } catch (ApiException e) { if (e.getStatusCode().getCode().getHttpStatusCode() == 404) return true; throw e; } }  void setRoutableCIDRBlocks(Collection<String> routableCIDRBlocks); @Override ApiStatus getApiStatus(); @Override PlatformLevel getPlatformLevel(); @Override PlatformHealth getPlatformHealth(); Collection<Items> getIncludeFilter(); void setIncludeFilter(Map<String, String> includeFilter); Collection<Items> getExcludeFilter(); void setExcludeFilter(Map<String, String> excludeFilter); @Override boolean isContainerRecycled(Container container); String stopInstance(GcpComputeInstanceContainer container); ContainerHealth isContainerRunning(GcpComputeInstanceContainer gcpComputeInstanceContainer); String simulateMaintenance(GcpComputeInstanceContainer container); String setTags(GcpComputeInstanceContainer container, List<String> tags); String setTagsSafe(GcpComputeInstanceContainer container, List<String> newTags, String oldFingerprint); boolean isContainerGroupAtCapacity(GcpComputeInstanceContainer container); boolean checkTags(GcpComputeInstanceContainer container, List<String> expectedTags); void startInstance(GcpComputeInstanceContainer container); String restartContainer(GcpComputeInstanceContainer container); String getBestEndpoint(String privateIPAddress, String publicIPAddress); boolean isAddressRoutable(String privateIPAddress); String getLatestInstanceId(String instanceName, String zone); Fingerprint<List<String>> getFirewallTags(GcpComputeInstanceContainer container); void setProjectId(String projectId); @Override String getEndpoint(GcpComputeInstanceContainer container); @Override SSHCredentials getSshCredentials(GcpComputeInstanceContainer container); @Override String getRunningDirectory(); @Override void recycleContainer(GcpComputeInstanceContainer container); String recreateInstanceInInstanceGroup(GcpComputeInstanceContainer container); boolean isOperationComplete(String operationId); }
GcpComputePlatform extends Platform implements SshBasedExperiment<GcpComputeInstanceContainer> { @Override public boolean isContainerRecycled (Container container) { if (!(container instanceof GcpComputeInstanceContainer)) throw new IllegalArgumentException(); GcpComputeInstanceContainer gcpContainer = (GcpComputeInstanceContainer) container; String oldUUID = gcpContainer.getUniqueIdentifier(); ProjectZoneInstanceName instanceName = ProjectZoneInstanceName.of(gcpContainer.getInstanceName(), getProjectName().getProject(), gcpContainer.getZone()); try { Instance instance = getInstanceClient().getInstance(instanceName); String instanceId = instance.getId(); return !Objects.equals(instanceId, oldUUID); } catch (ApiException e) { if (e.getStatusCode().getCode().getHttpStatusCode() == 404) return true; throw e; } }  void setRoutableCIDRBlocks(Collection<String> routableCIDRBlocks); @Override ApiStatus getApiStatus(); @Override PlatformLevel getPlatformLevel(); @Override PlatformHealth getPlatformHealth(); Collection<Items> getIncludeFilter(); void setIncludeFilter(Map<String, String> includeFilter); Collection<Items> getExcludeFilter(); void setExcludeFilter(Map<String, String> excludeFilter); @Override boolean isContainerRecycled(Container container); String stopInstance(GcpComputeInstanceContainer container); ContainerHealth isContainerRunning(GcpComputeInstanceContainer gcpComputeInstanceContainer); String simulateMaintenance(GcpComputeInstanceContainer container); String setTags(GcpComputeInstanceContainer container, List<String> tags); String setTagsSafe(GcpComputeInstanceContainer container, List<String> newTags, String oldFingerprint); boolean isContainerGroupAtCapacity(GcpComputeInstanceContainer container); boolean checkTags(GcpComputeInstanceContainer container, List<String> expectedTags); void startInstance(GcpComputeInstanceContainer container); String restartContainer(GcpComputeInstanceContainer container); String getBestEndpoint(String privateIPAddress, String publicIPAddress); boolean isAddressRoutable(String privateIPAddress); String getLatestInstanceId(String instanceName, String zone); Fingerprint<List<String>> getFirewallTags(GcpComputeInstanceContainer container); void setProjectId(String projectId); @Override String getEndpoint(GcpComputeInstanceContainer container); @Override SSHCredentials getSshCredentials(GcpComputeInstanceContainer container); @Override String getRunningDirectory(); @Override void recycleContainer(GcpComputeInstanceContainer container); String recreateInstanceInInstanceGroup(GcpComputeInstanceContainer container); boolean isOperationComplete(String operationId);  }