You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/27 17:36:40 UTC

[4/9] JCLOUDS-758 Drop VirtualBox labs provider.

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/java/org/jclouds/virtualbox/util/NetworkUtils.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/java/org/jclouds/virtualbox/util/NetworkUtils.java b/virtualbox/src/main/java/org/jclouds/virtualbox/util/NetworkUtils.java
deleted file mode 100644
index 70e46db..0000000
--- a/virtualbox/src/main/java/org/jclouds/virtualbox/util/NetworkUtils.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.util;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.compute.options.RunScriptOptions.Builder.runAsRoot;
-
-import java.net.URI;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import com.google.common.util.concurrent.Uninterruptibles;
-import org.jclouds.compute.callables.RunScriptOnNode;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.options.RunScriptOptions;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.location.Provider;
-import org.jclouds.logging.Logger;
-import org.jclouds.scriptbuilder.domain.Statements;
-import org.jclouds.virtualbox.domain.BridgedIf;
-import org.jclouds.virtualbox.domain.NetworkAdapter;
-import org.jclouds.virtualbox.domain.NetworkInterfaceCard;
-import org.jclouds.virtualbox.domain.NetworkSpec;
-import org.jclouds.virtualbox.functions.IpAddressesLoadingCache;
-import org.jclouds.virtualbox.functions.RetrieveActiveBridgedInterfaces;
-import org.jclouds.virtualbox.statements.EnableNetworkInterface;
-import org.jclouds.virtualbox.statements.GetIPAddressFromMAC;
-import org.jclouds.virtualbox.statements.ScanNetworkWithPing;
-import org.virtualbox_4_2.HostNetworkInterfaceType;
-import org.virtualbox_4_2.IDHCPServer;
-import org.virtualbox_4_2.IHostNetworkInterface;
-import org.virtualbox_4_2.INetworkAdapter;
-import org.virtualbox_4_2.NetworkAttachmentType;
-import org.virtualbox_4_2.VirtualBoxManager;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
-import com.google.common.base.Supplier;
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.inject.Inject;
-
-/**
- * Utilities to manage VirtualBox networks on guests
- */
-
-@Singleton
-public class NetworkUtils {
-
-   // TODO parameterize
-   public static final int MASTER_PORT = 2222;
-   private static final String VIRTUALBOX_HOST_GATEWAY = "10.0.2.15";
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   private final Supplier<VirtualBoxManager> manager;
-   private final MachineUtils machineUtils;
-   private final Supplier<NodeMetadata> host;
-   private final Supplier<URI> providerSupplier;
-   private final IpAddressesLoadingCache ipAddressesLoadingCache;
-   private final RunScriptOnNode.Factory scriptRunnerFactory;
-   private final Supplier<NodeMetadata> hostSupplier;
-
-   @Inject
-   public NetworkUtils(Supplier<VirtualBoxManager> manager, MachineUtils machineUtils, Supplier<NodeMetadata> host,
-                       @Provider Supplier<URI> providerSupplier, IpAddressesLoadingCache ipAddressesLoadingCache,
-                       Supplier<NodeMetadata> hostSupplier, RunScriptOnNode.Factory scriptRunnerFactory) {
-      this.manager = manager;
-      this.machineUtils = machineUtils;
-      this.host = checkNotNull(host, "host can't be null");
-      this.providerSupplier = checkNotNull(providerSupplier, "endpoint to virtualbox web server can't be null");
-      this.ipAddressesLoadingCache = ipAddressesLoadingCache;
-      this.scriptRunnerFactory = scriptRunnerFactory;
-      this.hostSupplier = hostSupplier;
-   }
-
-   public NetworkSpec createNetworkSpecWhenVboxIsLocalhost() {
-      NetworkAdapter natAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.NAT).build();
-
-      NetworkInterfaceCard natIfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(natAdapter).slot(1L).build();
-      NetworkAdapter hostOnlyAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.HostOnly)
-            .build();
-      // create new hostOnly interface if needed, otherwise use the one already
-      // there with dhcp enabled ...
-      String hostOnlyIfName = getHostOnlyIfOrCreate();
-      NetworkInterfaceCard hostOnlyIfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(hostOnlyAdapter)
-            .addHostInterfaceName(hostOnlyIfName).slot(0L).build();
-      return createNetworkSpecForHostOnlyNATNICs(natIfaceCard, hostOnlyIfaceCard);
-   }
-
-   public NetworkInterfaceCard createHostOnlyNIC(long port) {
-      NetworkAdapter hostOnlyAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.HostOnly)
-            .build();
-      // create new hostOnly interface if needed, otherwise use the one already
-      // there with dhcp enabled ...
-      String hostOnlyIfName = getHostOnlyIfOrCreate();
-      return NetworkInterfaceCard.builder().addNetworkAdapter(hostOnlyAdapter).addHostInterfaceName(hostOnlyIfName)
-            .slot(port).build();
-   }
-
-   public boolean enableNetworkInterface(NodeMetadata nodeMetadata, NetworkInterfaceCard networkInterfaceCard) {
-      ListenableFuture<ExecResponse> execEnableNetworkInterface = machineUtils.runScriptOnNode(nodeMetadata,
-              new EnableNetworkInterface(networkInterfaceCard), RunScriptOptions.NONE);
-      ExecResponse execEnableNetworkInterfaceResponse = Futures.getUnchecked(execEnableNetworkInterface);
-      return execEnableNetworkInterfaceResponse.getExitStatus() == 0;
-   }
-
-   private NetworkSpec createNetworkSpecForHostOnlyNATNICs(NetworkInterfaceCard natIfaceCard,
-         NetworkInterfaceCard hostOnlyIfaceCard) {
-      return NetworkSpec.builder().addNIC(hostOnlyIfaceCard).addNIC(natIfaceCard).build();
-   }
-
-   public String getHostOnlyIfOrCreate() {
-      IHostNetworkInterface availableHostInterfaceIf = returnExistingHostNetworkInterfaceWithDHCPenabledOrNull(manager
-            .get().getVBox().getHost().getNetworkInterfaces());
-      if (availableHostInterfaceIf == null) {
-         final String hostOnlyIfName = createHostOnlyIf();
-         assignDHCPtoHostOnlyInterface(hostOnlyIfName);
-         return hostOnlyIfName;
-      } else {
-         return availableHostInterfaceIf.getName();
-      }
-   }
-
-   private void assignDHCPtoHostOnlyInterface(final String hostOnlyIfName) {
-      List<IHostNetworkInterface> availableNetworkInterfaces = manager.get().getVBox().getHost().getNetworkInterfaces();
-
-      IHostNetworkInterface iHostNetworkInterfaceWithHostOnlyIfName = Iterables.getOnlyElement(Iterables.filter(
-            availableNetworkInterfaces, new Predicate<IHostNetworkInterface>() {
-
-               @Override
-               public boolean apply(IHostNetworkInterface iHostNetworkInterface) {
-                  return iHostNetworkInterface.getName().equals(hostOnlyIfName);
-               }
-            }));
-
-      String hostOnlyIfIpAddress = iHostNetworkInterfaceWithHostOnlyIfName.getIPAddress();
-      String dhcpIpAddress = hostOnlyIfIpAddress.substring(0, hostOnlyIfIpAddress.lastIndexOf(".")) + ".254";
-      String dhcpNetmask = "255.255.255.0";
-      String dhcpLowerIp = hostOnlyIfIpAddress.substring(0, hostOnlyIfIpAddress.lastIndexOf(".")) + ".2";
-      String dhcpUpperIp = hostOnlyIfIpAddress.substring(0, hostOnlyIfIpAddress.lastIndexOf(".")) + ".253";
-      NodeMetadata hostNodeMetadata = getHostNodeMetadata();
-
-      ExecResponse response = scriptRunnerFactory
-            .create(
-                  hostNodeMetadata,
-                  Statements.exec(String
-                        .format(
-                              "VBoxManage dhcpserver add --ifname %s --ip %s --netmask %s --lowerip %s --upperip %s --enable",
-                              hostOnlyIfName, dhcpIpAddress, dhcpNetmask, dhcpLowerIp, dhcpUpperIp)),
-                  runAsRoot(false).wrapInInitScript(false)).init().call();
-      checkState(response.getExitStatus() == 0);
-   }
-
-   private String createHostOnlyIf() {
-      NodeMetadata hostNodeMetadata = getHostNodeMetadata();
-      ExecResponse createHostOnlyResponse = scriptRunnerFactory
-            .create(hostNodeMetadata, Statements.exec("VBoxManage hostonlyif create"),
-                  runAsRoot(false).wrapInInitScript(false)).init().call();
-      String output = createHostOnlyResponse.getOutput();
-      checkState(createHostOnlyResponse.getExitStatus() == 0, "cannot create hostonly interface ");
-      checkState(output.contains("'"), "cannot create hostonly interface");
-      return output.substring(output.indexOf("'") + 1, output.lastIndexOf("'"));
-   }
-
-   private NodeMetadata getHostNodeMetadata() {
-      return NodeMetadataBuilder.fromNodeMetadata(host.get())
-            .publicAddresses(ImmutableList.of(providerSupplier.get().getHost())).build();
-   }
-
-   private IHostNetworkInterface returnExistingHostNetworkInterfaceWithDHCPenabledOrNull(
-         Iterable<IHostNetworkInterface> availableNetworkInterfaces) {
-      checkNotNull(availableNetworkInterfaces);
-      return Iterables.getFirst(filterAvailableNetworkInterfaceByHostOnlyAndDHCPenabled(availableNetworkInterfaces),
-            null);
-   }
-
-   private Iterable<IHostNetworkInterface> filterAvailableNetworkInterfaceByHostOnlyAndDHCPenabled(
-         Iterable<IHostNetworkInterface> availableNetworkInterfaces) {
-      return Iterables.filter(availableNetworkInterfaces,
-            new Predicate<IHostNetworkInterface>() {
-               @Override
-               public boolean apply(IHostNetworkInterface iHostNetworkInterface) {
-                  // this is an horrible workaround cause
-                  // iHostNetworkInterface.getDhcpEnabled is working only for
-                  // windows host
-                  boolean match = false;
-                  List<IDHCPServer> availableDHCPservers = manager.get().getVBox().getDHCPServers();
-                  for (IDHCPServer idhcpServer : availableDHCPservers) {
-                     if (idhcpServer.getEnabled()
-                           && idhcpServer.getNetworkName().equals(iHostNetworkInterface.getNetworkName()))
-                        match = true;
-                  }
-                  return iHostNetworkInterface.getInterfaceType().equals(HostNetworkInterfaceType.HostOnly) && match;
-               }
-            });
-   }
-
-   public String getValidHostOnlyIpFromVm(String machineNameOrId) {
-      long nicSlot = 0;
-      int count = 0;
-      String ipAddress = "";
-      while (nicSlot < 4 && ipAddress.isEmpty()) {
-         MachineNameOrIdAndNicSlot machineNameOrIdAndNicSlot =
-                 MachineNameOrIdAndNicSlot.fromParts(machineNameOrId, nicSlot);
-         while (count < 10 && ipAddress.isEmpty()) {
-            Uninterruptibles.sleepUninterruptibly(3, TimeUnit.SECONDS);
-            ipAddress = getIpAddressFromNicSlot(machineNameOrIdAndNicSlot);
-            if (!isValidIpForHostOnly(ipAddress)) {
-               ipAddressesLoadingCache.invalidate(machineNameOrIdAndNicSlot);
-               ipAddress = "";
-            }
-            count++;
-         }
-         nicSlot++;
-      }
-      return checkNotNull(Strings.emptyToNull(ipAddress),
-              String.format("Cannot find a valid IP address for the %s's HostOnly NIC", machineNameOrId));
-   }
-
-   public String getIpAddressFromNicSlot(String machineNameOrId, long nicSlot) {
-      MachineNameOrIdAndNicSlot machineNameOrIdAndNicSlot = MachineNameOrIdAndNicSlot.fromParts(machineNameOrId,
-            nicSlot);
-      return getIpAddressFromNicSlot(machineNameOrIdAndNicSlot);
-   }
-
-   public String getIpAddressFromNicSlot(MachineNameOrIdAndNicSlot machineNameOrIdAndNicSlot) {
-      try {
-         return ipAddressesLoadingCache.get(machineNameOrIdAndNicSlot);
-      } catch (ExecutionException e) {
-         logger.error("Problem in using the ipAddressCache", e.getCause());
-         throw Throwables.propagate(e);
-      }
-   }
-
-   public boolean isValidIpForHostOnly(String ip) {
-      return !ip.isEmpty() && isIpv4(ip) && !ipBelongsToNatRange(ip) && !ipEqualsToNatGateway(ip);
-   }
-
-   public static boolean isIpv4(String s) {
-      String IP_V4_ADDRESS_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
-            + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
-      Pattern pattern = Pattern.compile(IP_V4_ADDRESS_PATTERN);
-      Matcher matcher = pattern.matcher(s);
-      return matcher.matches();
-   }
-
-   private static boolean ipEqualsToNatGateway(String ip) {
-      return ip.equals(VIRTUALBOX_HOST_GATEWAY);
-   }
-
-   private static boolean ipBelongsToNatRange(String ip) {
-      return ip.startsWith("10.0.3");
-   }
-
-   protected String getIpAddressFromBridgedNIC(INetworkAdapter networkAdapter) {
-      // RetrieveActiveBridgedInterfaces
-      List<BridgedIf> activeBridgedInterfaces = new RetrieveActiveBridgedInterfaces(scriptRunnerFactory)
-            .apply(hostSupplier.get());
-      BridgedIf activeBridgedIf = checkNotNull(Iterables.get(activeBridgedInterfaces, 0), "activeBridgedInterfaces");
-      String network = activeBridgedIf.getIpAddress();
-
-      // scan ip
-      RunScriptOnNode ipScanRunScript = scriptRunnerFactory.create(hostSupplier.get(),
-            new ScanNetworkWithPing(network), RunScriptOptions.NONE);
-      ExecResponse execResponse = ipScanRunScript.init().call();
-      checkState(execResponse.getExitStatus() == 0);
-
-      // retrieve ip from mac
-      RunScriptOnNode getIpFromMACAddressRunScript = scriptRunnerFactory.create(hostSupplier.get(),
-            new GetIPAddressFromMAC(networkAdapter.getMACAddress()), RunScriptOptions.NONE);
-      ExecResponse ipExecResponse = getIpFromMACAddressRunScript.init().call();
-      checkState(ipExecResponse.getExitStatus() == 0);
-      return checkNotNull(ipExecResponse.getOutput(), "ipAddress");
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata b/virtualbox/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
deleted file mode 100644
index 6eeabb6..0000000
--- a/virtualbox/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
+++ /dev/null
@@ -1 +0,0 @@
-org.jclouds.virtualbox.VirtualBoxApiMetadata
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/default-images.yaml
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/default-images.yaml b/virtualbox/src/main/resources/default-images.yaml
deleted file mode 100644
index ff50c2b..0000000
--- a/virtualbox/src/main/resources/default-images.yaml
+++ /dev/null
@@ -1,149 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-images:
-    - id: ubuntu-12.04.1-amd64
-      name: ubuntu-12.04.1-server-amd64
-      description: ubuntu 12.04.1 server (amd64)
-      os_arch: amd64
-      os_family: ubuntu
-      os_description: ubuntu
-      os_version: 12.04.1
-      os_64bit: true
-      iso: http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-server-amd64.iso
-      iso_md5: a8c667e871f48f3a662f3fbf1c3ddb17
-      username: toor
-      credential: password
-      keystroke_sequence: <Esc><Esc><Enter> /install/vmlinuz noapic preseed/url=PRECONFIGURATION_URL debian-installer=en_US auto locale=en_US kbd-chooser/method=us hostname=HOSTNAME fb=false debconf/frontend=noninteractive console-setup/ask_detect=false keyboard-configuration/layoutcode=us initrd=/install/initrd.gz -- <Enter>
-      preseed_cfg: |
-                      ## Options to set on the command line
-                      d-i debian-installer/locale string en_US.utf8
-                      d-i console-setup/ask_detect boolean false
-                      d-i console-setup/layout string USA
-                      d-i netcfg/get_hostname string unassigned-hostname
-                      d-i netcfg/get_domain string unassigned-domain
-                      # Continue without a default route
-                      # Not working , specify a dummy in the DHCP
-                      #d-i netcfg/no_default_route boolean
-                      d-i time/zone string UTC
-                      d-i clock-setup/utc-auto boolean true
-                      d-i clock-setup/utc boolean true
-                      d-i kbd-chooser/method select American English
-                      d-i netcfg/wireless_wep string
-                      d-i base-installer/kernel/override-image string linux-server
-                      #d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic
-                      # Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
-                      d-i debconf debconf/frontend select Noninteractive
-                      d-i pkgsel/install-language-support boolean false
-                      tasksel tasksel/first multiselect standard, ubuntu-server
-                      #d-i partman-auto/method string regular
-                      d-i partman-auto/method string lvm
-                      #d-i partman-auto/purge_lvm_from_device boolean true
-                      d-i partman-lvm/confirm boolean true
-                      d-i partman-lvm/device_remove_lvm boolean true
-                      d-i partman-auto/choose_recipe select atomic
-                      d-i partman/confirm_write_new_label boolean true
-                      d-i partman/confirm_nooverwrite boolean true
-                      d-i partman/choose_partition select finish
-                      d-i partman/confirm boolean true
-                      #http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883
-                      #Message: "write the changes to disk and configure lvm preseed"
-                      #http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input
-                      #preseed partman-lvm/confirm_nooverwrite boolean true
-                      # Write the changes to disks and configure LVM?
-                      d-i partman-lvm/confirm boolean true
-                      d-i partman-lvm/confirm_nooverwrite boolean true
-                      d-i partman-auto-lvm/guided_size string max
-                      ## Default user, we can get away with a recipe to change this
-                      d-i passwd/user-fullname string toor
-                      d-i passwd/username string toor
-                      d-i passwd/user-password password password
-                      d-i passwd/user-password-again password password
-                      d-i user-setup/encrypt-home boolean false
-                      d-i user-setup/allow-password-weak boolean true
-                      ## minimum is ssh and ntp
-                      # Individual additional packages to install
-                      d-i pkgsel/include string openssh-server ntp
-                      # Whether to upgrade packages after debootstrap.
-                      # Allowed values: none, safe-upgrade, full-upgrade
-                      d-i pkgsel/upgrade select full-upgrade
-                      d-i grub-installer/only_debian boolean true
-                      d-i grub-installer/with_other_os boolean true
-                      d-i finish-install/reboot_in_progress note
-                      #For the update
-                      d-i pkgsel/update-policy select none
-                      # debconf-get-selections --install
-                      #Use mirror
-                      #d-i apt-setup/use_mirror boolean true
-                      #d-i mirror/country string manual
-                      #choose-mirror-bin mirror/protocol string http
-                      #choose-mirror-bin mirror/http/hostname string 192.168.4.150
-                      #choose-mirror-bin mirror/http/directory string /ubuntu
-                      #choose-mirror-bin mirror/suite select maverick
-                      #d-i debian-installer/allow_unauthenticated string true
-                      choose-mirror-bin mirror/http/proxy string
-    - id: centos-6.3-amd64
-      name: centos-6.3-amd64
-      description: centos-6.3 (amd64)
-      os_arch: amd64
-      os_family: RedHat
-      os_description: RedHat
-      os_version: 6.3
-      os_64bit: true
-      iso: http://www.mirrorservice.org/sites/mirror.centos.org/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso
-      iso_md5: 087713752fa88c03a5e8471c661ad1a2
-      username: toor
-      credential: password
-      keystroke_sequence: <Tab> <Spacebar> text ks=PRECONFIGURATION_URL <Enter>
-      preseed_cfg: |
-                      ## Options to set on the command line
-                      install
-                      cdrom
-                      lang en_US.UTF-8
-                      keyboard us
-                      network --bootproto=dhcp
-                      rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
-                      firewall --enabled --service=ssh
-                      authconfig --enableshadow --passalgo=sha512
-                      selinux --disabled
-                      timezone UTC
-                      bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
-                      zerombr yes
-
-                      clearpart --all --drives=sda --initlabel
-                      autopart
-                      auth  --useshadow  --enablemd5
-                      #skip answers to the First Boot process
-                      firstboot --disable
-                      #reboot machine
-                      reboot
-
-                      %packages --ignoremissing
-                      @core
-                      %end
-
-                      %post
-                      /usr/bin/yum -y install sudo gcc make kernel kernel-devel openssl-devel perl wget dkms acpid
-                      /etc/init.d/haldaemon stop
-                      /etc/init.d/acpid start
-                      /etc/init.d/haldaemon start
-                      /usr/sbin/groupadd toor
-                      /usr/sbin/useradd toor -g toor -G wheel
-                      echo "password"|passwd --stdin toor
-                      echo "toor        ALL=(ALL)       NOPASSWD: ALL" > /etc/sudoers.d/toor
-                      chmod 0440 /etc/sudoers.d/toor
-                      sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
-                      %end
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/checkVBoxService.sh
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/checkVBoxService.sh b/virtualbox/src/main/resources/functions/checkVBoxService.sh
deleted file mode 100644
index 85ab94b..0000000
--- a/virtualbox/src/main/resources/functions/checkVBoxService.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-function checkVBoxService {
-   local _FOUND=`ps aux | grep '[V]BoxService'`
-   [ -n "$_FOUND" ] && {
-         return 0
-      } || {
-         return 1
-      }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/cleanupUdevIfNeeded.sh
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/cleanupUdevIfNeeded.sh b/virtualbox/src/main/resources/functions/cleanupUdevIfNeeded.sh
deleted file mode 100644
index 921cb48..0000000
--- a/virtualbox/src/main/resources/functions/cleanupUdevIfNeeded.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-function cleanupUdevIfNeeded {
-   if [ -f '/etc/udev/rules.d/70-persistent-net.rules' ]
-   then
-      rm /etc/udev/rules.d/70-persistent-net.rules
-   fi
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/exportIpAddressFromVmNamed.sh
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/exportIpAddressFromVmNamed.sh b/virtualbox/src/main/resources/functions/exportIpAddressFromVmNamed.sh
deleted file mode 100644
index aeb941b..0000000
--- a/virtualbox/src/main/resources/functions/exportIpAddressFromVmNamed.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-function exportIpAddressFromVmNamed {
-   unset FOUND_IP_ADDRESS;
-   [ $# -eq 1 ] || {
-      abort "exportIpAddressFromVmNamed requires virtual machine name parameter"
-      return 1
-   }
-   local VMNAME="$0"; shift
-   local _FOUND=`VBoxManage guestproperty enumerate "$VMNAME" --patterns "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $4 }' | cut -c 1-14`
-   [ -n "$_FOUND" ] && {
-      export FOUND_IP_ADDRESS=$_FOUND
-      echo [$FOUND_IP_ADDRESS]
-      return 0
-   } || {
-      return 1
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/getIpAddress.cmd
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/getIpAddress.cmd b/virtualbox/src/main/resources/functions/getIpAddress.cmd
deleted file mode 100644
index 460afbf..0000000
--- a/virtualbox/src/main/resources/functions/getIpAddress.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-REM
-REM Licensed to the Apache Software Foundation (ASF) under one or more
-REM contributor license agreements.  See the NOTICE file distributed with
-REM this work for additional information regarding copyright ownership.
-REM The ASF licenses this file to You under the Apache License, Version 2.0
-REM (the "License"); you may not use this file except in compliance with
-REM the License.  You may obtain a copy of the License at
-REM
-REM     http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the License.
-REM

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/getIpAddress.sh
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/getIpAddress.sh b/virtualbox/src/main/resources/functions/getIpAddress.sh
deleted file mode 100644
index f4e28ad..0000000
--- a/virtualbox/src/main/resources/functions/getIpAddress.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-function getIpAddress {
-   unset FOUND_IP_ADDRESS;
-   [ $# -eq 1 ] || {
-      abort "installGuestAdditions requires virtual machine name parameter"
-      return 1
-   }
-   local VMNAME="$0"; shift
-   local _FOUND=`VBoxManage guestproperty enumerate "$VMNAME" --patterns "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $4 }' | cut -c 1-14`
-   [ -n "$_FOUND" ] && {
-      export FOUND_IP_ADDRESS=$_FOUND
-      echo [$FOUND_IP_ADDRESS]
-      return 0
-   } || {
-      return 1
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/main/resources/functions/installModuleAssistantIfNeeded.sh
----------------------------------------------------------------------
diff --git a/virtualbox/src/main/resources/functions/installModuleAssistantIfNeeded.sh b/virtualbox/src/main/resources/functions/installModuleAssistantIfNeeded.sh
deleted file mode 100644
index 5a392e1..0000000
--- a/virtualbox/src/main/resources/functions/installModuleAssistantIfNeeded.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-function installModuleAssistantIfNeeded {
-   unset OSNAME;
-   local OSNAME=`lsb_release -d -s | cut -d ' ' -f 1`; shift
-   if [ $OSNAME = 'Ubuntu' ]
-   then
-      echo "OS is Ubuntu"
-      apt-get -f -y -qq --force-yes install dkms build-essential linux-headers-`uname -r` module-assistant acpid;
-      m-a prepare -i
-      return 0
-   fi
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java
deleted file mode 100644
index 362b985..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
-import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-import org.jclouds.concurrent.config.ExecutorServiceModule;
-import org.jclouds.rest.annotations.BuildVersion;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.jclouds.util.Strings2;
-import org.jclouds.virtualbox.config.VirtualBoxConstants;
-import org.jclouds.virtualbox.domain.HardDisk;
-import org.jclouds.virtualbox.domain.IsoSpec;
-import org.jclouds.virtualbox.domain.Master;
-import org.jclouds.virtualbox.domain.MasterSpec;
-import org.jclouds.virtualbox.domain.NetworkAdapter;
-import org.jclouds.virtualbox.domain.NetworkInterfaceCard;
-import org.jclouds.virtualbox.domain.NetworkSpec;
-import org.jclouds.virtualbox.domain.StorageController;
-import org.jclouds.virtualbox.domain.VmSpec;
-import org.jclouds.virtualbox.functions.IMachineToVmSpec;
-import org.jclouds.virtualbox.functions.admin.UnregisterMachineIfExistsAndDeleteItsMedia;
-import org.jclouds.virtualbox.util.MachineController;
-import org.jclouds.virtualbox.util.MachineUtils;
-import org.jclouds.virtualbox.util.NetworkUtils;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.CleanupMode;
-import org.virtualbox_4_2.IMachine;
-import org.virtualbox_4_2.NetworkAttachmentType;
-import org.virtualbox_4_2.SessionState;
-import org.virtualbox_4_2.StorageBus;
-import org.virtualbox_4_2.VBoxException;
-import org.virtualbox_4_2.VirtualBoxManager;
-
-import com.google.common.base.Splitter;
-import com.google.common.base.Supplier;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.common.util.concurrent.Uninterruptibles;
-import com.google.inject.Key;
-import com.google.inject.Module;
-
-/**
- * Tests behavior of {@code VirtualBoxClient}
- */
-@Test(groups = "live", singleThreaded = true, testName = "BaseVirtualBoxClientLiveTest")
-public class BaseVirtualBoxClientLiveTest extends BaseComputeServiceContextLiveTest {
-
-   public static final String DESTROY_MASTER = "jclouds.virtualbox.destroy-test-master";
-
-   public BaseVirtualBoxClientLiveTest() {
-      provider = "virtualbox";
-   }
-
-   @Inject
-   protected MachineController machineController;
-
-   @Inject
-   protected Supplier<VirtualBoxManager> manager;
-
-   @Inject
-   void eagerlyStartManager(Supplier<VirtualBoxManager> manager) {
-      this.manager = manager;
-      manager.get();
-   }
-
-   @Inject
-   protected MachineUtils machineUtils;
-   
-   @Inject
-   protected NetworkUtils networkUtils;
-
-   protected String hostVersion;
-   protected String operatingSystemIso;
-   protected String guestAdditionsIso;
-   @Inject
-   @Named(VirtualBoxConstants.VIRTUALBOX_WORKINGDIR)
-   protected String workingDir;
-   protected String isosDir;
-   protected String keystrokeSequence;
-   @Inject protected Supplier<NodeMetadata> host;
-   @Inject
-   protected PrioritizeCredentialsFromTemplate prioritizeCredentialsFromTemplate;
-   @Inject
-   protected LoadingCache<Image, Master> mastersCache;
-   private String masterName;   
-
-   @Override
-   protected Iterable<Module> setupModules() {
-      return ImmutableSet.<Module> of(getLoggingModule(), credentialStoreModule, getSshModule(),  new ExecutorServiceModule(
-            sameThreadExecutor(), sameThreadExecutor()));
-   }
-   
-   @Override
-   @BeforeClass(groups = { "integration", "live" })
-   public void setupContext() {
-      super.setupContext();
-      view.utils().injector().injectMembers(this);
-      
-      // try and get a master from the cache, this will initialize the config/download isos and
-      // prepare everything IF a master is not available, subsequent calls should be pretty fast
-      Template template = view.getComputeService().templateBuilder().build();
-      checkNotNull(mastersCache.getUnchecked(template.getImage()));
-
-      masterName = VIRTUALBOX_IMAGE_PREFIX + template.getImage().getId();
-      isosDir = workingDir + File.separator + "isos";
-
-      hostVersion = Iterables.get(Splitter.on('-').split(view.utils().injector().getInstance(Key.get(String.class, BuildVersion.class))), 0);
-      operatingSystemIso = String.format("%s/%s.iso", isosDir, template.getImage().getName());
-      guestAdditionsIso = String.format("%s/VBoxGuestAdditions_%s.iso", isosDir, hostVersion);
-      keystrokeSequence = "";
-      try {
-         keystrokeSequence = Strings2.toStringAndClose(getClass().getResourceAsStream("/default-keystroke-sequence"));
-      } catch (IOException e) {
-         throw new RuntimeException("error reading default-keystroke-sequence file");
-      }
-   }
-
-   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);
-         }
-         machineUtils.applyForMachine(vmNameOrId, new UnregisterMachineIfExistsAndDeleteItsMedia(vmSpec));
-
-      } catch (VBoxException e) {
-         if (e.getMessage().contains("Could not find a registered machine named"))
-            return;
-      }
-   }
-
-   public String adminDisk(String vmName) {
-      return workingDir + File.separator + vmName + ".vdi";
-   }
-
-   public MasterSpec getMasterSpecForTest() {
-      StorageController ideController = StorageController
-               .builder()
-               .name("IDE Controller")
-               .bus(StorageBus.IDE)
-               .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)
-               .installationScript(keystrokeSequence).build();
-
-      NetworkAdapter networkAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.NAT)
-               .tcpRedirectRule("127.0.0.1", 2222, "", 22).build();
-      NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(networkAdapter)
-               .build();
-
-      NetworkSpec networkSpec = NetworkSpec.builder().addNIC(networkInterfaceCard).build();
-      return MasterSpec.builder().iso(isoSpec).vm(sourceVmSpec).network(networkSpec).build();
-   }
-
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-
-   @AfterSuite
-   protected void destroyMaster() {
-      if (System.getProperty(DESTROY_MASTER) != null
-               || Boolean.parseBoolean(System.getProperty(DESTROY_MASTER))) {
-         undoVm(masterName);
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/PreseedCfgServerTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/PreseedCfgServerTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/PreseedCfgServerTest.java
deleted file mode 100644
index 249d6de..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/PreseedCfgServerTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Map;
-import java.util.Properties;
-
-import org.jclouds.compute.domain.Image;
-import org.jclouds.util.Strings2;
-import org.jclouds.virtualbox.config.VirtualBoxConstants;
-import org.jclouds.virtualbox.domain.YamlImage;
-import org.jclouds.virtualbox.functions.YamlImagesFromFileConfig;
-import org.jclouds.virtualbox.functions.admin.ImagesToYamlImagesFromYamlDescriptor;
-import org.jclouds.virtualbox.functions.admin.PreseedCfgServer;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.Iterables;
-
-/**
- * Tests that jetty is able to serve the preseed.cfg from the provided yaml
- * image. This test is here to have access to the defaultProperties() method in
- * {@link VirtualBoxPropertiesBuilder}.
- */
-@Test(groups = "live", singleThreaded = true, testName = "PreseedCfgServerTest")
-public class PreseedCfgServerTest {
-   private static final String lineSeparator = System.getProperty("line.separator");
-
-   @Test
-   public void testJettyServerServesPreseedFile() throws Exception {
-      Properties props = VirtualBoxApiMetadata.defaultProperties();
-
-      String preconfigurationUrl = props.getProperty(VirtualBoxConstants.VIRTUALBOX_PRECONFIGURATION_URL);
-
-      int port = URI.create(preconfigurationUrl).getPort();
-
-      PreseedCfgServer starter = new PreseedCfgServer();
-
-      starter.start(preconfigurationUrl, getDefaultImage().preseed_cfg);
-
-      String preseedFileFromJetty = Strings2.toStringAndClose(new URL("http://127.0.0.1:" + port + "/preseed.cfg").openStream());
-      String preseedFileFromFile = getDefaultImage().preseed_cfg + lineSeparator;
-      assertEquals(preseedFileFromFile, preseedFileFromJetty);
-
-      starter.stop();
-   }
-
-   public static YamlImage getDefaultImage() {
-      Map<Image, YamlImage> images = new ImagesToYamlImagesFromYamlDescriptor(new YamlImagesFromFileConfig(
-            "/default-images.yaml")).get();
-      return Iterables.get(images.values(), 0);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/VirtualBoxApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/VirtualBoxApiMetadataTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/VirtualBoxApiMetadataTest.java
deleted file mode 100644
index 45b73e1..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/VirtualBoxApiMetadataTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox;
-
-import org.jclouds.compute.internal.BaseComputeServiceApiMetadataTest;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", testName = "VirtualBoxApiMetadataTest")
-public class VirtualBoxApiMetadataTest extends BaseComputeServiceApiMetadataTest {
-
-   public VirtualBoxApiMetadataTest() {
-      super(new VirtualBoxApiMetadata());
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterLiveTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterLiveTest.java
deleted file mode 100644
index cac53b9..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterLiveTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.compute;
-
-import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_NODE_PREFIX;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Random;
-
-import javax.inject.Inject;
-
-import org.jclouds.compute.ComputeServiceAdapter.NodeAndInitialCredentials;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.ssh.SshClient;
-import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest;
-import org.jclouds.virtualbox.functions.IMachineToSshClient;
-import org.testng.annotations.AfterGroups;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.IMachine;
-
-import com.google.common.collect.Iterables;
-
-@Test(groups = "live", singleThreaded = true, testName = "VirtualBoxComputeServiceAdapterLiveTest")
-public class VirtualBoxComputeServiceAdapterLiveTest extends BaseVirtualBoxClientLiveTest {
-
-   private NodeAndInitialCredentials<IMachine> ubuntu;
-   private NodeAndInitialCredentials<IMachine> centos;
-
-   @Inject
-   protected VirtualBoxComputeServiceAdapter adapter;
-
-
-   @Test
-   public void testCreatedNodeHasExpectedNameAndWeCanConnectViaSsh() {
-      String group = "foo";
-      String name = "foo-ef9";
-      Template template = view.getComputeService().templateBuilder().build();
-      ubuntu = adapter.createNodeWithGroupEncodedIntoName(group, name, template);
-      assertTrue(ubuntu.getNode().getName().contains(group));
-      assertTrue(ubuntu.getNode().getName().contains(name));
-      assertTrue(ubuntu.getNode().getName().startsWith(VIRTUALBOX_NODE_PREFIX));
-      doConnectViaSsh(ubuntu.getNode(), prioritizeCredentialsFromTemplate.apply(template, ubuntu.getCredentials()));
-   }
-
-   @Test
-   public void testCreatedCentosNodeHasExpectedNameAndWeCanConnectViaSsh() {
-      String group = "foo";
-      String name = "centos6-" + new Random(100).nextInt();
-      Template template = view.getComputeService().templateBuilder()
-            .imageId("centos-6.3-amd64")
-            .build();
-      centos = adapter.createNodeWithGroupEncodedIntoName(group, name, template);
-      assertTrue(centos.getNode().getName().contains(group));
-      assertTrue(centos.getNode().getName().contains(name));
-      assertTrue(centos.getNode().getName().startsWith(VIRTUALBOX_NODE_PREFIX));
-      doConnectViaSsh(centos.getNode(), prioritizeCredentialsFromTemplate.apply(template, centos.getCredentials()));
-   }
-
-   protected void doConnectViaSsh(IMachine machine, LoginCredentials creds) {
-      SshClient ssh = view.utils().injector().getInstance(IMachineToSshClient.class).apply(machine);
-      try {
-         ssh.connect();
-         ExecResponse hello = ssh.exec("echo hello");
-         assertEquals(hello.getOutput().trim(), "hello");
-         System.err.println(ssh.exec("df -k").getOutput());
-         System.err.println(ssh.exec("mount").getOutput());
-         System.err.println(ssh.exec("uname -a").getOutput());
-      } finally {
-         if (ssh != null)
-            ssh.disconnect();
-      }
-   }
-
-   @Test
-   public void testListHardwareProfiles() {
-      Iterable<Hardware> profiles = adapter.listHardwareProfiles();
-      assertFalse(Iterables.isEmpty(profiles));
-   }
-
-   @Test
-   public void testListImages() {
-      Iterable<Image> iMageIterable = adapter.listImages();
-      assertFalse(Iterables.isEmpty(iMageIterable));
-   }
-
-   @AfterGroups(groups = "live")
-   @Override
-   protected void tearDownContext() {
-      if (ubuntu != null)
-         adapter.destroyNode(ubuntu.getNodeId() + "");
-      if (centos != null)
-         adapter.destroyNode(centos.getNodeId() + "");
-      super.tearDownContext();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterTest.java
deleted file mode 100644
index afa8c83..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxComputeServiceAdapterTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.compute;
-
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX;
-
-import java.util.List;
-import java.util.Map;
-
-import org.easymock.EasyMock;
-import org.jclouds.compute.config.BaseComputeServiceContextModule;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.json.Json;
-import org.jclouds.json.config.GsonModule;
-import org.jclouds.virtualbox.config.VirtualBoxComputeServiceContextModule;
-import org.jclouds.virtualbox.functions.IMachineToImage;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.IGuestOSType;
-import org.virtualbox_4_2.IMachine;
-import org.virtualbox_4_2.IVirtualBox;
-import org.virtualbox_4_2.VirtualBoxManager;
-
-import com.beust.jcommander.internal.Lists;
-import com.google.common.base.Function;
-import com.google.common.base.Suppliers;
-import com.google.inject.Guice;
-
-@Test(groups = "unit")
-public class VirtualBoxComputeServiceAdapterTest {
-
-   Map<OsFamily, Map<String, String>> osMap = new BaseComputeServiceContextModule() {
-   }.provideOsVersionMap(new ComputeServiceConstants.ReferenceData(), Guice.createInjector(new GsonModule())
-         .getInstance(Json.class));
-
-   @Test
-   public void testListImages() throws Exception {
-
-      VirtualBoxManager manager = createNiceMock(VirtualBoxManager.class);
-      IVirtualBox vBox = createNiceMock(IVirtualBox.class);
-      IGuestOSType osType = createNiceMock(IGuestOSType.class);
-
-      List<IMachine> machines = Lists.newArrayList();
-      IMachine imageMachine = createNiceMock(IMachine.class);
-      IMachine clonedMachine = createNiceMock(IMachine.class);
-      machines.add(imageMachine);
-      machines.add(clonedMachine);
-
-      expect(clonedMachine.getName()).andReturn("My Linux Node");
-      expect(clonedMachine.getDescription()).andReturn("My Linux Node");
-      expect(imageMachine.getName()).andReturn(VIRTUALBOX_IMAGE_PREFIX + "ubuntu-10.04");
-      expect(imageMachine.getDescription()).andReturn(VIRTUALBOX_IMAGE_PREFIX + "ubuntu-10.04");
-
-      expect(manager.getVBox()).andReturn(vBox).anyTimes();
-      expect(vBox.getMachines()).andReturn(machines).anyTimes();
-      expect(vBox.getGuestOSType(EasyMock.<String> anyObject())).andReturn(osType).anyTimes();
-      expect(osType.getDescription()).andReturn("Ubuntu 10.04").anyTimes();
-      expect(osType.getIs64Bit()).andReturn(true).anyTimes();
-
-      replay(manager, vBox, clonedMachine, imageMachine, osType);
-
-      Function<IMachine, Image> iMachineToImage = new IMachineToImage(
-               VirtualBoxComputeServiceContextModule.toPortableImageStatus, Suppliers.ofInstance(manager), osMap);
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxExperimentLiveTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxExperimentLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxExperimentLiveTest.java
deleted file mode 100644
index 389f439..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/VirtualBoxExperimentLiveTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.compute;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.ContextBuilder;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.RunNodesException;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.logging.Logger;
-import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
-import org.jclouds.ssh.SshClient;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-@Test(groups = "live", testName = "VirtualBoxExperimentLiveTest")
-public class VirtualBoxExperimentLiveTest extends BaseVirtualBoxClientLiveTest {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   ComputeServiceContext context;
-
-   @BeforeClass
-   public void setUp() {
-      context = ContextBuilder.newBuilder("virtualbox").modules(
-               ImmutableSet.<Module> of(new SLF4JLoggingModule(), new SshjSshClientModule())).build(
-               ComputeServiceContext.class);
-   }
-
-   @Test
-   public void testLaunchCluster() throws RunNodesException {
-      int numNodes = 3;
-      final String clusterName = "test-launch-cluster";
-      Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(clusterName, numNodes,
-               TemplateOptions.Builder.overrideLoginUser("toor"));
-      assertEquals(numNodes, nodes.size(), "wrong number of nodes");
-      for (NodeMetadata node : nodes) {
-         assertTrue(node.getGroup().equals("test-launch-cluster"));
-         logger.debug("Created Node: %s", node);
-         SshClient client = context.utils().sshForNode().apply(node);
-         client.connect();
-         ExecResponse hello = client.exec("echo hello");
-         assertEquals(hello.getOutput().trim(), "hello");
-      }
-      context.getComputeService().destroyNodesMatching(new Predicate<NodeMetadata>() {
-         @Override
-         public boolean apply(NodeMetadata input) {
-            return input.getId().contains(clusterName);
-         }
-      });
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/compute/extensions/VirtualBoxImageExtensionLiveTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/extensions/VirtualBoxImageExtensionLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/compute/extensions/VirtualBoxImageExtensionLiveTest.java
deleted file mode 100644
index 3318d4a..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/compute/extensions/VirtualBoxImageExtensionLiveTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.compute.extensions;
-
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.compute.RunNodesException;
-import org.jclouds.compute.extensions.internal.BaseImageExtensionLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-@Test(groups = "live", singleThreaded = true, testName = "VirtualBoxImageExtensionLiveTest")
-public class VirtualBoxImageExtensionLiveTest extends BaseImageExtensionLiveTest {
-
-   @Override
-   public void testDeleteImage() {
-      // TODO
-   }
-
-   @Override
-   public void testCreateImage() throws RunNodesException,
-         InterruptedException, ExecutionException {
-      // TODO
-   }
-
-   @Override
-   public void testSpawnNodeFromImage() throws RunNodesException {
-      // TODO
-   }
-
-   public VirtualBoxImageExtensionLiveTest() {
-      provider = "virtualbox";
-   }
-
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ExportIpAddressForVMNamedTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ExportIpAddressForVMNamedTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ExportIpAddressForVMNamedTest.java
deleted file mode 100644
index 1ea1af4..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ExportIpAddressForVMNamedTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.domain;
-
-import static org.jclouds.scriptbuilder.domain.Statements.interpret;
-import static org.jclouds.virtualbox.statements.Statements.exportIpAddressFromVmNamed;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-
-import org.jclouds.scriptbuilder.ScriptBuilder;
-import org.jclouds.scriptbuilder.domain.OsFamily;
-import org.jclouds.scriptbuilder.domain.ShellToken;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Resources;
-
-@Test(groups = "unit")
-public class ExportIpAddressForVMNamedTest {
-   
-   ScriptBuilder exportIpAddressForVMNamedBuilder = new ScriptBuilder()
-	.addStatement(exportIpAddressFromVmNamed("{args}"))
-	.addStatement(interpret("echo {varl}FOUND_IP_ADDRESS{varr}{lf}"));
-   	
-   public void testUNIX() throws IOException {  	
-      assertEquals(exportIpAddressForVMNamedBuilder.render(OsFamily.UNIX), Resources.toString(Resources.getResource(
-               "test_export_ip_address_from_vm_named." + ShellToken.SH.to(OsFamily.UNIX)), Charsets.UTF_8));
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ScanNetworkWithPingTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ScanNetworkWithPingTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ScanNetworkWithPingTest.java
deleted file mode 100644
index 08552fd..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/ScanNetworkWithPingTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.domain;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.scriptbuilder.domain.OsFamily;
-import org.jclouds.virtualbox.statements.ScanNetworkWithPing;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit")
-public class ScanNetworkWithPingTest {
-
-   private static final String network = "192.168.1.1";
-   private static final String networkWithoutLastNumber = "192.168.1";
-
-   public void testGetIPAdressFromMacAddressUnix() {
-      ScanNetworkWithPing statement = new ScanNetworkWithPing(network);
-      assertEquals(statement.render(OsFamily.UNIX), "for i in {1..254} ; do ping -c 1 -t 1 " + networkWithoutLastNumber + ".$i & done");
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/domain/VmSpecTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/VmSpecTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/domain/VmSpecTest.java
deleted file mode 100644
index a32a6f4..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/domain/VmSpecTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.domain;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.CleanupMode;
-import org.virtualbox_4_2.StorageBus;
-
-public class VmSpecTest {
-
-   @Test
-   public void testEqualsSuccessful() throws Exception {
-      VmSpec vmSpec = defaultVm().build();
-      VmSpec sameVmSpec = defaultVm().build();
-      assertEquals(vmSpec, sameVmSpec);
-   }
-
-   @Test
-   public void testEqualsWrongId() throws Exception {
-      VmSpec vmSpec = defaultVm().build();
-      VmSpec other = defaultVm().id("OtherVMId").build();
-      assertNotEquals(vmSpec, other);
-   }
-
-   @Test
-   public void testEqualsWrongName() throws Exception {
-      VmSpec vmSpec = defaultVm().build();
-      VmSpec other = defaultVm().name("OtherName").build();
-      assertNotEquals(vmSpec, other);
-   }
-
-   @Test
-   public void testEqualsWrongOsType() throws Exception {
-      VmSpec vmSpec = defaultVm().build();
-      VmSpec other = defaultVm().osTypeId("OtherOS").build();
-      assertNotEquals(vmSpec, other);
-   }
-
-   @Test
-   public void testEqualsWrongForceOverwriteRule() throws Exception {
-      VmSpec vmSpec = defaultVm().build();
-      VmSpec other = defaultVm().forceOverwrite(false).build();
-      assertNotEquals(vmSpec, other);
-   }
-
-   private VmSpec.Builder defaultVm() {
-		return VmSpec.builder()
-              .id("MyVmId")
-              .name("My VM")
-              .osTypeId("Ubuntu")
-              .memoryMB(1024)
-              .cleanUpMode(CleanupMode.Full)
-              .forceOverwrite(true)
-              .controller(
-                      StorageController.builder().name("Controller")
-                              .bus(StorageBus.IDE)
-                              .attachHardDisk(HardDisk.builder().diskpath("/tmp/tempdisk.vdi")
-                                    .controllerPort(0).deviceSlot(0).build())
-                              .build());
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/experiment/TestConfiguration.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/experiment/TestConfiguration.java b/virtualbox/src/test/java/org/jclouds/virtualbox/experiment/TestConfiguration.java
deleted file mode 100644
index e778f5e..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/experiment/TestConfiguration.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.experiment;
-
-import java.util.Map;
-
-import org.jclouds.scriptbuilder.statements.login.AdminAccess.Configuration;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-
-public enum TestConfiguration implements Configuration {
-   INSTANCE;
-   int pwCount = 0;
-
-   public TestConfiguration reset() {
-      pwCount = 0;
-      return this;
-   }
-
-   private final Supplier<String> defaultAdminUsername = Suppliers.ofInstance("defaultAdminUsername");
-   private final Supplier<Map<String, String>> defaultAdminSshKeys = Suppliers
-         .<Map<String, String>> ofInstance(ImmutableMap.of("public", "publicKey", "private", "privateKey"));
-   private final Supplier<String> passwordGenerator = new Supplier<String>() {
-
-      @Override
-      public String get() {
-         return pwCount++ + "";
-      }
-
-   };
-
-   private final Function<String, String> cryptFunction = new Function<String, String>() {
-
-      @Override
-      public String apply(String input) {
-         return String.format("crypt(%s)", input);
-      }
-
-   };
-
-   @Override
-   public Supplier<String> defaultAdminUsername() {
-      return defaultAdminUsername;
-   }
-
-   @Override
-   public Supplier<Map<String, String>> defaultAdminSshKeys() {
-      return defaultAdminSshKeys;
-   }
-
-   @Override
-   public Supplier<String> passwordGenerator() {
-      return passwordGenerator;
-   }
-
-   @Override
-   public Function<String, String> cryptFunction() {
-      return cryptFunction;
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AddIDEControllerIfNotExistsTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AddIDEControllerIfNotExistsTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AddIDEControllerIfNotExistsTest.java
deleted file mode 100644
index 63fc292..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AddIDEControllerIfNotExistsTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.functions;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
-import org.jclouds.virtualbox.domain.StorageController;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.IMachine;
-import org.virtualbox_4_2.IStorageController;
-import org.virtualbox_4_2.StorageBus;
-import org.virtualbox_4_2.VBoxException;
-
-@Test(groups = "unit", testName = "AddIDEControllerIfNotExistsTest")
-public class AddIDEControllerIfNotExistsTest {
-
-   @Test
-   public void testFine() throws Exception {
-      IMachine vm = createMock(IMachine.class);
-
-      String controllerName = "IDE Controller";
-      StorageController storageController = StorageController.builder().bus(StorageBus.IDE).name(controllerName).build();
-
-      expect(vm.addStorageController(controllerName, StorageBus.IDE)).andReturn(
-              createNiceMock(IStorageController.class));
-      vm.saveSettings();
-
-      replay(vm);
-
-      new AddIDEControllerIfNotExists(storageController).apply(vm);
-
-      verify(vm);
-   }
-
-   @Test
-   public void testAcceptableException() throws Exception {
-      IMachine vm = createMock(IMachine.class);
-
-      String controllerName = "IDE Controller";
-      StorageController storageController = StorageController.builder().bus(StorageBus.IDE).name(controllerName).build();
-
-      expect(vm.addStorageController(controllerName, StorageBus.IDE)).andThrow(
-              new VBoxException(createNiceMock(Throwable.class),
-                      "VirtualBox error: Storage controller named 'IDE Controller' already exists (0x80BB000C)"));
-
-      replay(vm);
-
-      new AddIDEControllerIfNotExists(storageController).apply(vm);
-
-      verify(vm);
-   }
-
-   @Test(expectedExceptions = VBoxException.class)
-   public void testUnacceptableException() throws Exception {
-      IMachine vm = createMock(IMachine.class);
-
-      String controllerName = "IDE Controller";
-      StorageController storageController = StorageController.builder().bus(StorageBus.IDE).name(controllerName).build();
-
-      expect(vm.addStorageController(controllerName, StorageBus.IDE)).andThrow(
-              new VBoxException(createNiceMock(Throwable.class), "VirtualBox error: General Error"));
-
-      replay(vm);
-
-      new AddIDEControllerIfNotExists(storageController).apply(vm);
-
-      verify(vm);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyBootOrderToMachineTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyBootOrderToMachineTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyBootOrderToMachineTest.java
deleted file mode 100644
index 922ece6..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyBootOrderToMachineTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.functions;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
-import com.google.common.collect.ImmutableMap;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.DeviceType;
-import org.virtualbox_4_2.IMachine;
-
-import java.util.Map;
-
-@Test(groups = "unit", testName = "ApplyBootOrderToMachineTest")
-public class ApplyBootOrderToMachineTest {
-
-   @Test
-   public void testSetBootOrderSuccessful() throws Exception {
-      Map<Long, DeviceType> positionAndDeviceType = ImmutableMap.of(1l, DeviceType.HardDisk);
-      IMachine machine = createMock(IMachine.class);
-      for (long position : positionAndDeviceType.keySet()) {
-         machine.setBootOrder(position, positionAndDeviceType.get(position));
-      }
-      machine.saveSettings();
-      replay(machine);
-      new ApplyBootOrderToMachine(positionAndDeviceType).apply(machine);
-      verify(machine);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyMemoryToMachineTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyMemoryToMachineTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyMemoryToMachineTest.java
deleted file mode 100644
index 6efe32b..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/ApplyMemoryToMachineTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.functions;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.IMachine;
-import org.virtualbox_4_2.VBoxException;
-
-@Test(groups = "unit", testName = "ApplyMemoryToMachineTest")
-public class ApplyMemoryToMachineTest {
-
-   @Test
-   public void testSetRAMSizeSuccessful() throws Exception {
-      long memorySize = 1024l;
-      IMachine machine = createMock(IMachine.class);
-
-      machine.setMemorySize(memorySize);
-      machine.saveSettings();
-
-      replay(machine);
-
-      new ApplyMemoryToMachine(memorySize).apply(machine);
-
-      verify(machine);
-   }
-
-   @Test(expectedExceptions = VBoxException.class)
-   public void testRethrowInvalidRamSizeError() throws Exception {
-      // Mainly here for documentation purposes
-      final String error = "VirtualBox error: Invalid RAM size: "
-            + "3567587327 MB (must be in range [4, 2097152] MB) (0x80070057)";
-
-      long memorySize = 1024l;
-      IMachine machine = createMock(IMachine.class);
-
-      VBoxException invalidRamSizeException = new VBoxException(createNiceMock(Throwable.class), error);
-      machine.setMemorySize(memorySize);
-      expectLastCall().andThrow(invalidRamSizeException);
-      machine.saveSettings();
-
-      replay(machine);
-
-      new ApplyMemoryToMachine(memorySize).apply(machine);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AttachBridgedAdapterToMachineTest.java
----------------------------------------------------------------------
diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AttachBridgedAdapterToMachineTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AttachBridgedAdapterToMachineTest.java
deleted file mode 100644
index d97774c..0000000
--- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/AttachBridgedAdapterToMachineTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.virtualbox.functions;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.virtualbox_4_2.NetworkAttachmentType.Bridged;
-
-import org.jclouds.virtualbox.domain.NetworkAdapter;
-import org.jclouds.virtualbox.domain.NetworkInterfaceCard;
-import org.testng.annotations.Test;
-import org.virtualbox_4_2.IMachine;
-import org.virtualbox_4_2.INetworkAdapter;
-import org.virtualbox_4_2.NetworkAttachmentType;
-
-@Test(groups = "unit", testName = "AttachBridgedAdapterToMachineTest")
-public class AttachBridgedAdapterToMachineTest {
-
-	private String macAddress;
-	private String hostInterface;
-
-	@Test
-	public void testApplyNetworkingToNonExistingAdapter() throws Exception {
-		Long adapterId = 0l;
-		IMachine machine = createMock(IMachine.class);
-		INetworkAdapter iNetworkAdapter = createMock(INetworkAdapter.class);
-
-		expect(machine.getNetworkAdapter(adapterId)).andReturn(iNetworkAdapter);
-		iNetworkAdapter.setAttachmentType(Bridged);
-		iNetworkAdapter.setMACAddress(macAddress);
-		iNetworkAdapter.setBridgedInterface(hostInterface);
-		iNetworkAdapter.setEnabled(true);
-		machine.saveSettings();
-
-		replay(machine, iNetworkAdapter);
-		NetworkAdapter networkAdapter = NetworkAdapter.builder()
-				.networkAttachmentType(NetworkAttachmentType.Bridged).build();
-		NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard
-				.builder().addNetworkAdapter(networkAdapter).build();
-
-		new AttachBridgedAdapterToMachine(networkInterfaceCard).apply(machine);
-
-		verify(machine, iNetworkAdapter);
-	}
-
-}