mirror of https://github.com/apache/jclouds.git
fixed broken multi-node cloning due to missing synchronized keyword on NodeCreator. changed name of masterscache to mastersloadingcache. changed jetty port to a non common one. checked null on finally block
This commit is contained in:
parent
1036c7a0f1
commit
78d85fc960
|
@ -78,7 +78,7 @@ public class VirtualBoxPropertiesBuilder extends PropertiesBuilder {
|
|||
|
||||
properties.put(VIRTUALBOX_IMAGES_DESCRIPTOR, yamlDescriptor);
|
||||
|
||||
properties.put(VIRTUALBOX_PRECONFIGURATION_URL, "http://10.0.2.2:8080/src/test/resources/preseed.cfg");
|
||||
properties.put(VIRTUALBOX_PRECONFIGURATION_URL, "http://10.0.2.2:23232/src/test/resources/preseed.cfg");
|
||||
|
||||
return properties;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ import org.jclouds.virtualbox.functions.IMachineToHardware;
|
|||
import org.jclouds.virtualbox.functions.IMachineToImage;
|
||||
import org.jclouds.virtualbox.functions.IMachineToNodeMetadata;
|
||||
import org.jclouds.virtualbox.functions.IMachineToSshClient;
|
||||
import org.jclouds.virtualbox.functions.MastersCache;
|
||||
import org.jclouds.virtualbox.functions.MastersLoadingCache;
|
||||
import org.jclouds.virtualbox.functions.NodeCreator;
|
||||
import org.jclouds.virtualbox.functions.YamlImagesFromFileConfig;
|
||||
import org.jclouds.virtualbox.functions.admin.FileDownloadFromURI;
|
||||
|
@ -141,7 +141,7 @@ public class VirtualBoxComputeServiceContextModule extends
|
|||
}).to((Class) YamlImagesFromFileConfig.class);
|
||||
// the master machines cache
|
||||
bind(new TypeLiteral<LoadingCache<Image, Master>>() {
|
||||
}).to((Class) MastersCache.class);
|
||||
}).to((Class) MastersLoadingCache.class);
|
||||
// the master creating function
|
||||
bind(new TypeLiteral<Function<MasterSpec, IMachine>>() {
|
||||
}).to((Class) CreateAndInstallVm.class);
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
package org.jclouds.virtualbox.functions;
|
||||
|
||||
import static org.jclouds.scriptbuilder.domain.Statements.call;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static com.google.common.collect.Iterables.transform;
|
||||
|
||||
|
@ -29,9 +28,6 @@ import javax.annotation.Resource;
|
|||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.compute.domain.ExecResponse;
|
||||
import org.jclouds.compute.domain.NodeMetadata;
|
||||
import org.jclouds.compute.options.RunScriptOptions;
|
||||
import org.jclouds.compute.reference.ComputeServiceConstants;
|
||||
import org.jclouds.logging.Logger;
|
||||
import org.jclouds.ssh.SshClient;
|
||||
|
@ -51,8 +47,6 @@ import com.google.common.base.Predicate;
|
|||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
@Singleton
|
||||
|
@ -113,6 +107,7 @@ public class CreateAndInstallVm implements Function<MasterSpec, IMachine> {
|
|||
|
||||
configureOsInstallationWithKeyboardSequence(vmName,
|
||||
installationKeySequence);
|
||||
|
||||
SshClient client = sshClientForIMachine.apply(vm);
|
||||
|
||||
logger.debug(">> awaiting installation to finish node(%s)", vmName);
|
||||
|
|
|
@ -74,7 +74,7 @@ import com.google.common.collect.Maps;
|
|||
*
|
||||
*/
|
||||
@Singleton
|
||||
public class MastersCache extends AbstractLoadingCache<Image, Master> {
|
||||
public class MastersLoadingCache extends AbstractLoadingCache<Image, Master> {
|
||||
|
||||
// TODO parameterize
|
||||
public static final int MASTER_PORT = 2222;
|
||||
|
@ -94,7 +94,7 @@ public class MastersCache extends AbstractLoadingCache<Image, Master> {
|
|||
private String version;
|
||||
|
||||
@Inject
|
||||
public MastersCache(@Named(Constants.PROPERTY_BUILD_VERSION) String version,
|
||||
public MastersLoadingCache(@Named(Constants.PROPERTY_BUILD_VERSION) String version,
|
||||
@Named(VIRTUALBOX_INSTALLATION_KEY_SEQUENCE) String installationKeySequence,
|
||||
@Named(VIRTUALBOX_WORKINGDIR) String workingDir, Function<MasterSpec, IMachine> masterLoader,
|
||||
Supplier<Map<Image, YamlImage>> yamlMapper, Supplier<VirtualBoxManager> manager,
|
|
@ -95,7 +95,7 @@ public class NodeCreator implements Function<NodeSpec, NodeAndInitialCredentials
|
|||
}
|
||||
|
||||
@Override
|
||||
public NodeAndInitialCredentials<IMachine> apply(NodeSpec nodeSpec) {
|
||||
public synchronized NodeAndInitialCredentials<IMachine> apply(NodeSpec nodeSpec) {
|
||||
|
||||
checkNotNull(nodeSpec, "NodeSpec");
|
||||
|
||||
|
|
|
@ -71,7 +71,9 @@ public class TakeSnapshotIfNotAlreadyAttached implements Function<IMachine, ISna
|
|||
Throwables.propagate(e);
|
||||
assert false;
|
||||
} finally {
|
||||
session.unlockMachine();
|
||||
if (session != null) {
|
||||
session.unlockMachine();
|
||||
}
|
||||
}
|
||||
}
|
||||
return machine.getCurrentSnapshot();
|
||||
|
|
|
@ -66,7 +66,7 @@ public class VirtualBoxExperimentLiveTest {
|
|||
|
||||
@Test
|
||||
public void testLaunchCluster() throws RunNodesException {
|
||||
int numNodes = 1;
|
||||
int numNodes = 4;
|
||||
final String clusterName = "test-launch-cluster";
|
||||
Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(clusterName, numNodes,
|
||||
TemplateOptions.Builder.runScript(AdminAccess.standard()));
|
||||
|
|
Loading…
Reference in New Issue