Author: heshan
Date: Tue Oct 30 19:10:37 2012
New Revision: 1403819

URL: http://svn.apache.org/viewvc?rev=1403819&view=rev
Log:
Adding app registration method.

Modified:
    
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java

Modified: 
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java?rev=1403819&r1=1403818&r2=1403819&view=diff
==============================================================================
--- 
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java
 (original)
+++ 
airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java
 Tue Oct 30 19:10:37 2012
@@ -1073,6 +1073,51 @@ import java.util.*;
     }
 
     @POST
+    @Path("applicationdescriptor/build/save/test")
+    @Produces(MediaType.TEXT_PLAIN)
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    public Response addApplicationDescriptorTest(@FormParam("appName") String 
appName, @FormParam("exeuctableLocation") String exeuctableLocation, 
@FormParam("scratchWorkingDirectory") String scratchWorkingDirectory, 
@FormParam("hostName") String hostName,
+                                                 @FormParam("projAccNumber") 
String projAccNumber, @FormParam("queueName") String queueName, 
@FormParam("cpuCount") String cpuCount, @FormParam("nodeCount") String 
nodeCount, @FormParam("maxMemory") String maxMemory,
+                                                 @FormParam("serviceName") 
String serviceName, @FormParam("inputName1") String inputName1, 
@FormParam("inputType1") String inputType1, @FormParam("outputName") String 
outputName, @FormParam("outputType") String outputType) throws Exception {
+        airavataRegistry = (AiravataRegistry2) 
context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+
+        ServiceDescription serv = 
DescriptorUtil.getServiceDescription(serviceName, inputName1, inputType1, 
outputName, outputType);
+        // Creating the descriptor as a temporary measure.
+        ApplicationDeploymentDescription app = 
DescriptorUtil.registerApplication(appName, exeuctableLocation, 
scratchWorkingDirectory,
+                hostName, projAccNumber, queueName, cpuCount, nodeCount, 
maxMemory);
+        try{
+            if(!airavataRegistry.isHostDescriptorExists(hostName)){
+                Response.ResponseBuilder builder = 
Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+                return builder.build();
+            }
+
+            if 
(!airavataRegistry.isServiceDescriptorExists(serv.getType().getName())) {
+                airavataRegistry.addServiceDescriptor(serv);
+            } else {
+                airavataRegistry.updateServiceDescriptor(serv);
+            }
+
+            if 
(!airavataRegistry.isApplicationDescriptorExists(serv.getType().getName(), 
hostName, app.getType().getApplicationName().getStringValue())) {
+                Response.ResponseBuilder builder = 
Response.status(Response.Status.INTERNAL_SERVER_ERROR);
+                return builder.build();
+            } else {
+                
airavataRegistry.addApplicationDescriptor(serv.getType().getName(), hostName, 
app);
+            }
+
+            airavataRegistry.addApplicationDescriptor(serviceName, hostName, 
app);
+            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/build/save")
     @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
     @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})


Reply via email to