@Override public NodeMetadata apply(@Nullable IMachine vm) { NodeMetadataBuilder nodeMetadataBuilder = new NodeMetadataBuilder(); String s = vm.getName(); nodeMetadataBuilder.name(s); // TODO Set up location properly LocationBuilder locationBuilder = new LocationBuilder(); locationBuilder.description(""); locationBuilder.id(""); locationBuilder.scope(LocationScope.HOST); nodeMetadataBuilder.location(locationBuilder.build()); HardwareBuilder hardwareBuilder = new HardwareBuilder(); hardwareBuilder.ram(vm.getMemorySize().intValue()); // TODO: Get more processor information Set<Processor> processors = new HashSet<Processor>(); for (int i = 0; i < vm.getCPUCount(); i++) { Processor processor = new Processor(1, 0); processors.add(processor); } hardwareBuilder.processors(processors); // TODO: How to get this? hardwareBuilder.is64Bit(false); nodeMetadataBuilder.hostname(vm.getName()); nodeMetadataBuilder.loginPort(18083); MachineState vmState = vm.getState(); NodeState nodeState = machineToNodeState.get(vmState); if (nodeState == null) nodeState = NodeState.UNRECOGNIZED; nodeMetadataBuilder.state(nodeState); logger.debug("Setting virtualbox node to: " + nodeState + " from machine state: " + vmState); INetworkAdapter networkAdapter = vm.getNetworkAdapter(0l); if (networkAdapter != null) { String bridgedInterface = networkAdapter.getBridgedInterface(); System.out.println("Interface: " + bridgedInterface); } // nodeMetadataBuilder.imageId(""); // nodeMetadataBuilder.group(""); nodeMetadataBuilder.id(vm.getId()); return nodeMetadataBuilder.build(); }