Package org.jclouds.virtualbox.domain

Examples of org.jclouds.virtualbox.domain.VmSpec


            throw e;
      }
   }

   private IMachine createMachine(IVirtualBox vBox, MasterSpec masterSpec) {
      VmSpec vmSpec = masterSpec.getVmSpec();
      String flags = "";
      List<String> groups = Lists.newArrayList();
      String group = "";
      String settingsFile = manager.get().getVBox().composeMachineFilename(vmSpec.getVmName(), group , flags , workingDir);

      IMachine newMachine = vBox.createMachine(settingsFile, vmSpec.getVmName(), groups, vmSpec.getOsTypeId(), flags);
     
      manager.get().getVBox().registerMachine(newMachine);
      ensureConfiguration(masterSpec);
      return newMachine;
   }
View Full Code Here


      ensureConfiguration(masterSpec);
      return newMachine;
   }

   private void ensureConfiguration(MasterSpec machineSpec) {
      VmSpec vmSpec = machineSpec.getVmSpec();
      NetworkSpec networkSpec = machineSpec.getNetworkSpec();
      String vmName = vmSpec.getVmName();

      // Change BootOrder
      Map<Long, DeviceType> positionAndDeviceType = ImmutableMap.of(1l, DeviceType.HardDisk);
      ensureMachineHasDesiredBootOrder(vmName, positionAndDeviceType);

      // Change RAM
      ensureMachineHasMemory(vmName, vmSpec.getMemory());

      Set<StorageController> controllers = vmSpec.getControllers();
      if (controllers.isEmpty()) {
         throw new IllegalStateException(missingIDEControllersMessage(vmSpec));
      }
      StorageController controller = controllers.iterator().next();
      ensureMachineHasStorageControllerNamed(vmName, controller);
View Full Code Here

   private CloneSpec configureCloneSpec(
           NodeSpec nodeSpec, String guestOsUser, String guestOsPassword) {

      String cloneName = generateCloneName(nodeSpec);

      VmSpec cloneVmSpec = VmSpec.builder()
              .id(cloneName)
              .name(cloneName)
              .memoryMB(ram)
              .osTypeId(nodeSpec.getMaster().getMachine().getOSTypeId())
              .guestUser(guestOsUser)
View Full Code Here

      this.machineUtils = machineUtils;
   }

   @Override
   public IMachine apply(CloneSpec cloneSpec) {
      VmSpec vmSpec = cloneSpec.getVmSpec();
      try {
         manager.get().getVBox().findMachine(vmSpec.getVmName());
         throw new IllegalStateException("Machine " + vmSpec.getVmName() + " is already registered.");
      } catch (VBoxException e) {
         if (machineNotFoundException(e))
            return cloneMachine(cloneSpec);
         else
            throw e;
View Full Code Here

      return e.getMessage().contains("VirtualBox error: Could not find a registered machine named ")
               || e.getMessage().contains("Could not find a registered machine with UUID {");
   }

   private IMachine cloneMachine(CloneSpec cloneSpec) {
      VmSpec vmSpec = cloneSpec.getVmSpec();
      NetworkSpec networkSpec = cloneSpec.getNetworkSpec();
      boolean isLinkedClone = cloneSpec.isLinked();
      IMachine master = cloneSpec.getMaster();
      String flags = "";
      List<String> groups = ImmutableList.of();
      String group = "";
      String settingsFile = manager.get().getVBox().composeMachineFilename(vmSpec.getVmName(), group , flags , workingDir);
      IMachine clonedMachine = manager
               .get()
               .getVBox()
               .createMachine(settingsFile, vmSpec.getVmName(), groups, vmSpec.getOsTypeId(), flags);
      List<CloneOptions> options = Lists.newArrayList();
      if (isLinkedClone)
         options.add(CloneOptions.Link);

      ISnapshot currentSnapshot = new TakeSnapshotIfNotAlreadyAttached(manager,
            "snapshotName", "snapshotDesc", logger).apply(master);
      IProgress progress = currentSnapshot.getMachine().cloneTo(clonedMachine,
            CloneMode.MachineState, options);
      progress.waitForCompletion(-1);

      // memory may not be the same as the master vm
      clonedMachine.setMemorySize(cloneSpec.getVmSpec().getMemory());

      // registering
      manager.get().getVBox().registerMachine(clonedMachine);

      // Networking
      for (NetworkInterfaceCard networkInterfaceCard : networkSpec.getNetworkInterfaceCards()) {
         new AttachNicToMachine(vmSpec.getVmName(), machineUtils).apply(networkInterfaceCard);
      }
     
      // set only once the creds for this machine, same coming from its master
      logger.debug("<< storing guest credentials on vm(%s) as extra data", clonedMachine.getName());
      String masterUsername = master.getExtraData(GUEST_OS_USER);
View Full Code Here

   protected void undoVm(String vmNameOrId) {
      IMachine vm = null;
      try {
         vm = manager.get().getVBox().findMachine(vmNameOrId);
         VmSpec vmSpec = new IMachineToVmSpec().apply(vm);
         int attempts = 0;
         while (attempts < 10 && !vm.getSessionState().equals(SessionState.Unlocked)) {
            attempts++;
            Uninterruptibles.sleepUninterruptibly(200, TimeUnit.MILLISECONDS);
         }
View Full Code Here

               .attachISO(0, 0, operatingSystemIso)
               .attachHardDisk(
                        HardDisk.builder().diskpath(adminDisk(masterName)).controllerPort(0).deviceSlot(1)
                                 .autoDelete(true).build()).attachISO(1, 0, guestAdditionsIso).build();

      VmSpec sourceVmSpec = VmSpec.builder().id(masterName).name(masterName).osTypeId("").memoryMB(512)
               .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build();

      IsoSpec isoSpec = IsoSpec
               .builder()
               .sourcePath(operatingSystemIso)
View Full Code Here

      StorageController ideController = StorageController.builder()
            .name("IDE Controller")
            .bus(StorageBus.IDE)
            .attachISO(1, 0, "VBoxGuestAdditions_")
            .build();
      VmSpec vmSpec = VmSpec.builder()
            .id("").name("")
            .memoryMB(512)
            .osTypeId("")
            .controller(ideController)
            .forceOverwrite(true)
View Full Code Here

   public void testInstallGAWhenIsoIsNotPresent() {
      StorageController ideController = StorageController.builder()
            .name("IDE Controller")
            .bus(StorageBus.IDE)
            .build();
      VmSpec vmSpec = VmSpec.builder()
            .id("").name("")
            .memoryMB(512)
            .osTypeId("")
            .controller(ideController)
            .forceOverwrite(true)
View Full Code Here

               .attachISO(0, 0, operatingSystemIso)
               .attachHardDisk(
                        HardDisk.builder().diskpath(adminDisk(instanceName)).controllerPort(0).deviceSlot(1)
                                 .autoDelete(true).build()).attachISO(1, 1, guestAdditionsIso).build();

      VmSpec instanceVmSpec = VmSpec.builder().id(instanceName).name(instanceName).osTypeId("").memoryMB(512)
               .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build();

      Injector injector = view.utils().injector();
      IsoSpec isoSpec = IsoSpec
               .builder()
View Full Code Here

TOP

Related Classes of org.jclouds.virtualbox.domain.VmSpec

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.