aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java')
-rw-r--r--src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java237
1 files changed, 101 insertions, 136 deletions
diff --git a/src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java b/src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java
index 7acc0a4..058d66a 100644
--- a/src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java
+++ b/src/main/java/org/openecomp/dmaapbc/resources/MR_ClientResource.java
@@ -20,27 +20,29 @@
package org.openecomp.dmaapbc.resources;
-import java.util.ArrayList;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
+import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.Status;
-import org.apache.log4j.Logger;
-import org.openecomp.dmaapbc.authentication.AuthenticationErrorException;
+import org.openecomp.dmaapbc.logging.BaseLoggingClass;
import org.openecomp.dmaapbc.model.ApiError;
+import org.openecomp.dmaapbc.model.DR_Pub;
import org.openecomp.dmaapbc.model.MR_Client;
import org.openecomp.dmaapbc.model.MR_Cluster;
import org.openecomp.dmaapbc.model.Topic;
@@ -51,38 +53,45 @@ import org.openecomp.dmaapbc.service.TopicService;
@Path("/mr_clients")
+@Api( value= "MR_Clients", description = "Endpoint for a Message Router Client that implements a Publisher or a Subscriber" )
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
-public class MR_ClientResource extends ApiResource {
- static final Logger logger = Logger.getLogger(MR_ClientResource.class);
+@Authorization
+public class MR_ClientResource extends BaseLoggingClass {
+
private MR_ClientService mr_clientService = new MR_ClientService();
@GET
- public List<MR_Client> getMr_Clients(@Context UriInfo uriInfo, @HeaderParam("Authorization") String basicAuth) {
+ @ApiOperation( value = "return MR_Client details",
+ notes = "Returns array of `MR_Client` objects.",
+ response = MR_Client.class)
+ @ApiResponses( value = {
+ @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
+ public Response getMr_Clients() {
ApiService resp = new ApiService();
- try {
- resp.checkAuthorization( basicAuth, uriInfo.getPath(), "GET");
- } catch ( AuthenticationErrorException ae ) {
- return null; //resp.unauthorized();
- } catch ( Exception e ) {
- logger.error( "Unexpected exception " + e );
- return null; //resp.unavailable();
- }
- return mr_clientService.getAllMr_Clients();
+
+ List<MR_Client> clients = mr_clientService.getAllMr_Clients();
+
+ GenericEntity<List<MR_Client>> list = new GenericEntity<List<MR_Client>>(clients) {
+ };
+ return resp.success(list);
}
@POST
- public Response addMr_Client( MR_Client client,
- @Context UriInfo uriInfo, @HeaderParam("Authorization") String basicAuth) {
+ @ApiOperation( value = "return MR_Client details",
+ notes = "Create a `MR_Client` object.",
+ response = MR_Client.class)
+ @ApiResponses( value = {
+ @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
+ public Response addMr_Client(
+ MR_Client client
+ ) {
ApiService resp = new ApiService();
- try {
- resp.checkAuthorization( basicAuth, uriInfo.getPath(), "POST");
- } catch ( AuthenticationErrorException ae ) {
- return resp.unauthorized();
- } catch ( Exception e ) {
- logger.error( "Unexpected exception " + e );
- return resp.unavailable();
- }
+
try {
resp.required( "fqtn", client.getFqtn(), "");
resp.required( "dcaeLocationName", client.getDcaeLocationName(), "");
@@ -91,76 +100,60 @@ public class MR_ClientResource extends ApiResource {
} catch ( RequiredFieldException rfe ) {
logger.debug( resp.toString() );
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
MR_ClusterService clusters = new MR_ClusterService();
MR_Cluster cluster = clusters.getMr_Cluster(client.getDcaeLocationName(), resp.getErr());
if ( cluster == null ) {
- ApiError err = resp.getErr();
- err.setCode(Status.BAD_REQUEST.getStatusCode());
- err.setMessage( "MR_Cluster alias not found for dcaeLocation: " + client.getDcaeLocationName());
- err.setFields("dcaeLocationName");
- logger.warn( err.getMessage() );
- return Response.status(err.getCode()).entity( err ).build();
+
+ resp.setCode(Status.BAD_REQUEST.getStatusCode());
+ resp.setMessage( "MR_Cluster alias not found for dcaeLocation: " + client.getDcaeLocationName());
+ resp.setFields("dcaeLocationName");
+ logger.warn( resp.toString() );
+ return resp.error();
}
String url = cluster.getFqdn();
if ( url == null || url.isEmpty() ) {
- ApiError err = resp.getErr();
- err.setCode(Status.BAD_REQUEST.getStatusCode());
- err.setMessage("FQDN not set for dcaeLocation " + client.getDcaeLocationName() );
- err.setFields("fqdn");
- logger.warn( err.getMessage() );
- return Response.status(err.getCode()).entity( err ).build();
+
+ resp.setCode(Status.BAD_REQUEST.getStatusCode());
+ resp.setMessage("FQDN not set for dcaeLocation " + client.getDcaeLocationName() );
+ resp.setFields("fqdn");
+ logger.warn( resp.toString() );
+ return resp.error();
}
TopicService topics = new TopicService();
- ApiError err = resp.getErr();
- Topic t = topics.getTopic(client.getFqtn(), err);
+
+ Topic t = topics.getTopic(client.getFqtn(), resp.getErr() );
if ( t == null ) {
- return Response.status(err.getCode()).entity( err ).build();
+ return resp.error();
}
- MR_Client nClient = mr_clientService.addMr_Client(client, t, err);
- if ( err.is2xx()) {
- int n;
- ArrayList<MR_Client> tc = t.getClients();
- if ( tc == null ) {
- n = 0;
- tc = new ArrayList<MR_Client>();
- } else {
- n = tc.size();
- }
- logger.info( "number of existing clients for topic is " + n );
-
-
- logger.info( "n=" + n + " tc=" + tc + " client=" + client );
- tc.add( client );
- t.setClients(tc);
- topics.updateTopic( t );
- return Response.ok(nClient)
- .build();
+ MR_Client nClient = mr_clientService.addMr_Client(client, t, resp.getErr());
+ if ( resp.getErr().is2xx()) {
+ t = topics.getTopic(client.getFqtn(), resp.getErr());
+ topics.checkForBridge(t, resp.getErr());
+ return resp.success(nClient);
}
else {
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
}
@PUT
+ @ApiOperation( value = "return MR_Client details",
+ notes = "Update a `MR_Client` object, specified by clientId",
+ response = MR_Client.class)
+ @ApiResponses( value = {
+ @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
@Path("/{clientId}")
- public Response updateMr_Client( @PathParam("clientId") String clientId, MR_Client client,
- @Context UriInfo uriInfo, @HeaderParam("Authorization") String basicAuth) {
+ public Response updateMr_Client(
+ @PathParam("clientId") String clientId,
+ MR_Client client
+ ) {
ApiService resp = new ApiService();
- try {
- resp.checkAuthorization( basicAuth, uriInfo.getPathSegments().get(0).getPath(), "PUT");
- } catch ( AuthenticationErrorException ae ) {
- return resp.unauthorized();
- } catch ( Exception e ) {
- logger.error( "Unexpected exception " + e );
- return resp.unavailable();
- }
+
try {
resp.required( "fqtn", client.getFqtn(), "");
resp.required( "dcaeLocationName", client.getDcaeLocationName(), "");
@@ -169,9 +162,7 @@ public class MR_ClientResource extends ApiResource {
} catch ( RequiredFieldException rfe ) {
logger.debug( resp.toString() );
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
client.setMrClientId(clientId);
MR_Client nClient = mr_clientService.updateMr_Client(client, resp.getErr() );
@@ -185,83 +176,57 @@ public class MR_ClientResource extends ApiResource {
}
@DELETE
+ @ApiOperation( value = "return MR_Client details",
+ notes = "Delete a `MR_Client` object, specified by clientId",
+ response = MR_Client.class)
+ @ApiResponses( value = {
+ @ApiResponse( code = 204, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
@Path("/{subId}")
- public Response deleteMr_Client( @PathParam("subId") String id,
- @Context UriInfo uriInfo, @HeaderParam("Authorization") String basicAuth){
+ public Response deleteMr_Client(
+ @PathParam("subId") String id
+ ){
ApiService resp = new ApiService();
- try {
- resp.checkAuthorization( basicAuth, uriInfo.getPathSegments().get(0).getPath(), "DELETE");
- } catch ( AuthenticationErrorException ae ) {
- return resp.unauthorized();
- } catch ( Exception e ) {
- logger.error( "Unexpected exception " + e );
- return resp.unavailable();
- }
+
try {
resp.required( "clientId", id, "");
} catch ( RequiredFieldException rfe ) {
logger.debug( resp.toString() );
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
- MR_Client client = mr_clientService.removeMr_Client(id, resp.getErr() );
+ mr_clientService.removeMr_Client(id, true, resp.getErr() );
if ( resp.getErr().is2xx()) {
- TopicService topics = new TopicService();
- ApiError err = resp.getErr();
- Topic t = topics.getTopic(client.getFqtn(), err);
- if ( t == null ) {
- logger.info( err.getMessage() );
- return Response.status(err.getCode()).entity( err ).build();
- }
-
- ArrayList<MR_Client> tc = t.getClients();
- for( MR_Client c: tc) {
- if ( c.getMrClientId().equals(id)) {
- tc.remove(c);
- break;
- }
- }
- t.setClients(tc);
- topics.updateTopic( t );
-
- return Response.status(Status.NO_CONTENT.getStatusCode())
- .build();
+ return resp.success(Status.NO_CONTENT.getStatusCode(), null);
}
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
@GET
+ @ApiOperation( value = "return MR_Client details",
+ notes = "Retrieve a `MR_Client` object, specified by clientId",
+ response = MR_Client.class)
+ @ApiResponses( value = {
+ @ApiResponse( code = 200, message = "Success", response = DR_Pub.class),
+ @ApiResponse( code = 400, message = "Error", response = ApiError.class )
+ })
@Path("/{subId}")
- public Response test( @PathParam("subId") String id,
- @Context UriInfo uriInfo, @HeaderParam("Authorization") String basicAuth) {
+ public Response test(
+ @PathParam("subId") String id
+ ) {
ApiService resp = new ApiService();
- try {
- resp.checkAuthorization( basicAuth, uriInfo.getPathSegments().get(0).getPath(), "GET");
- } catch ( AuthenticationErrorException ae ) {
- return resp.unauthorized();
- } catch ( Exception e ) {
- logger.error( "Unexpected exception " + e );
- return resp.unavailable();
- }
+
try {
resp.required( "clientId", id, "");
} catch ( RequiredFieldException rfe ) {
logger.debug( resp.toString() );
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
MR_Client nClient = mr_clientService.getMr_Client( id, resp.getErr() );
if ( resp.getErr().is2xx()) {
- return Response.ok(nClient)
- .build();
+ return resp.success(nClient);
}
- return Response.status(resp.getErr().getCode())
- .entity( resp.getErr() )
- .build();
+ return resp.error();
}
}