You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2012/11/06 21:53:44 UTC
svn commit: r1406321 [1/2] -
/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/
Author: chathuri
Date: Tue Nov 6 20:53:43 2012
New Revision: 1406321
URL: http://svn.apache.org/viewvc?rev=1406321&view=rev
Log:
refactoring RegistryResource class
Added:
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ConfigurationRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/DescriptorRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ExperimentRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProjectRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/PublishWorkflowRegistryResource.java
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/UserWorkflowRegistryResource.java
Modified:
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java
Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ConfigurationRegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ConfigurationRegistryResource.java?rev=1406321&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ConfigurationRegistryResource.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ConfigurationRegistryResource.java Tue Nov 6 20:53:43 2012
@@ -0,0 +1,496 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+package org.apache.airavata.services.registry.rest.resources;
+
+import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.services.registry.rest.resourcemappings.ConfigurationList;
+import org.apache.airavata.services.registry.rest.resourcemappings.URLList;
+import org.apache.airavata.services.registry.rest.utils.RestServicesConstants;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Path("/registry/api/congfigregistry")
+public class ConfigurationRegistryResource {
+ private AiravataRegistry2 airavataRegistry;
+
+ @Context
+ ServletContext context;
+
+ /**
+ * ---------------------------------Configuration Registry----------------------------------*
+ */
+
+ @Path("get/configuration")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response getConfiguration(@QueryParam("key") String key) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ Object configuration = airavataRegistry.getConfiguration(key);
+ if (configuration != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(configuration);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+
+ }
+
+
+ @GET
+ @Path("get/configurationlist")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getConfigurationList(@QueryParam("key") String key) {
+ try {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ List<Object> configurationList = airavataRegistry.getConfigurationList(key);
+ ConfigurationList list = new ConfigurationList();
+ Object[] configValList = new Object[configurationList.size()];
+ for (int i = 0; i < configurationList.size(); i++) {
+ configValList[i] = configurationList.get(i);
+ }
+ list.setConfigValList(configValList);
+ if (configurationList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(list);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @POST
+ @Path("save/configuration")
+ @Produces(MediaType.TEXT_PLAIN)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response setConfiguration(@FormParam("key") String key,
+ @FormParam("value") String value,
+ @FormParam("date") String date) {
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ airavataRegistry.setConfiguration(key, value, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("update/configuration")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addConfiguration(@FormParam("key") String key,
+ @FormParam("value") String value,
+ @FormParam("date") String date) {
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ airavataRegistry.addConfiguration(key, value, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/allconfiguration")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeAllConfiguration(@QueryParam("key") String key) {
+ try {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ airavataRegistry.removeAllConfiguration(key);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/configuration")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeConfiguration(@QueryParam("key") String key, @QueryParam("value") String value) {
+ try {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ airavataRegistry.removeConfiguration(key, value);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/gfac/urilist")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getGFacURIs() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<URI> uris = airavataRegistry.getGFacURIs();
+ URLList list = new URLList();
+ String[] urs = new String[uris.size()];
+ for (int i = 0; i < uris.size(); i++) {
+ urs[i] = uris.get(i).toString();
+ }
+ list.setUris(urs);
+ if (urs.length != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(list);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @GET
+ @Path("get/workflowinterpreter/urilist")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getWorkflowInterpreterURIs() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<URI> uris = airavataRegistry.getWorkflowInterpreterURIs();
+ URLList list = new URLList();
+ String[] urs = new String[uris.size()];
+ for (int i = 0; i < uris.size(); i++) {
+ urs[i] = uris.get(i).toString();
+ }
+ list.setUris(urs);
+ if (urs.length != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(list);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/eventingservice/uri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response getEventingServiceURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI eventingServiceURI = airavataRegistry.getEventingServiceURI();
+ if (eventingServiceURI != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(eventingServiceURI.toString());
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/messagebox/uri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response getMessageBoxURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI eventingServiceURI = airavataRegistry.getMessageBoxURI();
+ if (eventingServiceURI != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(eventingServiceURI.toString());
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/gfacuri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addGFacURI(@FormParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI gfacURI = new URI(uri);
+ airavataRegistry.addGFacURI(gfacURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/workflowinterpreteruri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addWorkflowInterpreterURI(@FormParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI interpreterURI = new URI(uri);
+ airavataRegistry.addWorkflowInterpreterURI(interpreterURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/eventinguri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response setEventingURI(@FormParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI eventingURI = new URI(uri);
+ airavataRegistry.setEventingURI(eventingURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/msgboxuri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response setMessageBoxURI(@FormParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI msgBoxURI = new URI(uri);
+ airavataRegistry.setMessageBoxURI(msgBoxURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/gfacuri/date")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addGFacURIByDate(@FormParam("uri") String uri, @FormParam("date") String date) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ URI gfacURI = new URI(uri);
+ airavataRegistry.addGFacURI(gfacURI, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/workflowinterpreteruri/date")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addWorkflowInterpreterURI(@FormParam("uri") String uri, @FormParam("date") String date) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ URI interpreterURI = new URI(uri);
+ airavataRegistry.addWorkflowInterpreterURI(interpreterURI, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/eventinguri/date")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response setEventingURIByDate(@FormParam("uri") String uri, @FormParam("date") String date) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ URI eventingURI = new URI(uri);
+ airavataRegistry.setEventingURI(eventingURI, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/msgboxuri/date")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response setMessageBoxURIByDate(@FormParam("uri") String uri, @FormParam("date") String date) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(date);
+ URI msgBoxURI = new URI(uri);
+ airavataRegistry.setMessageBoxURI(msgBoxURI, formattedDate);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/gfacuri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeGFacURI(@QueryParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI gfacURI = new URI(uri);
+ airavataRegistry.removeGFacURI(gfacURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/allgfacuris")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeAllGFacURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeAllGFacURI();
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/workflowinterpreteruri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeWorkflowInterpreterURI(@QueryParam("uri") String uri) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ URI intURI = new URI(uri);
+ airavataRegistry.removeWorkflowInterpreterURI(intURI);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/allworkflowinterpreteruris")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeAllWorkflowInterpreterURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeAllWorkflowInterpreterURI();
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/eventinguri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response unsetEventingURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.unsetEventingURI();
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/msgboxuri")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response unsetMessageBoxURI() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.unsetMessageBoxURI();
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (Exception e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+}
Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/DescriptorRegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/DescriptorRegistryResource.java?rev=1406321&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/DescriptorRegistryResource.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/DescriptorRegistryResource.java Tue Nov 6 20:53:43 2012
@@ -0,0 +1,594 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+package org.apache.airavata.services.registry.rest.resources;
+
+import org.apache.airavata.commons.gfac.type.ApplicationDeploymentDescription;
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.commons.gfac.type.ServiceDescription;
+import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.registry.api.exception.gateway.DescriptorAlreadyExistsException;
+import org.apache.airavata.registry.api.exception.gateway.DescriptorDoesNotExistsException;
+import org.apache.airavata.registry.api.exception.gateway.MalformedDescriptorException;
+import org.apache.airavata.services.registry.rest.resourcemappings.*;
+import org.apache.airavata.services.registry.rest.utils.DescriptorUtil;
+import org.apache.airavata.services.registry.rest.utils.RestServicesConstants;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+import java.util.Map;
+
+@Path("/registry/api/descriptors")
+public class DescriptorRegistryResource {
+ private AiravataRegistry2 airavataRegistry;
+
+ @Context
+ ServletContext context;
+
+ /**
+ * ---------------------------------Descriptor Registry----------------------------------*
+ */
+
+
+ @GET
+ @Path("hostdescriptor/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isHostDescriptorExists(@QueryParam("descriptorName") String descriptorName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ boolean state;
+ try {
+ state = airavataRegistry.isHostDescriptorExists(descriptorName);
+ if (state) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity("True");
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("hostdescriptor/save")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response addJSONHostDescriptor(HostDescriptor host) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ HostDescription hostDescription = DescriptorUtil.createHostDescription(host);
+ airavataRegistry.addHostDescriptor(hostDescription);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("hostdescriptor/update")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response updateHostDescriptor(HostDescriptor host) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ HostDescription hostDescription = DescriptorUtil.createHostDescription(host);
+ airavataRegistry.updateHostDescriptor(hostDescription);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("host/description")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getHostDescriptor(@QueryParam("hostName") String hostName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ HostDescription hostDescription = airavataRegistry.getHostDescriptor(hostName);
+ HostDescriptor hostDescriptor = DescriptorUtil.createHostDescriptor(hostDescription);
+ if (hostDescription != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(hostDescriptor);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+
+ }
+
+ @DELETE
+ @Path("hostdescriptor/delete")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeHostDescriptor(@QueryParam("hostName") String hostName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeHostDescriptor(hostName);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/hostdescriptors")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getHostDescriptors() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<HostDescription> hostDescriptionList = airavataRegistry.getHostDescriptors();
+ HostDescriptionList list = new HostDescriptionList();
+ HostDescriptor[] hostDescriptions = new HostDescriptor[hostDescriptionList.size()];
+ for (int i = 0; i < hostDescriptionList.size(); i++) {
+ HostDescriptor hostDescriptor = DescriptorUtil.createHostDescriptor(hostDescriptionList.get(i));
+ hostDescriptions[i] = hostDescriptor;
+ }
+ list.setHostDescriptions(hostDescriptions);
+ if (hostDescriptionList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(list);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("servicedescriptor/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isServiceDescriptorExists(@QueryParam("descriptorName") String descriptorName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ boolean state;
+ try {
+ state = airavataRegistry.isServiceDescriptorExists(descriptorName);
+ if (state) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity("True");
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("servicedescriptor/save")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response addJSONServiceDescriptor(ServiceDescriptor service) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ ServiceDescription serviceDescription = DescriptorUtil.createServiceDescription(service);
+ airavataRegistry.addServiceDescriptor(serviceDescription);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("servicedescriptor/update")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response updateServiceDescriptor(ServiceDescriptor service) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ ServiceDescription serviceDescription = DescriptorUtil.createServiceDescription(service);
+ airavataRegistry.updateServiceDescriptor(serviceDescription);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("servicedescriptor/description")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getServiceDescriptor(@QueryParam("serviceName") String serviceName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ ServiceDescription serviceDescription = airavataRegistry.getServiceDescriptor(serviceName);
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescription);
+ if (serviceDescription != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(serviceDescriptor);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("servicedescriptor/delete")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeServiceDescriptor(@QueryParam("serviceName") String serviceName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeServiceDescriptor(serviceName);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/servicedescriptors")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getServiceDescriptors() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<ServiceDescription> serviceDescriptors = airavataRegistry.getServiceDescriptors();
+ ServiceDescriptionList list = new ServiceDescriptionList();
+ ServiceDescriptor[] serviceDescriptions = new ServiceDescriptor[serviceDescriptors.size()];
+ for (int i = 0; i < serviceDescriptors.size(); i++) {
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescriptors.get(i));
+ serviceDescriptions[i] = serviceDescriptor;
+ }
+ list.setServiceDescriptions(serviceDescriptions);
+ if (serviceDescriptors.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(list);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @GET
+ @Path("applicationdescriptor/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isApplicationDescriptorExists(@QueryParam("serviceName") String serviceName,
+ @QueryParam("hostName") String hostName,
+ @QueryParam("descriptorName") String descriptorName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ boolean state;
+ try {
+ state = airavataRegistry.isApplicationDescriptorExists(serviceName, hostName, descriptorName);
+ if (state) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity("True");
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @POST
+ @Path("applicationdescriptor/build/save")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ public Response addJSONApplicationDescriptor(ApplicationDescriptor applicationDescriptor) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ String hostdescName = applicationDescriptor.getHostdescName();
+ if (!airavataRegistry.isHostDescriptorExists(hostdescName)) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ ApplicationDeploymentDescription applicationDeploymentDescription = DescriptorUtil.createApplicationDescription(applicationDescriptor);
+ ServiceDescriptor serviceDescriptor = applicationDescriptor.getServiceDescriptor();
+ String serviceName;
+ if (serviceDescriptor != null) {
+ if (serviceDescriptor.getServiceName() == null) {
+ serviceName = applicationDescriptor.getName();
+ serviceDescriptor.setServiceName(serviceName);
+ } else {
+ serviceName = serviceDescriptor.getServiceName();
+ }
+ ServiceDescription serviceDescription = DescriptorUtil.createServiceDescription(serviceDescriptor);
+ if (!airavataRegistry.isServiceDescriptorExists(serviceName)) {
+ airavataRegistry.addServiceDescriptor(serviceDescription);
+ }
+ } else {
+ serviceName = applicationDescriptor.getName();
+ }
+ airavataRegistry.addApplicationDescriptor(serviceName, hostdescName, applicationDeploymentDescription);
+
+
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @POST
+ @Path("applicationdescriptor/update")
+ @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ public Response udpateApplicationDescriptorByDescriptors(ApplicationDescriptor applicationDescriptor) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ String hostdescName = applicationDescriptor.getHostdescName();
+ if (!airavataRegistry.isHostDescriptorExists(hostdescName)) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ ApplicationDeploymentDescription applicationDeploymentDescription = DescriptorUtil.createApplicationDescription(applicationDescriptor);
+ ServiceDescriptor serviceDescriptor = applicationDescriptor.getServiceDescriptor();
+ String serviceName;
+ if (serviceDescriptor != null) {
+ if (serviceDescriptor.getServiceName() == null) {
+ serviceName = applicationDescriptor.getName();
+ serviceDescriptor.setServiceName(serviceName);
+ } else {
+ serviceName = serviceDescriptor.getServiceName();
+ }
+ ServiceDescription serviceDescription = DescriptorUtil.createServiceDescription(serviceDescriptor);
+ if (airavataRegistry.isServiceDescriptorExists(serviceName)) {
+ airavataRegistry.updateServiceDescriptor(serviceDescription);
+ } else {
+ airavataRegistry.addServiceDescriptor(serviceDescription);
+ }
+
+ } else {
+ serviceName = applicationDescriptor.getName();
+ }
+ airavataRegistry.updateApplicationDescriptor(serviceName, hostdescName, applicationDeploymentDescription);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+
+ @GET
+ @Path("applicationdescriptor/description")
+ @Produces("text/xml")
+ public Response getApplicationDescriptor(@QueryParam("serviceName") String serviceName,
+ @QueryParam("hostName") String hostName,
+ @QueryParam("applicationName") String applicationName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ ApplicationDeploymentDescription applicationDeploymentDescription = airavataRegistry.getApplicationDescriptor(serviceName, hostName, applicationName);
+ ApplicationDescriptor applicationDescriptor = DescriptorUtil.createApplicationDescriptor(applicationDeploymentDescription);
+ applicationDescriptor.setHostdescName(hostName);
+ ServiceDescription serviceDescription = airavataRegistry.getServiceDescriptor(serviceName);
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescription);
+ applicationDescriptor.setServiceDescriptor(serviceDescriptor);
+
+ if (applicationDeploymentDescription != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(applicationDescriptor);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("applicationdescriptors/alldescriptors/host/service")
+ @Produces("text/xml")
+ public Response getApplicationDescriptors(@QueryParam("serviceName") String serviceName,
+ @QueryParam("hostName") String hostName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ ApplicationDeploymentDescription applicationDeploymentDescription = airavataRegistry.getApplicationDescriptors(serviceName, hostName);
+ ApplicationDescriptor applicationDescriptor = DescriptorUtil.createApplicationDescriptor(applicationDeploymentDescription);
+ applicationDescriptor.setHostdescName(hostName);
+ ServiceDescription serviceDescription = airavataRegistry.getServiceDescriptor(serviceName);
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescription);
+ applicationDescriptor.setServiceDescriptor(serviceDescriptor);
+
+ if (applicationDeploymentDescription != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(applicationDescriptor);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("applicationdescriptor/alldescriptors/service")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getApplicationDescriptors(@QueryParam("serviceName") String serviceName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ Map<String, ApplicationDeploymentDescription> applicationDeploymentDescriptionMap = airavataRegistry.getApplicationDescriptors(serviceName);
+ ApplicationDescriptorList applicationDescriptorList = new ApplicationDescriptorList();
+ ApplicationDescriptor[] applicationDescriptors = new ApplicationDescriptor[applicationDeploymentDescriptionMap.size()];
+ int i = 0;
+ for (String hostName : applicationDeploymentDescriptionMap.keySet()) {
+ ApplicationDeploymentDescription applicationDeploymentDescription = applicationDeploymentDescriptionMap.get(hostName);
+ ApplicationDescriptor applicationDescriptor = DescriptorUtil.createApplicationDescriptor(applicationDeploymentDescription);
+ applicationDescriptor.setHostdescName(hostName);
+
+ ServiceDescription serviceDescription = airavataRegistry.getServiceDescriptor(serviceName);
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescription);
+ applicationDescriptor.setServiceDescriptor(serviceDescriptor);
+
+ applicationDescriptors[i] = applicationDescriptor;
+ i++;
+ }
+ applicationDescriptorList.setApplicationDescriptors(applicationDescriptors);
+ if (applicationDeploymentDescriptionMap.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(applicationDescriptorList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (MalformedDescriptorException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("applicationdescriptor/alldescriptors")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getApplicationDescriptors() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ Map<String[], ApplicationDeploymentDescription> applicationDeploymentDescriptionMap = airavataRegistry.getApplicationDescriptors();
+ ApplicationDescriptorList applicationDescriptorList = new ApplicationDescriptorList();
+ ApplicationDescriptor[] applicationDescriptors = new ApplicationDescriptor[applicationDeploymentDescriptionMap.size()];
+ int i = 0;
+ for (String[] descriptors : applicationDeploymentDescriptionMap.keySet()) {
+ ApplicationDeploymentDescription applicationDeploymentDescription = applicationDeploymentDescriptionMap.get(descriptors);
+ ApplicationDescriptor applicationDescriptor = DescriptorUtil.createApplicationDescriptor(applicationDeploymentDescription);
+ applicationDescriptor.setHostdescName(descriptors[1]);
+ ServiceDescription serviceDescription = airavataRegistry.getServiceDescriptor(descriptors[0]);
+ if (serviceDescription == null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ ServiceDescriptor serviceDescriptor = DescriptorUtil.createServiceDescriptor(serviceDescription);
+ applicationDescriptor.setServiceDescriptor(serviceDescriptor);
+ applicationDescriptors[i] = applicationDescriptor;
+ i++;
+ }
+ applicationDescriptorList.setApplicationDescriptors(applicationDescriptors);
+ if (applicationDeploymentDescriptionMap.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(applicationDescriptorList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (MalformedDescriptorException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("applicationdescriptor/delete")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeApplicationDescriptor(@QueryParam("serviceName") String serviceName,
+ @QueryParam("hostName") String hostName,
+ @QueryParam("appName") String appName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeApplicationDescriptor(serviceName, hostName, appName);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (DescriptorDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+}
Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ExperimentRegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ExperimentRegistryResource.java?rev=1406321&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ExperimentRegistryResource.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ExperimentRegistryResource.java Tue Nov 6 20:53:43 2012
@@ -0,0 +1,271 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+package org.apache.airavata.services.registry.rest.resources;
+
+import org.apache.airavata.registry.api.AiravataExperiment;
+import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.registry.api.AiravataUser;
+import org.apache.airavata.registry.api.Gateway;
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.registry.api.exception.worker.ExperimentDoesNotExistsException;
+import org.apache.airavata.registry.api.exception.worker.WorkspaceProjectDoesNotExistsException;
+import org.apache.airavata.services.registry.rest.resourcemappings.ExperimentList;
+import org.apache.airavata.services.registry.rest.utils.RestServicesConstants;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Path("/registry/api/experimentregistry")
+public class ExperimentRegistryResource {
+ private AiravataRegistry2 airavataRegistry;
+
+ @Context
+ ServletContext context;
+
+ /**
+ * ---------------------------------Experiments----------------------------------*
+ */
+
+ @DELETE
+ @Path("delete/experiment")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response removeExperiment(@QueryParam("experimentId") String experimentId) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.removeExperiment(experimentId);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (ExperimentDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/experiments/all")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getExperiments() throws RegistryException {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<AiravataExperiment> airavataExperimentList = airavataRegistry.getExperiments();
+ ExperimentList experimentList = new ExperimentList();
+ AiravataExperiment[] experiments = new AiravataExperiment[airavataExperimentList.size()];
+ for (int i = 0; i < airavataExperimentList.size(); i++) {
+ experiments[i] = airavataExperimentList.get(i);
+ }
+ experimentList.setExperiments(experiments);
+ if (airavataExperimentList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(experimentList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/experiments/project")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getExperimentsByProject(@QueryParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<AiravataExperiment> airavataExperimentList = airavataRegistry.getExperiments(projectName);
+ ExperimentList experimentList = new ExperimentList();
+ AiravataExperiment[] experiments = new AiravataExperiment[airavataExperimentList.size()];
+ for (int i = 0; i < airavataExperimentList.size(); i++) {
+ experiments[i] = airavataExperimentList.get(i);
+ }
+ experimentList.setExperiments(experiments);
+ if (airavataExperimentList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(experimentList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/experiments/date")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getExperimentsByDate(@QueryParam("fromDate") String fromDate,
+ @QueryParam("toDate") String toDate) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedFromDate = dateFormat.parse(fromDate);
+ Date formattedToDate = dateFormat.parse(toDate);
+ List<AiravataExperiment> airavataExperimentList = airavataRegistry.getExperiments(formattedFromDate, formattedToDate);
+ ExperimentList experimentList = new ExperimentList();
+ AiravataExperiment[] experiments = new AiravataExperiment[airavataExperimentList.size()];
+ for (int i = 0; i < airavataExperimentList.size(); i++) {
+ experiments[i] = airavataExperimentList.get(i);
+ }
+ experimentList.setExperiments(experiments);
+ if (airavataExperimentList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(experimentList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (ParseException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/experiments/project/date")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getExperimentsByProjectDate(@QueryParam("projectName") String projectName,
+ @QueryParam("fromDate") String fromDate,
+ @QueryParam("toDate") String toDate) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedFromDate = dateFormat.parse(fromDate);
+ Date formattedToDate = dateFormat.parse(toDate);
+ List<AiravataExperiment> airavataExperimentList = airavataRegistry.getExperiments(projectName, formattedFromDate, formattedToDate);
+ ExperimentList experimentList = new ExperimentList();
+ AiravataExperiment[] experiments = new AiravataExperiment[airavataExperimentList.size()];
+ for (int i = 0; i < airavataExperimentList.size(); i++) {
+ experiments[i] = airavataExperimentList.get(i);
+ }
+ experimentList.setExperiments(experiments);
+ if (airavataExperimentList.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(experimentList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (ParseException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/experiment")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addExperiment(@FormParam("projectName") String projectName,
+ @FormParam("experimentID") String experimentID,
+ @FormParam("submittedDate") String submittedDate) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ AiravataExperiment experiment = new AiravataExperiment();
+ experiment.setExperimentId(experimentID);
+ Gateway gateway = (Gateway) context.getAttribute(RestServicesConstants.GATEWAY);
+ AiravataUser airavataUser = (AiravataUser) context.getAttribute(RestServicesConstants.REGISTRY_USER);
+ experiment.setGateway(gateway);
+ experiment.setUser(airavataUser);
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date formattedDate = dateFormat.parse(submittedDate);
+ experiment.setSubmittedDate(formattedDate);
+ airavataRegistry.addExperiment(projectName, experiment);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (ExperimentDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ return builder.build();
+ } catch (WorkspaceProjectDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (ParseException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+
+ }
+
+ @GET
+ @Path("experiment/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isExperimentExists(@QueryParam("experimentId") String experimentId) throws RegistryException {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.isExperimentExists(experimentId);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ builder.entity("True");
+ return builder.build();
+ } catch (ExperimentDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ builder.entity("False");
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("experiment/notexist/create")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isExperimentExistsThenCreate(@QueryParam("experimentId") String experimentId,
+ @QueryParam("createIfNotPresent") String createIfNotPresent) {
+ boolean createIfNotPresentStatus = false;
+ if (createIfNotPresent.equals("true")) {
+ createIfNotPresentStatus = true;
+ }
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.isExperimentExists(experimentId, createIfNotPresentStatus);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ builder.entity("True");
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ return builder.build();
+ }
+ }
+
+}
Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProjectRegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProjectRegistryResource.java?rev=1406321&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProjectRegistryResource.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/ProjectRegistryResource.java Tue Nov 6 20:53:43 2012
@@ -0,0 +1,205 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+package org.apache.airavata.services.registry.rest.resources;
+
+import org.apache.airavata.registry.api.AiravataRegistry2;
+import org.apache.airavata.registry.api.WorkspaceProject;
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.registry.api.exception.worker.WorkspaceProjectAlreadyExistsException;
+import org.apache.airavata.registry.api.exception.worker.WorkspaceProjectDoesNotExistsException;
+import org.apache.airavata.services.registry.rest.resourcemappings.WorkspaceProjectList;
+import org.apache.airavata.services.registry.rest.utils.RestServicesConstants;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+@Path("/registry/api/projectregistry")
+public class ProjectRegistryResource {
+ private AiravataRegistry2 airavataRegistry;
+
+ @Context
+ ServletContext context;
+
+ /**
+ * ---------------------------------Project Registry----------------------------------*
+ */
+ @GET
+ @Path("project/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isWorkspaceProjectExists(@QueryParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ boolean result = airavataRegistry.isWorkspaceProjectExists(projectName);
+ if (result) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity("True");
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ builder.entity("False");
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("project/exist")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response isWorkspaceProjectExists(@FormParam("projectName") String projectName,
+ @FormParam("createIfNotExists") String createIfNotExists) {
+ boolean createIfNotExistStatus = false;
+ if (createIfNotExists.equals("true")) {
+ createIfNotExistStatus = true;
+ }
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ boolean result = airavataRegistry.isWorkspaceProjectExists(projectName, createIfNotExistStatus);
+ if (result) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity("True");
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ builder.entity("False");
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ builder.entity("False");
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("add/project")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response addWorkspaceProject(@FormParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ WorkspaceProject workspaceProject = new WorkspaceProject(projectName, airavataRegistry);
+ airavataRegistry.addWorkspaceProject(workspaceProject);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (WorkspaceProjectAlreadyExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @POST
+ @Path("update/project")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response updateWorkspaceProject(@FormParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ WorkspaceProject workspaceProject = new WorkspaceProject(projectName, airavataRegistry);
+ airavataRegistry.updateWorkspaceProject(workspaceProject);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (WorkspaceProjectDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @DELETE
+ @Path("delete/project")
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response deleteWorkspaceProject(@QueryParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ airavataRegistry.deleteWorkspaceProject(projectName);
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ } catch (WorkspaceProjectDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/project")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getWorkspaceProject(@QueryParam("projectName") String projectName) {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ WorkspaceProject workspaceProject = airavataRegistry.getWorkspaceProject(projectName);
+ if (workspaceProject != null) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(workspaceProject);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+ return builder.build();
+ }
+ } catch (WorkspaceProjectDoesNotExistsException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+
+ @GET
+ @Path("get/projects")
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response getWorkspaceProjects() {
+ airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+ try {
+ List<WorkspaceProject> workspaceProjects = airavataRegistry.getWorkspaceProjects();
+ WorkspaceProjectList workspaceProjectList = new WorkspaceProjectList();
+ WorkspaceProject[] workspaceProjectSet = new WorkspaceProject[workspaceProjects.size()];
+ for (int i = 0; i < workspaceProjects.size(); i++) {
+ workspaceProjectSet[i] = workspaceProjects.get(i);
+ }
+ workspaceProjectList.setWorkspaceProjects(workspaceProjectSet);
+ if (workspaceProjects.size() != 0) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+ builder.entity(workspaceProjectList);
+ return builder.build();
+ } else {
+ Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+ return builder.build();
+ }
+ } catch (RegistryException e) {
+ Response.ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+ return builder.build();
+ }
+ }
+}