public T fromVirtualMachine(VirtualMachine in) { return this .id(in.getId()) .account(in.getAccount()) .cpuCount(in.getCpuCount()) .cpuSpeed(in.getCpuSpeed()) .cpuUsed(in.getCpuUsedAsString()) .displayName(in.getDisplayName()) .created(in.getCreated()) .domain(in.getDomain()) .domainId(in.getDomainId()) .usesVirtualNetwork(in.usesVirtualNetwork()) .group(in.getGroup()) .groupId(in.getGroupId()) .guestOSId(in.getGuestOSId()) .isHAEnabled(in.isHAEnabled()) .hostId(in.getHostId()) .hostname(in.getHostname()) .IPAddress(in.getIPAddress()) .ISODisplayText(in.getISODisplayText()) .ISOId(in.getISOId()) .ISOName(in.getISOName()) .jobId(in.getJobId()) .jobStatus(in.getJobStatus()) .memory(in.getMemory()) .name(in.getName()) .networkKbsRead(in.getNetworkKbsRead()) .networkKbsWrite(in.getNetworkKbsWrite()) .password(in.getPassword()) .passwordEnabled(in.isPasswordEnabled())
public boolean apply(VirtualMachine virtualMachine) { logger.trace("looking for state on virtualMachine %s", checkNotNull(virtualMachine, "virtualMachine")); virtualMachine = refresh(virtualMachine); if (virtualMachine == null) return false; logger.trace("%s: looking for virtualMachine state %s: currently: %s", virtualMachine.getId(), State.RUNNING, virtualMachine.getState()); if (virtualMachine.getState() == State.ERROR) throw new IllegalStateException("virtualMachine in error state: " + virtualMachine); return virtualMachine.getState() == State.RUNNING; }
public static void waitForVMtoStart(final CloudStackClient client, final String vmName) { checkNotEmpty(vmName); VirtualMachine machine = getVirtualMachineByName(client, vmName); String id = machine.getId(); long startTime = System.currentTimeMillis(); while (machine.getState() == STARTING) { try { LOG.info("Waiting for VM {} - id {} to start", machine.getName(), machine.getId()); TimeUnit.SECONDS.sleep(BETWEEN_REQUESTS_SLEEP_TIME); machine = client.getVirtualMachineClient().getVirtualMachine(id); } catch (InterruptedException e) { LOG.info("Interrupted while waiting for VM's to start"); Throwables.propagateIfPossible(e); } if (timeOutExceeded(startTime)) { break; } } switch (machine.getState()) { case RUNNING: LOG.info("VM {} is running, as expected", vmName); break; default: throw new IllegalStateException("VM " + machine + "is not in RUNNING state"); } }
VirtualMachine vm = (VirtualMachine) hostSpecificEntities[i]; String macAddress=""; for(VirtualDevice vd:vm.getConfig().getHardware().getDevice()){ try { VirtualEthernetCard vEth=(VirtualEthernetCard)vd; System.out.println("Name : "+vm.getName()); String vmVersion = vm.getConfig().version; System.out.println("vm wayer version is ..from inventory.. "+ vm.getConfig().version); System.out.println("geust os uuid "+vm.getSummary().getConfig().uuid); System.out.println("geust mac Address of guest "+macAddress); System.out.println("geust id is "+vm.getSummary().getGuest().guestId); System.out.println("host id is "+vm.getSummary().getGuest().getIpAddress());
protected void checkVm(VirtualMachine vm) { assertEquals(vm.getId(), client.getVirtualMachineClient().getVirtualMachine(vm.getId()).getId()); assert vm.getId() != null : vm; assert vm.getName() != null : vm; assert vm.getDisplayName() != null : vm; assert vm.getAccount() != null : vm; assert vm.getDomain() != null : vm; assert vm.getDomainId() != null : vm; assert vm.getCreated() != null : vm; assert vm.getState() != null : vm; assert vm.getZoneId() != null : vm; assert vm.getZoneName() != null : vm; assert vm.getTemplateId() != null : vm; assert vm.getTemplateName() != null : vm; assert vm.getServiceOfferingId() != null : vm; assert vm.getServiceOfferingName() != null : vm; assert vm.getCpuCount() > 0 : vm; assert vm.getCpuSpeed() > 0 : vm; assert vm.getMemory() > 0 : vm; assert vm.getGuestOSId() != null : vm; assert vm.getRootDeviceId() != null : vm; if (vm.getJobId() != null) assert vm.getJobStatus() != null : vm; assert vm.getNICs() != null && vm.getNICs().size() > 0 : vm; for (NIC nic : vm.getNICs()) { assert nic.getId() != null : vm; assert nic.getNetworkId() != null : vm; assert nic.getTrafficType() != null : vm; assert nic.getGuestIPType() != null : vm;
builder.ids(from.getId() + ""); builder.name(from.getName()); builder.hostname(from.getDisplayName()); builder.location(FluentIterable.from(locations.get()).firstMatch(idEquals(from.getZoneId())).orNull()); builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getDisplayName())); Image image = FluentIterable.from(images.get()).firstMatch(new Predicate<Image>() { @Override .ids(from.getServiceOfferingId() + "") .name(from.getServiceOfferingName() + "") .processors(ImmutableList.of(new Processor(from.getCpuCount(), from.getCpuSpeed()))) .ram((int)from.getMemory())// .hypervisor(from.getHypervisor())// .build()); builder.status(vmStateToNodeStatus.get(from.getState())); if (from.getIPAddress() != null) { boolean isPrivate = isPrivateIPAddress(from.getIPAddress()); if (isPrivate) { privateAddresses.add(from.getIPAddress()); } else { publicAddresses.add(from.getIPAddress()); if (from.getPublicIP() != null) { publicAddresses.add(from.getPublicIP());
@Override public boolean apply(VirtualMachine vm) { return contains(ids, vm.getId()); } });
@Test(dependsOnMethods = "testCreateVirtualMachine") public void testLifeCycle() throws Exception { String job = client.getVirtualMachineClient().stopVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.STOPPED); if (vm.isPasswordEnabled()) { job = client.getVirtualMachineClient().resetPasswordForVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getAsyncJobClient().<VirtualMachine> getAsyncJob(job).getResult(); if (vm.getPassword() != null) { conditionallyCheckSSH(); } } job = client.getVirtualMachineClient().startVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); job = client.getVirtualMachineClient().rebootVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); }
@Test public void testWaitForVirtualMachineToBeExpunged() { VirtualMachine virtualMachine = VirtualMachine.builder().id("229").build(); expect(virtualMachineClient.getVirtualMachine(virtualMachine.getId())).andReturn(null); replay(client, virtualMachineClient); assertTrue(new VirtualMachineExpunged(client).apply(virtualMachine)); verify(client, virtualMachineClient); }
@Test(enabled = true) public void testCreateTemplate() throws Exception { Zone zone = Iterables.getFirst(client.getZoneClient().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkClient().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }); assertTrue(Iterables.size(networks) >= 1); Network network = Iterables.get(networks, 0); assertNotNull(network); // Create a VM and stop it String defaultTemplate = template != null ? template.getImageId() : null; vmForCreation = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, defaultTemplate, client, jobComplete, virtualMachineRunning); assertTrue(jobComplete.apply(client.getVirtualMachineClient().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); // Work out the VM's volume Set<Volume> volumes = client.getVolumeClient().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vmForCreation.getId())); assertEquals(volumes.size(), 1); Volume volume = Iterables.getOnlyElement(volumes); // Create a template CreateTemplateOptions options = CreateTemplateOptions.Builder.volumeId(volume.getId()); AsyncCreateResponse response = client.getTemplateClient().createTemplate(TemplateMetadata.builder().name(prefix+"-createTemplate").osTypeId(vmForCreation.getGuestOSId()).displayText("jclouds live testCreateTemplate").build(), options); assertTrue(jobComplete.apply(response.getJobId()), vmForCreation.toString()); createdTemplate = client.getTemplateClient().getTemplateInZone(response.getId(), vmForCreation.getZoneId()); // Assertions assertNotNull(createdTemplate); }
@Test public void testCreateNodeWithGroupEncodedIntoName() { String group = prefix + "-foo"; String name = group + "-node-" + new Random().nextInt(); Template template = view.getComputeService().templateBuilder().build(); if (!client .getTemplateClient() .getTemplateInZone(template.getImage().getId(), template.getLocation().getId()).isPasswordEnabled()) { // TODO: look at SecurityGroupClientLiveTest for how to do this template.getOptions().as(CloudStackTemplateOptions.class).keyPair(keyPairName); } vm = adapter.createNodeWithGroupEncodedIntoName(group, name, template); assertEquals(vm.getNode().getDisplayName(), name); // check to see if we setup a NAT rule (conceding we could check this from // cache) IPForwardingRule rule = getFirst( client.getNATClient().getIPForwardingRulesForVirtualMachine(vm.getNode().getId()), null); String address = rule != null ? rule.getIPAddress() : vm.getNode().getIPAddress(); loginCredentials = prioritizeCredentialsFromTemplate.apply(template, vm.getCredentials()); assert InetAddresses.isInetAddress(address) : vm; HostAndPort socket = HostAndPort.fromParts(address, 22); checkSSH(socket); }
SshKeyPair keyPair = keyPairCache.getUnchecked(templateOptions.getKeyPair()); credentialsBuilder.privateKey(keyPair.getPrivateKey()); } else if (vm.isPasswordEnabled()) { assert vm.getPassword() != null : vm; credentialsBuilder.password(vm.getPassword()); logger.debug(">> adding tags %s to virtualmachine(%s)", common, vm.getId()); CreateTagsOptions tagOptions = CreateTagsOptions.Builder.resourceIds(vm.getId()) .resourceType(Tag.ResourceType.USER_VM) .tags(common); awaitCompletion(tagJob.getJobId()); logger.debug("<< tags added"); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); NIC nic = Iterables.find(vm.getNICs(), new Predicate<NIC>() { @Override public boolean apply(NIC input) { logger.debug(">> creating static NAT for virtualMachine(%s) in network(%s)", vm.getId(), networkId); PublicIPAddress ip = staticNATVMInNetwork.create(networks.get(networkId)).apply(vm); logger.trace("<< static NATed IPAddress(%s) to virtualMachine(%s)", ip.getId(), vm.getId()); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); List<Integer> ports = Ints.asList(templateOptions.getInboundPorts()); if (capabilities.getCloudStackVersion().startsWith("2")) { logger.error("-- exception after node has been created, trying to destroy the created virtualMachine(%s)", vm.getId()); try { destroyNode(vm.getId());
logger.debug("--- virtualmachine: %s", vm); LoginCredentials credentials = null; if (vm.isPasswordEnabled()) { assert vm.getPassword() != null : vm; credentials = LoginCredentials.builder().password(vm.getPassword()).build(); } else { credentials = LoginCredentials.fromCredentials(credentialStore.get("keypair#" + templateOptions.getKeyPair())); logger.debug(">> creating static NAT for virtualMachine(%s) in network(%s)", vm.getId(), networkId); PublicIPAddress ip = staticNATVMInNetwork.create(networks.get(networkId)).apply(vm); logger.trace("<< static NATed IPAddress(%s) to virtualMachine(%s)", ip.getId(), vm.getId()); vm = client.getVirtualMachineClient().getVirtualMachine(vm.getId()); List<Integer> ports = Ints.asList(templateOptions.getInboundPorts()); if (capabilities.getCloudStackVersion().startsWith("2")) { return new NodeAndInitialCredentials<VirtualMachine>(vm, vm.getId() + "", credentials);
for (VirtualMachine vm : vms) { try { if (vm.getName().matches(regex)) { LOG.debug("deleting " + vm); String job = client.getVirtualMachineClient().destroyVirtualMachine(vm.getId()); LOG.debug("deleting " + vm + " - job " + job); if (job != null) jobs.add(job); vms = client.getVirtualMachineClient().listVirtualMachines(); for (VirtualMachine vm : vms) { match |= vm.getName().matches(regex);
String stopJob = client.getVirtualMachineApi().stopVirtualMachine(vm.getId()); jobComplete.apply(stopJob); Set<Volume> volumes = client.getVolumeApi().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vm.getId())); Volume volume = Iterables.getOnlyElement(volumes); AsyncCreateResponse templateJob = client.getTemplateApi().createTemplate(TemplateMetadata.builder() .name(cloneTemplate.getName()) .osTypeId(vm.getGuestOSId()) .displayText(cloneTemplate.getName()) .build(), options); .location(find(locations.get(), idEquals(vm.getZoneId()))) .id(newTemplate.getId()) .providerId(newTemplate.getId())
@Test public void testCreateVMWithoutSecurityGroupAssignsDefault() throws Exception { skipIfSecurityGroupsNotSupported(); String defaultTemplate = template != null ? template.getImageId() : null; VirtualMachine newVm = VirtualMachineClientLiveTest.createVirtualMachineWithOptionsInZone(DeployVirtualMachineOptions.NONE, zone.getId(), defaultTemplateOrPreferredInZone(defaultTemplate, client, zone.getId()), client, jobComplete, virtualMachineRunning); try { VirtualMachine runningVm = client.getVirtualMachineClient().getVirtualMachine(newVm.getId()); assertEquals(1, runningVm.getSecurityGroups().size()); assertEquals(Iterables.getOnlyElement(runningVm.getSecurityGroups()).getName(), "default"); } finally { assertTrue(jobComplete.apply(client.getVirtualMachineClient().destroyVirtualMachine(newVm.getId()))); } }
VirtualMachineConfigInfo vminfo = vm.getConfig(); VirtualMachineCapability vmc = vm.getCapability(); vm.getResourcePool(); System.out.println("Hello " + vm.getName()); System.out.println("GuestOS: " + vminfo.getGuestFullName()); System.out.println("Multiple snapshot supported: " + vmc.isMultipleSnapshotsSupported());
@Test(dependsOnMethods = "testCreateVirtualMachine") public void testVirtualMachineUpdate() throws Exception { UpdateVirtualMachineOptions options = UpdateVirtualMachineOptions.Builder.displayName("updated-name"); String job = client.getVirtualMachineApi().updateVirtualMachine(vm.getId(), options); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getDisplayName(), "updated-name"); }