Machines { public static Maybe<String> findSubnetIp(Entity entity) { String sh = entity.getAttribute(Attributes.SUBNET_ADDRESS); if (sh!=null) return Maybe.of(sh); return findSubnetIp(entity.getLocations()); }  static Maybe<String> getSubnetHostname(Location where); static Maybe<String> getSubnetIp(Location where); @Nonnull @SuppressWarnings("unchecked") static Maybe<T> findUniqueElement(Iterable<?> items, Class<T> type); static Maybe<MachineLocation> findUniqueMachineLocation(Iterable<? extends Location> locations); static Maybe<T> findUniqueMachineLocation(Iterable<? extends Location> locations, Class<T> clazz); static Maybe<String> findSubnetHostname(Iterable<? extends Location> ll); static Maybe<String> findSubnetHostname(Entity entity); static Maybe<String> findSubnetOrPublicHostname(Entity entity); static Maybe<String> findSubnetOrPrivateIp(Entity entity); static Maybe<String> findSubnetIp(Entity entity); static Maybe<String> findSubnetIp(Iterable<? extends Location> ll); static boolean warnIfLocalhost(Collection<? extends Location> locations, String message);  }
@Test public void testFindSubnetIpFromAttribute() throws Exception { TestEntity entity = app.addChild(EntitySpec.create(TestEntity.class) .location(sshMachineSpec)); entity.sensors().set(Attributes.SUBNET_ADDRESS, "myaddr"); assertEquals(Machines.findSubnetIp(entity).get(), "myaddr"); }
@Test public void testFindSubnetIpFromLocation() throws Exception { TestEntity entity = app.addChild(EntitySpec.create(TestEntity.class) .location(sshMachineSpec)); assertEquals(Machines.findSubnetIp(entity).get(), privateAddr); }
@Test public void testFindSubnetIpFromLocationWithoutPrivate() throws Exception { TestEntity entity = app.addChild(EntitySpec.create(TestEntity.class) .location(sshMachineWithoutPrivateSpec)); assertEquals(Machines.findSubnetIp(entity).get(), publicAddr); }