Issue 968:

Add DNS Name as public address when describe instance response doesn't contain IPAddress
This commit is contained in:
vijaykiran 2012-07-10 00:29:38 +02:00
parent 6cdad28359
commit 9cceb4e05f
2 changed files with 22 additions and 4 deletions

View File

@ -122,6 +122,9 @@ public class RunningInstanceToNodeMetadata implements Function<RunningInstance,
Builder<String> addressesBuilder = ImmutableSet.builder(); Builder<String> addressesBuilder = ImmutableSet.builder();
if (Strings.emptyToNull(instance.getIpAddress()) != null) if (Strings.emptyToNull(instance.getIpAddress()) != null)
addressesBuilder.add(instance.getIpAddress()); addressesBuilder.add(instance.getIpAddress());
//Set ipAddress to be
else if(Strings.emptyToNull(instance.getDnsName()) != null)
addressesBuilder.add(instance.getDnsName());
if (Strings.emptyToNull(instance.getPrivateIpAddress()) != null) if (Strings.emptyToNull(instance.getPrivateIpAddress()) != null)
addressesBuilder.add(instance.getPrivateIpAddress()); addressesBuilder.add(instance.getPrivateIpAddress());

View File

@ -99,6 +99,21 @@ public class RunningInstanceToNodeMetadataTest {
"us-east-1/image").providerId("id").build().toString()); "us-east-1/image").providerId("id").build().toString());
} }
@Test
public void testIPAddressIsSetToDnsNameWhenIPAddressIsNull() {
RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small")
.instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").dnsName("jclouds-1-1-1-1.jclouds.org").build();
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet
.<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of());
assertEquals(parser.apply(instance).toString(), new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").privateAddresses(
ImmutableSet.<String> of()).publicAddresses(ImmutableSet.of("jclouds-1-1-1-1.jclouds.org")).id("us-east-1/id").imageId(
"us-east-1/image").providerId("id").build().toString());
}
static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1") static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1")
.description("us-east-1").build(); .description("us-east-1").build();