package org.opennaas.core.resources.mock; 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.IModel; import org.opennaas.core.resources.IResourceBootstrapper; import org.opennaas.core.resources.IResourceIdentifier; import org.opennaas.core.resources.Resource; import org.opennaas.core.resources.ResourceException; import org.opennaas.core.resources.ResourceIdentifier; import org.opennaas.core.resources.capability.ICapability; 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.profile.IProfile; import org.opennaas.core.resources.protocol.ProtocolSessionContext; public class MockResource extends Resource { static Log log = LogFactory .getLog(MockResource.class); Map<String, ICapability> capabilities = new HashMap<String, ICapability>(); IModel model; ResourceDescriptor resourceDescriptor; List<CapabilityDescriptor> capabilityDescriptors; IResourceIdentifier resourceIdentifier; IResourceBootstrapper bootstrapper; public static CapabilityDescriptor createCapabilityDescriptor( String typeCapability) { return createCapabilityDescriptor(typeCapability, "no_idea_was_this_does_but_some_tests_dont_want_to_specify_it"); } public static CapabilityDescriptor createCapabilityDescriptor( String typeCapability, String actionCapability) { CapabilityDescriptor capabilityDescriptor = new CapabilityDescriptor(); // TODO IS IT EXIT A BETTER METHOD TO PASS THE URI String uri = System.getProperty("protocol.uri"); if (uri == null || uri.equals("")) { log.info("INFO: Getting uri param from terminal"); 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); property = new CapabilityProperty(ProtocolSessionContext.PROTOCOL, "netconf"); capabilityDescriptor.getCapabilityProperties().add(property); property = new CapabilityProperty( ResourceDescriptorConstants.ACTION_CAPABILITY, actionCapability); capabilityDescriptor.getCapabilityProperties().add(property); Information capabilityInformation = new Information(); capabilityInformation.setType(typeCapability); capabilityDescriptor.setCapabilityInformation(capabilityInformation); return capabilityDescriptor; } public MockResource() { resourceDescriptor = new ResourceDescriptor(); capabilityDescriptors = new ArrayList<CapabilityDescriptor>(); resourceDescriptor.setCapabilityDescriptors(capabilityDescriptors); resourceIdentifier = new ResourceIdentifier(); } public String getResourceId() { return resourceDescriptor.getId(); } public void setResourceId(String resourceId) { resourceDescriptor.setId(resourceId); } @Override public void addCapability(ICapability capability) { log.info("add Capability..."); capabilities.put(capability.getCapabilityInformation().getType(), capability); } @Override public ICapability removeCapability(Information info) { return capabilities.remove(info.getType()); } @Override public ICapability getCapability(Information info) { log.info("get Capability..."); return capabilities.get(info.getType()); } @Override public List<ICapability> getCapabilities() { log.info("get Capabilities..."); ArrayList<ICapability> capabs = new ArrayList<ICapability>(); for (ICapability capab : capabilities.values()) { capabs.add(capab); } return capabs; } @Override public void setCapabilities(List<? extends ICapability> capabs) { log.info("set Capabilities..."); for (ICapability capab : capabs) { addCapability(capab); } } @Override public List<ICapability> getCapabilitiesByInterface(Class<? extends ICapability> interfaze) { List<ICapability> filteredCapabilities = new ArrayList<ICapability>(); for (ICapability capability : getCapabilities()) { if (interfaze.isInstance(capability)) { filteredCapabilities.add(capability); } } return filteredCapabilities; } @Override public ICapability getCapabilityByInterface(Class<? extends ICapability> interfaze) throws ResourceException { for (ICapability capability : getCapabilities()) { if (interfaze.isInstance(capability)) { return capability; } } throw new ResourceException("Cannot find capability with interface " + interfaze); } @Override public IModel getModel() { log.info("get Model..."); return model; } @Override public void setModel(IModel model) { log.info("set Model..."); this.model = model; } @Override public void activate() throws ResourceException { log.info("Activate..."); } @Override public void deactivate() throws ResourceException { log.info("Deactivate..."); } @Override public void initialize() throws ResourceException { log.info("Initialize..."); } @Override public State getState() { log.info("get State..."); return null; } @Override public void setState(State arg0) { log.info("set State..."); } @Override public void shutdown() throws ResourceException { log.info("shutdown..."); } @Override public ResourceDescriptor getResourceDescriptor() { log.info("get Resource Descriptor..."); return resourceDescriptor; } @Override public IResourceIdentifier getResourceIdentifier() { log.info("get Resource Identifier..."); return resourceIdentifier; } @Override public void setResourceDescriptor(ResourceDescriptor resourceDescriptor) { log.info("set Resource Descriptor..."); this.resourceDescriptor = resourceDescriptor; } @Override public void setResourceIdentifier(IResourceIdentifier identifier) { log.info("set Resource Identifier..."); resourceIdentifier = identifier; } @Override public void start() throws ResourceException { log.info("Start..."); } @Override public void stop() throws ResourceException { log.info("Stop..."); } @Override public void setProfile(IProfile profile) { } @Override public IProfile getProfile() { return null; } @Override public IResourceBootstrapper getBootstrapper() { return bootstrapper; } @Override public void setBootstrapper(IResourceBootstrapper bootstrapper) { this.bootstrapper = bootstrapper; } @Override public ICapability getCapabilityByType(String type) { // TODO Auto-generated method stub return null; } }