package org.opennaas.core.resources.helpers; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.opennaas.core.resources.ResourceIdentifier; 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.core.resources.descriptor.ResourceDescriptorConstants; import org.opennaas.core.resources.protocol.ProtocolSessionContext; public class ResourceHelper { static Log log = LogFactory .getLog(ResourceHelper.class); /* * Protocol Session Manager helpers */ /** * Configure protocol session context */ public static ProtocolSessionContext newSessionContextNetconf() { String uri = "mock://user:pass@host.net:2212/mocksubsystem"; ProtocolSessionContext protocolSessionContext = new ProtocolSessionContext(); protocolSessionContext.addParameter( ProtocolSessionContext.PROTOCOL_URI, uri); protocolSessionContext.addParameter(ProtocolSessionContext.PROTOCOL, "netconf"); protocolSessionContext.addParameter(ProtocolSessionContext.AUTH_TYPE, "password"); // ADDED return protocolSessionContext; } /** * It creates a new resource descriptor * * @param type * resource descriptor type * @return */ public static ResourceDescriptor newResourceDescriptor(String type) { ResourceDescriptor resourceDescriptor = new ResourceDescriptor(); Map<String, String> properties = new HashMap<String, String>(); List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>(); capabilityDescriptors.add(newChassisCapabilityDescriptor()); capabilityDescriptors.add(newQueueCapabilityDescriptor()); resourceDescriptor.setCapabilityDescriptors(capabilityDescriptors); /* FIXME PUT PROTOCOL_URI IN RESOURCE DESCRIPTOR CONSTANTS */ properties.put(ResourceDescriptorConstants.PROTOCOL_URI, "user:pass@host.net:2212"); resourceDescriptor.setProperties(properties); /* information. It is only necessary to add type */ Information information = new Information(); information.setType(type); information.setName("Junos Test"); resourceDescriptor.setInformation(information); return resourceDescriptor; } /** * Create a new resource descriptor of an arbitrary type. * * @param type * type of resource descriptor. * @return a descriptor */ public static ResourceDescriptor newResourceDescriptorProteus(String type) { ResourceDescriptor resourceDescriptor = new ResourceDescriptor(); Map<String, String> properties = new HashMap<String, String>(); List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>(); capabilityDescriptors.add(newCapabilityDescriptorProteus("connections")); capabilityDescriptors.add(newCapabilityDescriptorProteus("queue")); resourceDescriptor.setCapabilityDescriptors(capabilityDescriptors); /* FIXME PUT PROTOCOL_URI IN RESOURCE DESCRIPTOR CONSTANTS */ properties.put(ResourceDescriptorConstants.PROTOCOL_URI, "user:pass@host.net:2212"); resourceDescriptor.setProperties(properties); ResourceIdentifier identifier = new ResourceIdentifier(type); resourceDescriptor.setId(identifier.getId()); /* information. It is only necessary to add type */ Information information = new Information(); information.setType(type); information.setName("Switch Test"); resourceDescriptor.setInformation(information); return resourceDescriptor; } /** * Create a new resource descriptor of an arbitrary type. * * @param type * type of resource descriptor. * @return a descriptor */ public static ResourceDescriptor newResourceDescriptorNetwork(String name) { ResourceDescriptor resourceDescriptor = new ResourceDescriptor(); Map<String, String> properties = new HashMap<String, String>(); List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>(); capabilityDescriptors.add(newCapabilityDescriptorNetwork("layer3")); capabilityDescriptors.add(newCapabilityDescriptorNetwork("queue")); resourceDescriptor.setCapabilityDescriptors(capabilityDescriptors); /* FIXME PUT PROTOCOL_URI IN RESOURCE DESCRIPTOR CONSTANTS */ properties.put(ResourceDescriptorConstants.PROTOCOL_URI, "user:pass@host.net:2212"); resourceDescriptor.setProperties(properties); ResourceIdentifier identifier = new ResourceIdentifier("network"); resourceDescriptor.setId(identifier.getId()); /* information. It is only necessary to add type */ Information information = new Information(); information.setType("network"); information.setName(name); resourceDescriptor.setInformation(information); return resourceDescriptor; } /** * Create a Capability Descriptor of an arbitrary type but proteus/1.0. * * @param type * @return a capability */ public static CapabilityDescriptor newCapabilityDescriptorProteus(String type) { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); CapabilityProperty property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_NAME, "proteus"); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_VERSION, "1.0"); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType(type); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } public static CapabilityDescriptor newChassisCapabilityDescriptor() { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); // TODO IS IT EXIT A BETTER METHOD TO PASS THE URI String uri = "mock://user:pass@host.net:2212/mocksubsystem"; CapabilityProperty property = new CapabilityProperty( ResourceDescriptorConstants.PROTOCOL_URI, uri); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_NAME, "junos"); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_VERSION, "10.10"); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType("chassis"); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } public static CapabilityDescriptor newQueueCapabilityDescriptor() { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); // TODO IS IT EXIT A BETTER METHOD TO PASS THE URI String uri = "mock://user:pass@host.net:2212/mocksubsystem"; CapabilityProperty property = new CapabilityProperty( ResourceDescriptorConstants.PROTOCOL_URI, uri); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_NAME, "junos"); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_VERSION, "10.10"); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType("queue"); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } public static CapabilityDescriptor newCapabilityDescriptorNetwork(String type) { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); // TODO IS IT EXIT A BETTER METHOD TO PASS THE URI String uri = "mock://user:pass@host.net:2212/mocksubsystem"; CapabilityProperty property = new CapabilityProperty( ResourceDescriptorConstants.PROTOCOL_URI, uri); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_NAME, "network"); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_VERSION, "1.0"); capabilityDescriptor.getCapabilityProperties().add(property); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType(type); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } /** * It creates a new resource descriptor * * @param capabilities * @param type * @param uri * @return ResourceDescriptor */ public static ResourceDescriptor newResourceDescriptor(List<CapabilityDescriptor> capabilityDescriptors, String type, String uri, String infoName) { ResourceDescriptor resourceDescriptor = new ResourceDescriptor(); Map<String, String> properties = new HashMap<String, String>(); // Add capabilities resourceDescriptor.setCapabilityDescriptors(capabilityDescriptors); // Add properties properties.put(ResourceDescriptorConstants.PROTOCOL_URI, uri); resourceDescriptor.setProperties(properties); // Add information. It is only necessary to add type Information information = new Information(); information.setType(type); information.setName(infoName); resourceDescriptor.setInformation(information); return resourceDescriptor; } /** * It creates a new capability descriptor * * @param capabilities * @param type * @param uri * @return CapabilityDescriptor */ public static CapabilityDescriptor newCapabilityDescriptor(String actionName, String version, String type, String uri) { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); CapabilityProperty property = new CapabilityProperty( ResourceDescriptorConstants.PROTOCOL_URI, uri); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_NAME, actionName); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_VERSION, version); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType(type); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } }