package org.opennaas.extensions.network.helpers;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.opennaas.core.resources.descriptor.CapabilityDescriptor;
import org.opennaas.core.resources.descriptor.CapabilityProperty;
import org.opennaas.core.resources.descriptor.Information;
import org.opennaas.core.resources.descriptor.ResourceDescriptor;
import org.opennaas.extensions.network.mock.MockNetworkDescriptor;
public class NetworkResourceDescriptorSupport {
/**
* Create a resource with properties
*
* @return
*/
public static ResourceDescriptor createNetworkDescriptor() {
ResourceDescriptor config = new ResourceDescriptor();
config.setId(new String("1"));
/* resource description */
Information info = new Information();
info.setDescription("network description");
info.setType("network");
info.setName("networklayer1.0");
info.setVersion("1.0.0");
config.setInformation(info);
/* capability description */
CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor();
List<CapabilityProperty> properties = new ArrayList<CapabilityProperty>();
properties.add(new CapabilityProperty("name", "value"));
capabilityDescriptor.setCapabilityProperties(properties);
List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>();
capabilityDescriptors.add(capabilityDescriptor);
config.setCapabilityDescriptors(capabilityDescriptors);
/* read from a file descriptor */
config.setFileTopology("network/network_example1.xml");
// Testing if it loads a network topology
config.setNetworkTopology(MockNetworkDescriptor.newSimpleNDLNetworkDescriptor());
Map<String, String> resourceReferences = new HashMap<String, String>();
resourceReferences.put("router:test1", "router/XXXYYYZZZtest1-ID");
resourceReferences.put("router:test2", "router/XXXYYYZZZtest2-ID");
resourceReferences.put("router:test3", "router/XXXYYYZZZtest3-ID");
config.setResourceReferences(resourceReferences);
return config;
}
/**
* Create a resource with properties
*
* @return
*/
public static ResourceDescriptor createNetworkDescriptorWithNetworkDomains() {
ResourceDescriptor config = new ResourceDescriptor();
config.setId(new String("1"));
/* resource description */
Information info = new Information();
info.setDescription("network description");
info.setType("network");
info.setName("networklayer1.0");
info.setVersion("1.0.0");
config.setInformation(info);
/* capability description */
CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor();
List<CapabilityProperty> properties = new ArrayList<CapabilityProperty>();
properties.add(new CapabilityProperty("name", "value"));
capabilityDescriptor.setCapabilityProperties(properties);
List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>();
capabilityDescriptors.add(capabilityDescriptor);
config.setCapabilityDescriptors(capabilityDescriptors);
/* read from a file descriptor */
config.setFileTopology("network/network_diffs_layer.xml");
// Testing if it loads a network topology
config.setNetworkTopology(MockNetworkDescriptor.newNetworkDescriptorWithNetworkDomain());
return config;
}
/**
* Create network descriptor
*
* @return
*/
public static ResourceDescriptor createVirtualResourceDescriptor() {
ResourceDescriptor config = new ResourceDescriptor();
config.setId(new String("1"));
Information info = new Information();
info.setDescription("virtual resource description");
info.setType("router");
info.setName("logical1");
info.setVersion("1.0.0");
config.setInformation(info);
CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor();
List<CapabilityProperty> properties = new ArrayList<CapabilityProperty>();
properties.add(new CapabilityProperty("name", "value"));
capabilityDescriptor.setCapabilityProperties(properties);
List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>();
capabilityDescriptors.add(capabilityDescriptor);
config.setCapabilityDescriptors(capabilityDescriptors);
Map<String, String> props = new HashMap<String, String>();
props.put("virtual", "true");
config.setProperties(props);
return config;
}
}