You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/09/09 16:00:58 UTC

[3/3] usergrid git commit: add job status service

add job status service


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/803da96d
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/803da96d
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/803da96d

Branch: refs/heads/USERGRID-1005
Commit: 803da96d6eca3d96feeb4ce9e1997c371e695c15
Parents: 1c742af
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Sep 9 08:00:21 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Sep 9 08:00:21 2015 -0600

----------------------------------------------------------------------
 .../usergrid/rest/ApplicationsResource.java     | 18 +++++++++------
 .../apache/usergrid/rest/SystemResourceIT.java  | 23 ++++++++++++++++----
 .../test/resource/endpoints/SystemResource.java | 16 ++++++++++++++
 3 files changed, 46 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/803da96d/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
index ac1a834..8d36acb 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/ApplicationsResource.java
@@ -89,7 +89,7 @@ public class ApplicationsResource extends AbstractContextResource {
 
         response.setAction( "clear application" );
 
-        logger.info( "clearing up application" );
+        logger.info("clearing up application");
 
 
         final Thread delete = new Thread() {
@@ -102,16 +102,18 @@ public class ApplicationsResource extends AbstractContextResource {
                         .count()
                         .doOnNext(count -> itemsDeleted.set(count))
                         .doOnNext(count -> {
-                            if( count%100 == 0 ){
+                            if( count % 100 == 0 ){
                                 Map<String,Object> map = new LinkedHashMap<>();
                                 map.put("count",itemsDeleted.intValue());
-                                statusService.setStatus(applicationId, jobId, StatusService.Status.INPROGRESS,map);
+                                final StatusService statusService = injector.getInstance(StatusService.class);
+                                statusService.setStatus(applicationId, jobId, StatusService.Status.INPROGRESS,map).subscribe();
                             }
                         })
                         .doOnCompleted(() ->{
                             Map<String,Object> map = new LinkedHashMap<>();
                             map.put("count",itemsDeleted.intValue());
-                            statusService.setStatus(applicationId,jobId, StatusService.Status.FAILED,map);
+                            final StatusService statusService = injector.getInstance(StatusService.class);
+                            statusService.setStatus(applicationId,jobId, StatusService.Status.COMPLETE,map).subscribe();
                         })
                         .subscribe();
 
@@ -124,7 +126,7 @@ public class ApplicationsResource extends AbstractContextResource {
             }
         };
 
-        delete.setName( "Delete for app : "+applicationId + " job: "+jobId );
+        delete.setName("Delete for app : " + applicationId + " job: " + jobId);
         delete.setDaemon(true);
         delete.start();
 
@@ -132,17 +134,19 @@ public class ApplicationsResource extends AbstractContextResource {
 
         Map<String,Object> data = new HashMap<>();
         data.put("jobId",jobId);
+        data.put("status",StatusService.Status.STARTED);
         response.setData(data);
         response.setSuccess();
         return new JSONWithPadding( response, callback );
     }
+
     @RequireSystemAccess
     @GET
     @Path( "{applicationId}/job/{jobId}" )
     public JSONWithPadding getStatus( @Context UriInfo ui,
                                              @PathParam("applicationId") UUID applicationId,
                                             @PathParam("jobId") UUID jobId,
-                                             @QueryParam( "callback" ) @DefaultValue( "callback" ) String callback ) {
+                                             @QueryParam( "callback" ) @DefaultValue( "callback" ) String callback ) throws Exception{
         final StatusService statusService = injector.getInstance(StatusService.class);
 
         final ApiResponse response = createApiResponse();
@@ -154,7 +158,7 @@ public class ApplicationsResource extends AbstractContextResource {
         Map<String,Object> data = new HashMap<>();
         data.put("jobId",jobId);
         data.put( "status", jobStatus.getStatus().toString() );
-        data.put( "metadata", jobStatus.getData().toString() );
+        data.put( "metadata", jobStatus.getData() );
         response.setData(data);
         response.setSuccess();
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/803da96d/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
index 83e29fa..55623dd 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/SystemResourceIT.java
@@ -24,6 +24,7 @@ import org.apache.usergrid.rest.test.resource.model.Entity;
 import org.apache.usergrid.rest.test.resource.model.QueryParameters;
 
 import java.util.LinkedHashMap;
+import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -52,7 +53,7 @@ public class SystemResourceIT extends AbstractRestIT {
     }
 
     @Test
-    public void testDeleteAllApplicationEntities() {
+    public void testDeleteAllApplicationEntities() throws Exception{
         int count = 10;
         for(int i =0; i<count;i++) {
             this.app().collection("tests").post(new Entity().chainPut("testval", "test"));
@@ -64,9 +65,23 @@ public class SystemResourceIT extends AbstractRestIT {
 
         org.apache.usergrid.rest.test.resource.model.ApiResponse result = clientSetup.getRestClient().system().applications(this.clientSetup.getAppUuid()).delete( queryParameters);
 
-        assertNotNull( result );
-        assertNotNull( "ok",result.getStatus() );
-        assertEquals(((LinkedHashMap) result.getData()).get("count"), count);
+        assertNotNull(result);
+        assertNotNull("ok", result.getStatus());
+        assertNotNull(((LinkedHashMap) result.getData()).get("jobId"));
+
+        String jobId = (String)((LinkedHashMap) result.getData()).get("jobId");
+        queryParameters = new QueryParameters();
+        for(int i = 0;i<10;i++ ) {
+            result = clientSetup.getRestClient().system().applications(this.clientSetup.getAppUuid(), "job/" + jobId).get(queryParameters);
+            String status = (String) ((LinkedHashMap) result.getData()).get("status");
+            if(status.equals("COMPLETE")){
+                break;
+            }else{
+                Thread.sleep(100);
+            }
+        }
+        assertEquals(((LinkedHashMap)((LinkedHashMap) result.getData()).get("metadata")).get("count"), 10);
+
     }
 
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/803da96d/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
index c6a0586..1a7b594 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/endpoints/SystemResource.java
@@ -48,10 +48,26 @@ public class SystemResource extends NamedResource {
     public ApplicationsResource applications(String appid) {
         return new ApplicationsResource(appid,context,this);
     }
+    public ApplicationsResource applications(String appid, String additionalPath) {
+        return new ApplicationsResource(appid+"/"+additionalPath,context,this);
+    }
     public class ApplicationsResource extends NamedResource {
         public ApplicationsResource(final String appid, final ClientContext context, final UrlResource parent ) {
             super( "applications/"+appid,context, parent );
         }
+
+        public ApiResponse get(QueryParameters queryParameters){
+
+            WebResource resource = getResource();
+            resource = addParametersToResource( resource, queryParameters );
+
+            //added httpBasicauth filter to all setup calls because they all do verification this way.
+            HTTPBasicAuthFilter httpBasicAuthFilter = new HTTPBasicAuthFilter( "superuser","superpassword" );
+            resource.addFilter(httpBasicAuthFilter);
+
+            return resource.type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+                .get(ApiResponse.class);
+        }
         public ApiResponse delete(QueryParameters queryParameters){
 
             WebResource resource = getResource();