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();