mirror of https://github.com/apache/jclouds.git
Merge branch 'master' of git://github.com/jclouds/jclouds
This commit is contained in:
commit
7d7b7df48c
|
@ -23,23 +23,27 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.jclouds.elasticstack.domain.Device;
|
import org.jclouds.elasticstack.domain.Device;
|
||||||
import org.jclouds.elasticstack.domain.NIC;
|
import org.jclouds.elasticstack.domain.NIC;
|
||||||
import org.jclouds.elasticstack.domain.Server;
|
import org.jclouds.elasticstack.domain.Server;
|
||||||
|
import org.jclouds.logging.Logger;
|
||||||
|
import org.jclouds.rest.annotations.ApiVersion;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import org.jclouds.rest.annotations.ApiVersion;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ServerToMap implements Function<Server, Map<String, String>> {
|
public class ServerToMap implements Function<Server, Map<String, String>> {
|
||||||
|
@Resource
|
||||||
|
protected Logger logger = Logger.NULL;
|
||||||
|
|
||||||
@ApiVersion
|
@ApiVersion
|
||||||
private final String apiVersion;
|
private final String apiVersion;
|
||||||
|
@ -75,7 +79,7 @@ public class ServerToMap implements Function<Server, Map<String, String>> {
|
||||||
if (nic.getVlan() != null)
|
if (nic.getVlan() != null)
|
||||||
builder.put("nic:" + nicId + ":vlan", nic.getVlan());
|
builder.put("nic:" + nicId + ":vlan", nic.getVlan());
|
||||||
if (nic.getMac() != null)
|
if (nic.getMac() != null)
|
||||||
builder.put("nic:" + nicId + ":mac", nic.getMac());
|
logger.trace("setting mac on network interfaces not supported: %s", nic);
|
||||||
nicId++;
|
nicId++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,30 @@ public class ServerToMapTest {
|
||||||
"vnc:password", "XXXXXXXX")).build());
|
"vnc:password", "XXXXXXXX")).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testWeDontSetMac() {
|
||||||
|
assertEquals(
|
||||||
|
SERVER_TO_MAP.apply(new Server.Builder()
|
||||||
|
.name("TestServer")
|
||||||
|
.cpu(2000)
|
||||||
|
.mem(1024)
|
||||||
|
.devices(
|
||||||
|
ImmutableMap.of("ide:0:0",
|
||||||
|
new IDEDevice.Builder(0, 0).uuid("08c92dd5-70a0-4f51-83d2-835919d254df").build()))
|
||||||
|
.bootDeviceIds(ImmutableSet.of("ide:0:0"))
|
||||||
|
.nics(ImmutableSet.of(new NIC.Builder().mac("foo").model(Model.E1000).
|
||||||
|
|
||||||
|
build())).vnc(new VNC(null, "XXXXXXXX", false)).build()),
|
||||||
|
ImmutableMap
|
||||||
|
.builder()
|
||||||
|
.putAll(ImmutableMap.of("name", "TestServer", "cpu", "2000", "smp", "auto", "mem", "1024"))
|
||||||
|
.putAll(
|
||||||
|
ImmutableMap.of("persistent", "false", "boot", "ide:0:0", "ide:0:0",
|
||||||
|
"08c92dd5-70a0-4f51-83d2-835919d254df"))
|
||||||
|
.putAll(
|
||||||
|
ImmutableMap.of("ide:0:0:media", "disk", "nic:0:model", "e1000", "vnc:ip", "auto",
|
||||||
|
"vnc:password", "XXXXXXXX")).build());
|
||||||
|
}
|
||||||
|
|
||||||
public void testBasicsV2() {
|
public void testBasicsV2() {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
SERVER_TO_MAP_V2.apply(new Server.Builder()
|
SERVER_TO_MAP_V2.apply(new Server.Builder()
|
||||||
|
|
|
@ -109,7 +109,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>10.0-rc3</version>
|
<version>10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<test.openhosting-east1.endpoint>https://api.east1.openhosting.com</test.openhosting-east1.endpoint>
|
<test.openhosting-east1.endpoint>https://api.east1.openhosting.com</test.openhosting-east1.endpoint>
|
||||||
<test.openhosting-east1.apiversion>1.0</test.openhosting-east1.apiversion>
|
<test.openhosting-east1.apiversion>2.0</test.openhosting-east1.apiversion>
|
||||||
<test.openhosting-east1.identity>FIXME_IDENTITY</test.openhosting-east1.identity>
|
<test.openhosting-east1.identity>FIXME_IDENTITY</test.openhosting-east1.identity>
|
||||||
<test.openhosting-east1.credential>FIXME_CREDENTIAL</test.openhosting-east1.credential>
|
<test.openhosting-east1.credential>FIXME_CREDENTIAL</test.openhosting-east1.credential>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class OpenHostingEast1PropertiesBuilder extends ElasticStackPropertiesBui
|
||||||
Properties properties = super.defaultProperties();
|
Properties properties = super.defaultProperties();
|
||||||
properties.setProperty(PROPERTY_ISO3166_CODES, "US-VA");
|
properties.setProperty(PROPERTY_ISO3166_CODES, "US-VA");
|
||||||
properties.setProperty(PROPERTY_ENDPOINT, "https://api.east1.openhosting.com");
|
properties.setProperty(PROPERTY_ENDPOINT, "https://api.east1.openhosting.com");
|
||||||
properties.setProperty(PROPERTY_API_VERSION, "1.0");
|
properties.setProperty(PROPERTY_API_VERSION, "2.0");
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,9 @@ public class Utils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern pattern = Pattern.compile("\\{(.+?)\\}");
|
/** matches any expression inside curly braces (where the expression does not including an open curly brace) */
|
||||||
|
private static final Pattern pattern = Pattern.compile("\\{([^\\{]+?)\\}");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* replaces tokens that are expressed as <code>{token}</code>
|
* replaces tokens that are expressed as <code>{token}</code>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static org.testng.Assert.assertEquals;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|
||||||
import org.jclouds.scriptbuilder.domain.OsFamily;
|
import org.jclouds.scriptbuilder.domain.OsFamily;
|
||||||
|
import org.jclouds.scriptbuilder.domain.ShellToken;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -80,4 +81,9 @@ public class UtilsTest {
|
||||||
"set HOST=\r\nset PORT=\r\n");
|
"set HOST=\r\nset PORT=\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSingleCurlyBraceDoesntBreakLfTokenReplacement() {
|
||||||
|
assertEquals(Utils.replaceTokens("{{lf}", ShellToken.tokenValueMap(OsFamily.UNIX)),
|
||||||
|
"{\n");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue