You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.0 KiB
Java
142 lines
5.0 KiB
Java
package org.gcube.common.resources.gcore;
|
|
|
|
import static junit.framework.Assert.*;
|
|
import static org.gcube.common.resources.gcore.Resources.*;
|
|
import static org.gcube.common.resources.gcore.TestUtils.*;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.Calendar;
|
|
|
|
import org.gcube.common.resources.gcore.HostingNode;
|
|
import org.junit.Test;
|
|
|
|
/**
|
|
*
|
|
* @author Fabio Simeoni
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class HostingNodeTest {
|
|
|
|
@Test
|
|
public void bindNode() throws Exception {
|
|
|
|
HostingNode node = unmarshal(HostingNode.class, "node.xml");
|
|
|
|
print(node);
|
|
|
|
validate(node);
|
|
|
|
HostingNode clone = unmarshal(HostingNode.class, "node.xml");
|
|
|
|
assertEquals(node,clone);
|
|
|
|
}
|
|
|
|
//helper
|
|
private HostingNode minimalNode() {
|
|
|
|
HostingNode node = new HostingNode();
|
|
|
|
node.scopes().add("/some/scope");
|
|
|
|
node.newProfile().infrastructure("infrastructure");
|
|
|
|
node.profile().newDescription().name("name").uptime("uptime").lastUpdate(Calendar.getInstance());
|
|
node.profile().description().newArchitecture().platformType("type").smpSize(30).smtSize(20);
|
|
node.profile().description().newOperatingSystem().name("name").version("version").release("release");
|
|
node.profile().description().environmentVariables().add().keyAndValue("key", "value");
|
|
node.profile().description().newMainMemory().ramAvailable(100).ramSize(200).virtualAvailable(300).virtualSize(350);
|
|
|
|
node.profile().newSite().location("location").country("it").
|
|
domain("domain").latitude("latitude").longitude("longitude");
|
|
|
|
return node;
|
|
}
|
|
|
|
@Test
|
|
public void buildMininimalNode() throws Exception {
|
|
|
|
HostingNode node = minimalNode();
|
|
|
|
|
|
print(node);
|
|
|
|
validate(node);
|
|
}
|
|
|
|
@Test
|
|
public void buildMaximalNode() throws Exception {
|
|
|
|
HostingNode node = minimalNode();
|
|
|
|
node.profile().description().activationTime(Calendar.getInstance());
|
|
|
|
node.profile().description().platforms().add().name("name").version((short)2);
|
|
|
|
node.profile().description().newSecurity().authority("auth").
|
|
distinguishedName("dn").
|
|
expirationDate(Calendar.getInstance());
|
|
|
|
|
|
node.profile().description().processors().add().
|
|
family("family").
|
|
model("model").
|
|
vendor("vendor").modelName("name").
|
|
cacheL1(10).cacheL1D(20).cacheL1I(30).cacheL2(40).
|
|
bogomips(BigDecimal.valueOf(40000)).
|
|
clockSpeedMhz(BigDecimal.valueOf(3000));
|
|
|
|
|
|
node.profile().description().processors().add().
|
|
family("family2").
|
|
model("model2").
|
|
vendor("vendor2").modelName("name2").
|
|
cacheL1(10).cacheL1D(20).cacheL1I(30).cacheL2(40).
|
|
bogomips(BigDecimal.valueOf(40000)).
|
|
clockSpeedMhz(BigDecimal.valueOf(3000));
|
|
|
|
node.profile().description().networkAdapters().add().
|
|
inboundIP("inbound").
|
|
outboundIP("outbound").
|
|
ipAddress("address").mtu(10).name("name");
|
|
|
|
node.profile().description().networkAdapters().add().
|
|
inboundIP("inbound2").
|
|
outboundIP("outbound2").
|
|
ipAddress("address2").mtu(10).name("name2");
|
|
|
|
|
|
node.profile().description().newBenchmark().sf(10).si(20);
|
|
|
|
node.profile().description().storageDevices().add().name("name").size(10).transferRate(10).type("type");
|
|
node.profile().description().storageDevices().add().name("name2").size(10).transferRate(10).type("type2");
|
|
|
|
node.profile().description().storagePartitions().add().name("name").readRate(10).writeRate(20).size("size");
|
|
node.profile().description().storagePartitions().add().name("name2").readRate(10).writeRate(20).size("size2");
|
|
|
|
node.profile().description().localFileSystems().add().name("name").size(10).readOnly(true).root("root").type("type");
|
|
node.profile().description().localFileSystems().add().name("name2").size(10).readOnly(true).root("root2").type("type2");
|
|
|
|
node.profile().description().remoteFileSystems().add().name("name").size(10).readOnly(true).root("root").type("type");
|
|
node.profile().description().remoteFileSystems().add().name("name2").size(10).readOnly(true).root("root2").type("type2");
|
|
|
|
node.profile().description().devicePartitions().add().device("name").name("name");
|
|
node.profile().description().devicePartitions().add().device("name2").name("name2");
|
|
|
|
node.profile().description().fileSystemPartitions().add().fsName("name").storageName("name");
|
|
node.profile().description().fileSystemPartitions().add().fsName("name2").storageName("name2");
|
|
|
|
node.profile().description().newLoad().lastMin(4.5).last15Mins(20.6).last5Mins(5.6);
|
|
node.profile().description().newHistoricalLoad().lastDay(67).lastHour(15.3).lastWeek(150.6);
|
|
|
|
node.profile().description().localAvailableSpace(new Long(100));
|
|
|
|
node.profile().packages().add().name("name").serviceVersion("1.0.0").packageVersion("version").serviceClass("class").serviceName("name");
|
|
node.profile().packages().add().name("name").serviceVersion("2.0.1").packageVersion("version2").serviceClass("class2").serviceName("name2");
|
|
|
|
print(node);
|
|
|
|
validate(node);
|
|
}
|
|
}
|