/*************************************************************************
Copyright 2010 Panlab
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*************************************************************************/
import java.util.ArrayList;
import java.util.List;
import org.panlab.software.fci.core.FCI;
import org.panlab.software.fci.core.ParameterValuePair;
import org.panlab.software.fci.core.ResourceContext;
import org.panlab.software.fci.core.ResourceGroup;
import org.panlab.software.fci.core.ResourceProvider;
import org.panlab.software.fci.core.ResourceProxy;
import org.panlab.software.fci.core.ServiceType;
import FederationOffice.fcielements.AuthorizationKey;
import FederationOffice.fcielements.FCICredentials;
public class echo {
//TODO: Please enter here identity for amazon
String _username_amazon ="ENTER USERNAME";
String _password_amazon ="ENTER PASSWORD";
//TODO: Please enter here identity for panlab
String _username_panlab ="ctranoris";
String _password_panlab ="ctranoris";
FCI fci = FCI.getInstance();
//for each imported office, we need a Resource Context
ResourceContext _context_amazon;
public ResourceContext _return_context_amazon(){
//credentials for amazon Office
FCICredentials cred = fci.createFCICredentials(_username_amazon, _password_amazon);
AuthorizationKey authKey = fci.createAuthorizationKey(cred);
ResourceContext _context_amazon = fci.createResourceContext("amazon", authKey);
return _context_amazon;
}
ResourceContext _context_panlab;
public ResourceContext _return_context_panlab(){
//credentials for amazon Office
FCICredentials cred = fci.createFCICredentials(_username_panlab, _password_panlab);
AuthorizationKey authKey = fci.createAuthorizationKey(cred);
ResourceContext _context_panlab = fci.createResourceContext("panlab", authKey);
return _context_panlab;
}
//
private ResourceProxy createResource_myCompute(){
//Create a service type by its name
ServiceType service = _context_amazon.getServiceType("Compute");
//get a resource provider
ResourceProvider provider = _context_amazon.getResourceProviderByURI("eu-west-1");
//create Parameters of a resource
List<ParameterValuePair> params = new ArrayList<ParameterValuePair>();
ParameterValuePair p;
p = new ParameterValuePair("Region", "eu-west-1");
params.add(p);
p = new ParameterValuePair("InstanceType", "m1.small");
params.add(p);
p = new ParameterValuePair("AMIid", "ami-47cefa33");
params.add(p);
p = new ParameterValuePair("PublicDnsName", "");
params.add(p);
p = new ParameterValuePair("InstanceID", "");
params.add(p);
ResourceProxy resource_myCompute = _context_amazon.createResourceProxy("myScenario", "echo_rp12_s12_or10782", provider, service, params);
return resource_myCompute;
}
private ResourceProxy createResource_myecho(){
//Create a service type by its name
ServiceType service = _context_panlab.getServiceType("echo");
//get a resource provider
ResourceProvider provider = _context_panlab.getResourceProviderByURI("site");
//create Parameters of a resource
List<ParameterValuePair> params = new ArrayList<ParameterValuePair>();
ParameterValuePair p;
p = new ParameterValuePair("output", "");
params.add(p);
p = new ParameterValuePair("input", "");
params.add(p);
p = new ParameterValuePair("sleeptime_ms", "2000");
params.add(p);
ResourceProxy resource_myecho = _context_panlab.createResourceProxy("myScenario", "echo_rp12_s12_or10782", provider, service, params);
return resource_myecho;
}
/**
* @param args
*/
public static void main(String[] args) {
new echo();
}
//for each imported office, we need credentials
public echo() {
CreateContexts();
CreateScenario();
}
public void CreateContexts(){
_context_amazon = _return_context_amazon();
_context_panlab = _return_context_panlab();
}
private void CreateScenario() {
// Group (for grouping resources)
ResourceGroup myGroup = FCI.getInstance().createResourceGroup("myGroup");
//all creates
ResourceProxy resource_myCompute = createResource_myCompute();
System.out.println("myCompute resource GUID: " + resource_myCompute.getGUID());
myGroup.addResourceProxy(resource_myCompute);
ResourceProxy resource_myecho = createResource_myecho();
System.out.println("myecho resource GUID: " + resource_myecho.getGUID());
myGroup.addResourceProxy(resource_myecho);
// System.out.println("Echo input = "+ resource_myecho.getParameterValueOfResource("input", true));
// //assignments
// // Update assignments for resources of group
String publicdnsname = resource_myCompute.getParameterValueOfResource("publicdnsname", true);
resource_myecho.updateParameterValueOfResource("input", publicdnsname);
//example reads
System.out.println("myCompute region = "+ resource_myCompute.getParameterValueOfResource("Region", true));
System.out.println("myCompute instancetype = "+ resource_myCompute.getParameterValueOfResource("InstanceType", true));
System.out.println("myCompute amiid = "+ resource_myCompute.getParameterValueOfResource("AMIid", true));
System.out.println("myCompute publicdnsname = "+ resource_myCompute.getParameterValueOfResource("PublicDnsName", true));
System.out.println("myCompute instanceid = "+ resource_myCompute.getParameterValueOfResource("InstanceID", true));
System.out.println("myecho output = "+ resource_myecho.getParameterValueOfResource("output", true));
System.out.println("myecho input = "+ resource_myecho.getParameterValueOfResource("input", true));
System.out.println("myecho sleeptime_ms = "+ resource_myecho.getParameterValueOfResource("sleeptime_ms", true));
// Terminate the group..terminate any contained resources and release scenario
myGroup.TearDownResources();
}
}