mirror of https://github.com/apache/jclouds.git
Issue 191: NetworkInterfaces not allowed on gae
This commit is contained in:
parent
06ecdb8d7a
commit
b40b6a45bc
|
@ -20,8 +20,6 @@ package org.jclouds.ohai;
|
|||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
|
@ -35,7 +33,6 @@ import org.jclouds.domain.JsonBall;
|
|||
import org.jclouds.json.Json;
|
||||
import org.jclouds.logging.Logger;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.inject.internal.Maps;
|
||||
|
||||
|
@ -53,22 +50,16 @@ public class WhiteListCompliantJVM implements Supplier<Map<String, JsonBall>> {
|
|||
@Resource
|
||||
protected Logger logger = Logger.NULL;
|
||||
|
||||
private final Function<byte[], String> byteArrayToMacAddress;
|
||||
private final NetworkInterface defaultNetworkInterface;
|
||||
private final Json json;
|
||||
private final Provider<Long> nanoTimeProvider;
|
||||
private final Provider<Properties> systemPropertiesProvider;
|
||||
|
||||
@Inject
|
||||
public WhiteListCompliantJVM(Json json, Function<byte[], String> byteArrayToMacAddress,
|
||||
@Named("nanoTime") Provider<Long> nanoTimeProvider,
|
||||
@Named("systemProperties") Provider<Properties> systemPropertiesProvider,
|
||||
NetworkInterface defaultNetworkInterface) {
|
||||
public WhiteListCompliantJVM(Json json, @Named("nanoTime") Provider<Long> nanoTimeProvider,
|
||||
@Named("systemProperties") Provider<Properties> systemPropertiesProvider) {
|
||||
this.json = checkNotNull(json, "json");
|
||||
this.byteArrayToMacAddress = checkNotNull(byteArrayToMacAddress, "byteArrayToMacAddress");
|
||||
this.nanoTimeProvider = checkNotNull(nanoTimeProvider, "nanoTimeProvider");
|
||||
this.systemPropertiesProvider = checkNotNull(systemPropertiesProvider, "systemPropertiesProvider");
|
||||
this.defaultNetworkInterface = checkNotNull(defaultNetworkInterface, "defaultNetworkInterface");
|
||||
}
|
||||
|
||||
public Map<String, JsonBall> get() {
|
||||
|
@ -83,13 +74,6 @@ public class WhiteListCompliantJVM implements Supplier<Map<String, JsonBall>> {
|
|||
returnVal.put("ohai_time", new JsonBall(now));
|
||||
returnVal.put("java", new JsonBall(json.toJson(systemProperties)));
|
||||
|
||||
try {
|
||||
String mac = byteArrayToMacAddress.apply(defaultNetworkInterface.getHardwareAddress());
|
||||
returnVal.put("macaddress", new JsonBall(mac));
|
||||
} catch (SocketException e) {
|
||||
logger.warn(e, "could not read address from %s", defaultNetworkInterface.getDisplayName());
|
||||
}
|
||||
|
||||
String platform = systemProperties.getProperty("os.name");
|
||||
platform = platform.replaceAll("[ -]", "").toLowerCase();
|
||||
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
*/
|
||||
package org.jclouds.ohai.config;
|
||||
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
|
@ -80,10 +78,4 @@ public class BaseOhaiModule extends AbstractModule {
|
|||
return ImmutableList.<Supplier<Map<String, JsonBall>>> of(injector.getInstance(WhiteListCompliantJVM.class));
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
protected NetworkInterface provideDefaultNetworkInterface() throws SocketException {
|
||||
return NetworkInterface.getNetworkInterfaces().nextElement();
|
||||
}
|
||||
|
||||
}
|
|
@ -25,7 +25,6 @@ package org.jclouds.ohai;
|
|||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.util.Properties;
|
||||
|
||||
|
@ -33,7 +32,6 @@ import org.jclouds.chef.config.ChefParserModule;
|
|||
import org.jclouds.json.Json;
|
||||
import org.jclouds.json.config.GsonModule;
|
||||
import org.jclouds.ohai.config.BaseOhaiModule;
|
||||
import org.jclouds.ohai.functions.ByteArrayToMacAddress;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.inject.Guice;
|
||||
|
@ -50,7 +48,6 @@ public class WhiteListCompliantJVMTest {
|
|||
@Test
|
||||
public void test() throws SocketException {
|
||||
|
||||
byte[] mac = NetworkInterface.getNetworkInterfaces().nextElement().getHardwareAddress();
|
||||
final Properties sysProperties = new Properties();
|
||||
|
||||
sysProperties.setProperty("os.name", "Mac OS X");
|
||||
|
@ -69,14 +66,12 @@ public class WhiteListCompliantJVMTest {
|
|||
}
|
||||
|
||||
});
|
||||
String macString = injector.getInstance(ByteArrayToMacAddress.class).apply(mac);
|
||||
Json json = injector.getInstance(Json.class);
|
||||
WhiteListCompliantJVM WhiteListCompliantJVM = injector.getInstance(WhiteListCompliantJVM.class);
|
||||
|
||||
assertEquals(
|
||||
json.toJson(WhiteListCompliantJVM.get()),
|
||||
"{\"ohai_time\":1279992919.32529,\"java\":{\"user.name\":\"user\",\"os.version\":\"10.3.0\",\"os.name\":\"Mac OS X\"},\"macaddress\":\""
|
||||
+ macString + "\",\"platform\":\"macosx\",\"platform_version\":\"10.3.0\",\"current_user\":\"user\"}");
|
||||
"{\"ohai_time\":1279992919.32529,\"java\":{\"user.name\":\"user\",\"os.version\":\"10.3.0\",\"os.name\":\"Mac OS X\"},\"platform\":\"macosx\",\"platform_version\":\"10.3.0\",\"current_user\":\"user\"}");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue