import java.util.ArrayList;
import java.util.List;
import gr.upatras.ece.nam.fci.core.FCI;
import gr.upatras.ece.nam.fci.core.ParameterValuePair;
import gr.upatras.ece.nam.fci.core.ResourceContext;
import gr.upatras.ece.nam.fci.core.ResourceGroup;
import gr.upatras.ece.nam.fci.core.ResourceProvider;
import gr.upatras.ece.nam.fci.core.ResourceProxy;
import gr.upatras.ece.nam.fci.core.ServiceType;
import brokermodel.fcielements.AuthorizationKey;
import brokermodel.fcielements.FCICredentials;
public class SynchromediaPanlabWorld {
FCICredentials creds;
AuthorizationKey key;
/**
* @param args
*/
public static void main(String[] args) {
new SynchromediaPanlabWorld();
}
public SynchromediaPanlabWorld() {
CreateScenario();
}
private void CreateScenario() {
//credentials for Panlab Office
FCI fci = FCI.getInstance();
FCICredentials cred = fci.createFCICredentials("synchromedia", "pii-2010");
AuthorizationKey authKey = fci.createAuthorizationKey(cred);
ResourceContext panlab = fci.createResourceContext("panlab", authKey);
//browse all available services
for (ServiceType elem : panlab.getAvailableServices()) {
System.out.println("Service: " + elem.getName() + "("
+ elem.getDescription() + ")");
}
//Create a service type by its name
ServiceType service = panlab.getServiceType("gsnvirtualmachine");
//check all who offer that service
for (ResourceProvider elem : panlab.getResourceProvidersForServiceType(service)) {
System.out.println("Service Provider: " + elem.getName() + "("+ elem.getDescription() + ")");
}
// ResourceProvider provider = panlab.getFirstResourceProviderOfService(service);
// System.out.println("A first available Provider: " + provider.getName());
//get a resource provider by its PTM alias
ResourceProvider provider = panlab.getResourceProviderBySiteURI("synchromedia");
//Group (for grouping resources)
ResourceGroup myGroup = fci.createResourceGroup("GSNScenarioExample");
//create Parameters of a resource
List<ParameterValuePair> params = new ArrayList<ParameterValuePair>();
ParameterValuePair p = new ParameterValuePair("Host_name", "ETS-Host1", "myinp");
params.add(p);
p = new ParameterValuePair("VM_name", "MyVM", "myinp");
params.add(p);
p = new ParameterValuePair("VM_memory", "1024", "myinp");
params.add(p);
p = new ParameterValuePair("VM_number_of_CPU", "1", "myinp");
params.add(p);
p = new ParameterValuePair("VM_template", "server964", "myinp");
params.add(p);
// p = new ParameterValuePair("sleeptime_ms", "2000");
// params.add(p);
ResourceProxy resourceEcho = panlab.createResourceProxy("myTempVCT", "mygsnvirtulamachineResource", provider, service, params);
System.out.println("Echo resource GUID: " + resourceEcho.getGUID());
myGroup.addResourceProxy(resourceEcho);
// Update all resources of group
System.out.println("Echo output = "+ resourceEcho.getParameterValueOfResource("output", true));
// Terminate the group..terminate any contained resources
myGroup.TearDownResources();
}
}