protected void printNodeInfo(ComputeService service, Set<? extends NodeMetadata> nodes, boolean details, PrintStream out) { printNodes(service, nodes, out); if (details) { for (NodeMetadata node : nodes) { out.println(); out.println(String.format(NODE_DETAILS_FORMAT, "Operating System:", getOperatingSystemDetails(node))); out.println(String.format(NODE_DETAILS_FORMAT, "Configured User:", node.getCredentials() != null ? node .getCredentials().getUser() : "n/a")); out.println(String.format(NODE_DETAILS_FORMAT, "Public Address:", getPublicAddresses(node))); out.println(String.format(NODE_DETAILS_FORMAT, "Private Address:", getPrivateAddresses(node))); out.println(String.format(NODE_DETAILS_FORMAT, "Image Id:", node.getImageId())); } } }
protected void checkImageIdMatchesTemplate(NodeMetadata node) { if (node.getImageId() != null) assertEquals(node.getImageId(), template.getImage().getId()); }
public boolean apply(NodeMetadata metadata) { if (nodeId != null && !nodeId.equals(metadata.getId())) { return false; } if (imageId != null && !imageId.equals(metadata.getImageId())) { return false; } if (queryState != null && !queryState.equals(metadata.getStatus())) { return false; } if (group != null && !group.equals(metadata.getGroup())) { return false; } return true; } };
@Test public void imageUrl() { NodeMetadata nodeMetadata = groupNullNodeParser.apply(instance); assertEquals(nodeMetadata.getImageId(), imageUrl.toString()); }
protected void checkImageIdMatchesTemplate(NodeMetadata node) { if (node.getImageId() != null) assertEquals(node.getImageId(), template.getImage().getId()); }
public void testVirtualMachineToNodeMetadata() { NodeMetadata node = function.apply(container); assertEquals(node.getId(), "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9"); assertEquals(node.getGroup(), "hopeful_mclean"); assertEquals(node.getImageId(), "af0f59f1c19eef9471c3b8c8d587c39b8f130560b54f3766931b37d76d5de4b6"); assertEquals(node.getLoginPort(), 49199); assertEquals(node.getStatus(), NodeMetadata.Status.RUNNING); assertEquals(node.getImageId(), "af0f59f1c19eef9471c3b8c8d587c39b8f130560b54f3766931b37d76d5de4b6"); assertEquals(node.getPrivateAddresses(), ImmutableSet.of("172.17.0.2")); assertEquals(node.getPublicAddresses(), ImmutableSet.of("127.0.0.1")); }
public void testCreateNodeWithGeneratedKeyPairAndOverriddenLoginUser() throws Exception { Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder(); requestResponseMap.put(describeRegionsRequest, describeRegionsResponse); requestResponseMap.put(describeAvailabilityZonesRequest, describeAvailabilityZonesResponse); requestResponseMap.put(describeImagesRequest, describeImagesResponse); requestResponseMap.put(createKeyPairRequest, createKeyPairResponse); requestResponseMap.put(createSecurityGroupRequest, createSecurityGroupResponse); requestResponseMap.put(describeSecurityGroupRequest, describeSecurityGroupResponse); requestResponseMap.put(authorizeSecurityGroupIngressRequest22, authorizeSecurityGroupIngressResponse); requestResponseMap.put(authorizeSecurityGroupIngressRequestGroup, authorizeSecurityGroupIngressResponse); requestResponseMap.put(runInstancesRequest, runInstancesResponse); requestResponseMap.put(describeInstanceRequest, describeInstanceResponse); requestResponseMap.put(describeInstanceMultiIdsRequest, describeInstanceMultiIdsResponse); requestResponseMap.put(describeImageRequest, describeImagesResponse); ComputeService apiThatCreatesNode = requestsSendResponses(requestResponseMap.build()); NodeMetadata node = Iterables.getOnlyElement(apiThatCreatesNode.createNodesInGroup("test", 1, blockUntilRunning(false).overrideLoginUser("ec2-user"))); assertEquals(node.getCredentials().getUser(), "ec2-user"); System.out.println(node.getImageId()); assertNotNull(node.getCredentials().getPrivateKey()); }
public int run(InputStream in, PrintStream out, PrintStream err, ClusterSpec clusterSpec) throws Exception { ClusterStateStore stateStore = createClusterStateStore(clusterSpec); ClusterController controller = createClusterController(clusterSpec.getServiceName()); for (Cluster.Instance instance : controller.getInstances(clusterSpec, stateStore)) { out.println(Joiner.on('\t').useForNull("-").join( instance.getId(), instance.getNodeMetadata().getImageId(), instance.getPublicIp(), instance.getPrivateIp(), instance.getNodeMetadata().getState(), instance.getNodeMetadata().getLocation().getId(), Joiner.on(",").join(instance.getRoles()) ) ); } return 0; } }
public int run(InputStream in, PrintStream out, PrintStream err, ClusterSpec clusterSpec) throws Exception { ClusterStateStore stateStore = createClusterStateStore(clusterSpec); ClusterController controller = createClusterController(clusterSpec.getServiceName()); for (Cluster.Instance instance : controller.getInstances(clusterSpec, stateStore)) { out.println(Joiner.on('\t').useForNull("-").join( instance.getId(), instance.getNodeMetadata().getImageId(), instance.getPublicIp(), instance.getPrivateIp(), instance.getNodeMetadata().getStatus(), instance.getNodeMetadata().getLocation().getId(), Joiner.on(",").join(instance.getRoles()) ) ); } return 0; } }
private void assertNodeMetadata(NodeMetadata result, org.jclouds.compute.domain.OperatingSystem os, String imageId, NodeMetadata.Status status, ImmutableSet<String> privateIpAddresses, ImmutableSet<String> publicIpAddresses) { assertNotNull(result); assertEquals(result.getId(), serverWithExternalIp.server().id()); assertEquals(result.getName(), serverWithExternalIp.server().name()); assertEquals(result.getHostname(), serverWithExternalIp.server().description()); assertEquals(result.getGroup(), "[" + serverName + "]"); assertEquals(result.getHardware(), hardware); assertEquals(result.getOperatingSystem(), os); assertEquals(result.getLocation(), location); assertEquals(result.getImageId(), imageId); assertEquals(result.getStatus(), status); assertEquals(result.getPrivateAddresses(), privateIpAddresses); assertEquals(result.getPublicAddresses(), publicIpAddresses); } }
private static void assertNodeEquals(NodeMetadata actual, NodeMetadata expected) { assertEquals(actual, expected); // NodeMetadata equals method does not use all fields in equals. It assumes that same ids in same locations // determine the equivalence assertEquals(actual.getStatus(), expected.getStatus()); assertEquals(actual.getBackendStatus(), expected.getBackendStatus()); assertEquals(actual.getLoginPort(), expected.getLoginPort()); assertEquals(actual.getPublicAddresses(), expected.getPublicAddresses()); assertEquals(actual.getPrivateAddresses(), expected.getPrivateAddresses()); assertEquals(actual.getCredentials(), expected.getCredentials()); assertEquals(actual.getGroup(), expected.getGroup()); assertEquals(actual.getImageId(), expected.getImageId()); assertEquals(actual.getHardware(), expected.getHardware()); assertEquals(actual.getOperatingSystem(), expected.getOperatingSystem()); assertEquals(actual.getHostname(), expected.getHostname()); }
@Override public Map<String, String> toMetadataRecord() { Hardware hardware = node.getHardware(); List<? extends Processor> processors = (hardware != null) ? hardware.getProcessors() : null; ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); builder.putAll(super.toMetadataRecord()); putIfNotNull(builder, "provider", getParent().getProvider()); putIfNotNull(builder, "account", getParent().getIdentity()); putIfNotNull(builder, "serverId", node.getProviderId()); putIfNotNull(builder, "imageId", node.getImageId()); putIfNotNull(builder, "instanceTypeName", (hardware != null ? hardware.getName() : null)); putIfNotNull(builder, "instanceTypeId", (hardware != null ? hardware.getProviderId() : null)); putIfNotNull(builder, "ram", "" + (hardware != null ? hardware.getRam() : null)); putIfNotNull(builder, "cpus", "" + (processors != null ? processors.size() : null)); putIfNotNull(builder, "osName", getOsDetails().getName()); putIfNotNull(builder, "osArch", getOsDetails().getArch()); putIfNotNull(builder, "64bit", getOsDetails().is64bit() ? "true" : "false"); return builder.build(); }
public void listNodesWithSnapshotSource() throws Exception { server.enqueue(aggregatedListWithInstanceNetworkAndStatus("test-0", "test-network", RUNNING)); server.enqueue(singleRegionSingleZoneResponse()); server.enqueue(jsonResponse("/disk_get_with_source_snapshot.json")); server.enqueue(singleRegionSingleZoneResponse()); server.enqueue(jsonResponse("/aggregated_machinetype_list.json")); Set<? extends ComputeMetadata> nodes = computeService().listNodes(); assertEquals(nodes.size(), 1); NodeMetadata node = (NodeMetadata) nodes.iterator().next(); String imageId = node.getImageId(); assertEquals(imageId, null); assertSent(server, "GET", "/projects/party/aggregated/instances"); assertSent(server, "GET", "/projects/party/regions"); assertSent(server, "GET", "/projects/party/zones/us-central1-a/disks/test"); assertSent(server, "GET", "/projects/party/regions"); assertSent(server, "GET", "/projects/party/aggregated/machineTypes"); }
@Test public void testServerWithoutImage() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) .location(region).build(); Server serverToConvert = new ParseServerWithoutImageTest().expected(); ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.of(existingImage)), Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet.of(existingHardware)), namingConvention); NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); assertNull(convertedNodeMetadata.getImageId()); }
public void listNodes() throws Exception { server.enqueue(aggregatedListWithInstanceNetworkAndStatus("test-0", "test-network", RUNNING)); server.enqueue(singleRegionSingleZoneResponse()); server.enqueue(jsonResponse("/disk_get_with_source_image.json")); server.enqueue(jsonResponse("/image_get_for_source_image.json")); server.enqueue(singleRegionSingleZoneResponse()); server.enqueue(jsonResponse("/aggregated_machinetype_list.json")); Set<? extends ComputeMetadata> nodes = computeService().listNodes(); assertEquals(nodes.size(), 1); NodeMetadata node = (NodeMetadata) nodes.iterator().next(); assertNotNull(node.getImageId()); assertSent(server, "GET", "/projects/party/aggregated/instances"); assertSent(server, "GET", "/projects/party/regions"); assertSent(server, "GET", "/projects/party/zones/us-central1-a/disks/test"); assertSent(server, "GET", "/projects/debian-cloud/global/images/debian-7-wheezy-v20140718"); assertSent(server, "GET", "/projects/party/regions"); assertSent(server, "GET", "/projects/party/aggregated/machineTypes"); }
@Override public NodeMetadata apply(@Nullable org.jclouds.compute.domain.NodeMetadata input) { if (input == null) { return null; } return NodeMetadata.builder().id(input.getId()).name(input.getName()).status(input.getStatus().name()) .hostname(input.getHostname()) .loginPort(input.getLoginPort()).group(input.getGroup()) .tags(input.getTags()).metadata(input.getUserMetadata()) .locationId(input.getLocation() != null ? input.getLocation().getId() : null) .imageId(input.getImageId()) .defaultCredentials(ToLoginCredentials.INSTANCE.apply(input.getCredentials())).build(); } }
public static NodeMetadataBuilder fromNodeMetadata(NodeMetadata node) { return new NodeMetadataBuilder().providerId(node.getProviderId()).name(node.getName()).id(node.getId()).location( node.getLocation()).uri(node.getUri()).userMetadata(node.getUserMetadata()).tags(node.getTags()).group( node.getGroup()).hardware(node.getHardware()).imageId(node.getImageId()).operatingSystem( node.getOperatingSystem()).status(node.getStatus()).backendStatus(node.getBackendStatus()).loginPort( node.getLoginPort()).publicAddresses(node.getPublicAddresses()).privateAddresses( node.getPrivateAddresses()).credentials(node.getCredentials()).hostname(node.getHostname()); }
public static NodeMetadataBuilder fromNodeMetadata(NodeMetadata node) { return new NodeMetadataBuilder().providerId(node.getProviderId()).name(node.getName()).id(node.getId()).location( node.getLocation()).uri(node.getUri()).userMetadata(node.getUserMetadata()).tags(node.getTags()).group( node.getGroup()).hardware(node.getHardware()).imageId(node.getImageId()).operatingSystem( node.getOperatingSystem()).status(node.getStatus()).backendStatus(node.getBackendStatus()).loginPort( node.getLoginPort()).publicAddresses(node.getPublicAddresses()).privateAddresses( node.getPrivateAddresses()).credentials(node.getCredentials()).hostname(node.getHostname()); }
public static NodeMetadataBuilder fromNodeMetadata(NodeMetadata node) { return new NodeMetadataBuilder().providerId(node.getProviderId()).name(node.getName()).id(node.getId()).location( node.getLocation()).uri(node.getUri()).userMetadata(node.getUserMetadata()).tags(node.getTags()).group( node.getGroup()).hardware(node.getHardware()).imageId(node.getImageId()).operatingSystem( node.getOperatingSystem()).status(node.getStatus()).backendStatus(node.getBackendStatus()).loginPort( node.getLoginPort()).publicAddresses(node.getPublicAddresses()).privateAddresses( node.getPrivateAddresses()).credentials(node.getCredentials()).hostname(node.getHostname()); }
public static NodeMetadataBuilder fromNodeMetadata(NodeMetadata node) { return new NodeMetadataBuilder().providerId(node.getProviderId()).name(node.getName()).id(node.getId()).location( node.getLocation()).uri(node.getUri()).userMetadata(node.getUserMetadata()).tags(node.getTags()).group( node.getGroup()).hardware(node.getHardware()).imageId(node.getImageId()).operatingSystem( node.getOperatingSystem()).status(node.getStatus()).backendStatus(node.getBackendStatus()).loginPort( node.getLoginPort()).publicAddresses(node.getPublicAddresses()).privateAddresses( node.getPrivateAddresses()).credentials(node.getCredentials()).hostname(node.getHostname()); }