package org.opennaas.client.rest; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.MediaType; import org.apache.log4j.Logger; import org.opennaas.core.resources.IResource; import org.opennaas.core.resources.IResourceIdentifier; import org.opennaas.core.resources.Resource; import org.opennaas.core.resources.ResourceIdentifier; import org.opennaas.core.resources.descriptor.CapabilityDescriptor; import org.opennaas.core.resources.descriptor.ResourceDescriptor; import org.opennaas.core.resources.helpers.ResourceHelper; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.GenericType; import com.sun.jersey.api.client.WebResource; public class ResourceManagerTest { private static final Logger LOGGER = Logger.getLogger(ResourceManagerTest.class); public static void main(String[] args) throws URISyntaxException { ResourceDescriptor desc1 = createResourceDescriptor("resource1"); ResourceDescriptor desc2 = createResourceDescriptor("resource2"); String resource1Id = createResource(desc1); String resource1Name = getResourceNameFromId(resource1Id); IResourceIdentifier identifier1 = new ResourceIdentifier(desc1.getInformation().getType(), resource1Id); startResource(identifier1); stopResource(identifier1); removeResource(identifier1); IResource resource1 = getResource(identifier1); listResources(); getResourceDescriptors(); getModel("084fe9f9-6e51-4e9b-9dce-bc03ceee5816"); } private static void getResource(String id) throws URISyntaxException { Resource response = null; String url = "http://localhost:8888/opennaas/resources/getResource/" + id; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.accept(MediaType.APPLICATION_XML).get(Resource.class); LOGGER.info("resource: " + response); } catch (Exception e) { LOGGER.error(e.getMessage()); } } private static void getModel(String id) throws URISyntaxException { String response = null; String url = "http://localhost:8888/opennaas/resources/getModel/" + id; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.accept(MediaType.APPLICATION_XML).get(String.class); LOGGER.info("resource: " + response); } catch (Exception e) { LOGGER.error(e.getMessage()); } } /** * */ private static void getResourceDescriptors() { List<ResourceDescriptor> response = null; String url = "http://localhost:8888/opennaas/resources/getAllDescriptors/vcpenet"; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.accept(MediaType.APPLICATION_XML).get(new GenericType<List<ResourceDescriptor>>() { }); LOGGER.info("resourceId: " + response); } catch (Exception e) { LOGGER.error(e.getMessage()); } } private static String createResource(ResourceDescriptor desc) { ClientResponse response = null; String url = "http://localhost:8888/opennaas/resources/create"; IResource resource = null; String resourceId = null; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, desc); LOGGER.info("Response code: " + response.getStatus()); resourceId = response.getEntity(String.class); LOGGER.info("resourceId: " + resourceId); } catch (Exception e) { LOGGER.error(e.getMessage()); } return resourceId; } private static String getResourceNameFromId(String resourceId) throws URISyntaxException { ClientResponse response = null; String methodPath = resourceId + "/name"; URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); String resourceName = null; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).get(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); resourceName = response.getEntity(String.class); LOGGER.info("resourceName: " + resourceName); } catch (Exception e) { LOGGER.error(e.getMessage()); } return resourceName; } private static IResource modifyResource(IResourceIdentifier identifier, ResourceDescriptor desc) throws URISyntaxException { ClientResponse response = null; String methodPath = identifier.getId() + "/modify"; URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); IResource resource = null; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, desc); LOGGER.info("Response code: " + response.getStatus()); resource = response.getEntity(IResource.class); } catch (Exception e) { LOGGER.error(e.getMessage()); } return resource; } private static void startResource(IResourceIdentifier identifier) throws URISyntaxException { ClientResponse response = null; String methodPath = identifier.getId() + "/start"; URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); } catch (Exception e) { LOGGER.error(e.getMessage()); } } private static void stopResource(IResourceIdentifier identifier) throws URISyntaxException { ClientResponse response = null; String methodPath = identifier.getId() + "/stop"; URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); } catch (Exception e) { LOGGER.error(e.getMessage()); } } private static void removeResource(IResourceIdentifier identifier) throws URISyntaxException { ClientResponse response = null; String methodPath = identifier.getId() + "/remove"; URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).delete(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); } catch (Exception e) { LOGGER.error(e.getMessage()); } } private static List<IResource> listResources() { ClientResponse response = null; String url = "http://localhost:8888/opennaas/resources/"; GenericType<List<IResource>> genericType = new GenericType<List<IResource>>() { }; List<IResource> resources = null; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).get(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); resources = response.getEntity(genericType); } catch (Exception e) { LOGGER.error(e.getMessage()); } return resources; } private static void listResourceTypes() { } private static void listResourcesByType() { } private static IResource getResource(IResourceIdentifier identifier) throws URISyntaxException { ClientResponse response = null; String methodPath = identifier.getId(); URI uri = new URI("http", null, "localhost", 8888, "/opennaas/resources/" + methodPath, null, null); String url = uri.toASCIIString(); IResource resource = null; try { Client client = Client.create(); WebResource webResource = client.resource(url); response = webResource.type(MediaType.APPLICATION_XML).get(ClientResponse.class); LOGGER.info("Response code: " + response.getStatus()); resource = response.getEntity(IResource.class); } catch (Exception e) { LOGGER.error(e.getMessage()); } return resource; } private static ResourceDescriptor createResourceDescriptor(String resourceName) { List<CapabilityDescriptor> capabilityDescriptors = new ArrayList<CapabilityDescriptor>(); capabilityDescriptors.add(ResourceHelper.newCapabilityDescriptor("junos", "10.10", "queue", "")); capabilityDescriptors.add(ResourceHelper.newCapabilityDescriptor("junos", "10.10", "chassis", "")); return ResourceHelper.newResourceDescriptor(capabilityDescriptors, "router", "", resourceName); } }