X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=adapters%2Fmso-openstack-adapters%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fadapters%2Ftenant%2FTenantAdapterRest.java;h=6a38cc60e606b8051404c0e170364971425621dd;hb=f47919f1fe367b612fa9c96d34c59f01a541e882;hp=11051df34e8c72447fb5c5aee074f3e71f25474b;hpb=54452b80a1cf4d22ef750bc1377f8c1b05431d57;p=so.git diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java index 11051df34e..6a38cc60e6 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tenant/TenantAdapterRest.java @@ -65,8 +65,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** - * This class services calls to the REST interface for Tenants (http://host:port/vnfs/rest/v1/tenants) - * Both XML and JSON can be produced/consumed. Set Accept: and Content-Type: headers appropriately. XML is the default. + * This class services calls to the REST interface for Tenants (http://host:port/vnfs/rest/v1/tenants) Both XML and JSON + * can be produced/consumed. Set Accept: and Content-Type: headers appropriately. XML is the default. */ @Path("/v1/tenants") @Api(value = "/v1/tenants", description = "root of tenant adapters restful web service") @@ -74,265 +74,176 @@ import org.springframework.stereotype.Component; public class TenantAdapterRest { private static Logger logger = LoggerFactory.getLogger(TenantAdapterRest.class); - private static final String EXCEPTION= "Exception :"; - //RAA? No logging in wrappers - @Autowired - private MsoTenantAdapterImpl tenantImpl; - - - - /* - URL: - EP: http://host:8080/tenants/rest - Resource: v1/tenants - REQ - metadata? - { - "cloudSiteId": "DAN", - "tenantName": "RAA_1", - "failIfExists": true, - "msoRequest": { - "requestId": "ra1", - "serviceInstanceId": "sa1" - }} - RESP- - { - "cloudSiteId": "DAN", - "tenantId": "128e10b9996d43a7874f19bbc4eb6749", - "tenantCreated": true, - "tenantRollback": { - "tenantId": "128e10b9996d43a7874f19bbc4eb6749", - "cloudId": "DAN", // RAA? cloudId instead of cloudSiteId - "tenantCreated": true, - "msoRequest": { - "requestId": "ra1", - "serviceInstanceId": "sa1" - } - } - } - */ - @POST - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @ApiOperation(value = "CreateTenant", - response = Response.class, - notes = "Creates a new tenant, CreateTenantRequest data is required") - @ApiResponses({ - @ApiResponse(code = 200, message = "tenant has been successfully created"), - @ApiResponse(code = 500, message = "create tenant failed") }) - public Response createTenant( - @ApiParam(value = "details of tenant being created", required = true) - CreateTenantRequest req) { - logger.debug("createTenant enter: {}", req.toJsonString()); - - String newTenantId = null; - TenantRollback tenantRollback = new TenantRollback (); - - try { - Holder htenant = new Holder<>(); - Holder hrollback = new Holder<>(); - MsoTenantAdapter impl = tenantImpl; - impl.createTenant( - req.getCloudSiteId(), - req.getTenantName(), - req.getMetadata(), - req.getFailIfExists(), - req.getBackout(), - req.getMsoRequest(), - htenant, - hrollback); - newTenantId = htenant.value; - tenantRollback = hrollback.value; - - } - catch (TenantAlreadyExists tae) { - logger.debug(EXCEPTION, tae); - CreateTenantError exc = new CreateTenantError(tae.getMessage(), tae.getFaultInfo().getCategory(), Boolean.TRUE); - return Response.status(HttpServletResponse.SC_NOT_IMPLEMENTED).entity(exc).build(); - } - catch (TenantException te) { - logger.debug(EXCEPTION, te); - CreateTenantError exc = new CreateTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory(), Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - catch (Exception e) { - logger.debug(EXCEPTION, e); - CreateTenantError exc = new CreateTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - - CreateTenantResponse resp = new CreateTenantResponse (req.getCloudSiteId(), newTenantId, tenantRollback.getTenantCreated(), tenantRollback); - return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); - } - - /* - URL: - http://host:8080/tenants/rest - Resource: v1/tenant/tennatId - REQ: - {"cloudSiteId": "DAN", - "tenantId": "ca84cd3d3df44272845da554656b3ace", - "msoRequest": { - "requestId": "ra1", - "serviceInstanceId": "sa1" - } - } - RESP: - {"tenantDeleted": true} - */ - @DELETE - @Path("{tenantId}") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @ApiOperation(value = "DeleteTenant", - response = Response.class, - notes = "Delete an existing tenant") - @ApiResponses({ - @ApiResponse(code = 200, message = "tenant has been successfully deleted"), - @ApiResponse(code = 500, message = "delete tenant failed") }) - public Response deleteTenant( - @ApiParam(value = "tenantId of tenant being deleted", required = true) - @PathParam("tenantId") String tenantId, - @ApiParam(value = "DeleteTenantRequest object containing additional information of tenant being deleted", required = false) - DeleteTenantRequest req) - { - boolean tenantDeleted = false; - - try { - Holder deleted = new Holder<>(); - MsoTenantAdapter impl = tenantImpl; - impl.deleteTenant( - req.getCloudSiteId(), - req.getTenantId(), - req.getMsoRequest(), - deleted); - tenantDeleted = deleted.value; - } - catch (TenantException te) { - logger.debug(EXCEPTION, te); - DeleteTenantError exc = new DeleteTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory(), Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - catch (Exception e) { - logger.debug(EXCEPTION, e); - DeleteTenantError exc = new DeleteTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - DeleteTenantResponse resp = new DeleteTenantResponse(); - resp.setTenantDeleted(tenantDeleted); - return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); - } - - /* - URL - EP://http://host:8080/tenants/rest - Resource: /v1/tenants - Params:?tenantNameOrId=RAA_1&cloudSiteId=DAN - RESP - { - "tenantId": "214b428a1f554c02935e66330f6a5409", - "tenantName": "RAA_1", - "metadata": {} - } - */ - @GET - @Path("{tenantId}") - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @ApiOperation(value = "QueryTenant", - response = Response.class, - notes = "Query an existing tenant") - @ApiResponses({ - @ApiResponse(code = 200, message = "tenant has been successfully queried"), - @ApiResponse(code = 500, message = "query tenant failed") }) - public Response queryTenant( - @ApiParam(value = "tenantId", required = true) - @PathParam("tenantId") String tenantId, -// @QueryParam("tenantNameOrId") String tenantNameOrId, //RAA? diff from doc - @ApiParam(value = "cloudSiteId", required = true) - @QueryParam("cloudSiteId") String cloudSiteId, - @ApiParam(value = "msoRequest.requestId", required = true) - @QueryParam("msoRequest.requestId") String requestId, - @ApiParam(value = "msoRequest.serviceInstanceId", required = true) - @QueryParam("msoRequest.serviceInstanceId") String serviceInstanceId) - { - MsoTenant tenant = null; - try { - Holder htenant = new Holder<>(); - Holder tenantName = new Holder<>(); - Holder> metadata = new Holder<>(); - MsoTenantAdapter impl = tenantImpl; - impl.queryTenant( - cloudSiteId, - tenantId, - null, - htenant, - tenantName, - metadata - ); - tenant = new MsoTenant(htenant.value, tenantName.value, metadata.value); - - } - catch (TenantException te) { - logger.debug(EXCEPTION, te); - QueryTenantError exc = new QueryTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory()); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - catch (Exception e) { - logger.debug(EXCEPTION, e); - QueryTenantError exc = new QueryTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - QueryTenantResponse resp = new QueryTenantResponse(tenant.getTenantId(), tenant.getTenantName(), tenant.getMetadata()); - return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); - } - - /* - URL - EP: //http://host:8080/tenants/rest - Resource: /v1/tenants/rollback - REQ - {"cloudSiteId": "DAN", - "tenantId": "f58abb05041d4ff384d4d22d1ccd2a6c", - "msoRequest": { - "requestId": "ra1", - "serviceInstanceId": "sa1" - } - } - RESP: - {"tenantDeleted": true} - */ - @DELETE - @Path("") - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @ApiOperation(value = "RollbackTenant", - response = Response.class, - notes = "Rollback an existing tenant") - @ApiResponses({ - @ApiResponse(code = 200, message = "tenant has been successfully rolledback"), - @ApiResponse(code = 500, message = "rollback tenant failed") }) - public Response rollbackTenant( - @ApiParam(value = "rollback, command action", required = true) - @QueryParam("rollback") String action, - @ApiParam(value = "RollbackTenantRequest", required = true) - RollbackTenantRequest req) - { - try { - MsoTenantAdapter impl = tenantImpl; - impl.rollbackTenant(req.getTenantRollback()); - } - catch (TenantException te) { - logger.debug(EXCEPTION, te); - RollbackTenantError exc = new RollbackTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory(), Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - catch (Exception e) { - logger.debug(EXCEPTION, e); - RollbackTenantError exc = new RollbackTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); - return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); - } - - RollbackTenantResponse resp = new RollbackTenantResponse (); - resp.setTenantRolledback(req != null); - return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); - } + private static final String EXCEPTION = "Exception :"; + // RAA? No logging in wrappers + @Autowired + private MsoTenantAdapterImpl tenantImpl; + + + + /* + * URL: EP: http://host:8080/tenants/rest Resource: v1/tenants REQ - metadata? { "cloudSiteId": "DAN", "tenantName": + * "RAA_1", "failIfExists": true, "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" }} RESP- { + * "cloudSiteId": "DAN", "tenantId": "128e10b9996d43a7874f19bbc4eb6749", "tenantCreated": true, "tenantRollback": { + * "tenantId": "128e10b9996d43a7874f19bbc4eb6749", "cloudId": "DAN", // RAA? cloudId instead of cloudSiteId + * "tenantCreated": true, "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } } + */ + @POST + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @ApiOperation(value = "CreateTenant", response = Response.class, + notes = "Creates a new tenant, CreateTenantRequest data is required") + @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully created"), + @ApiResponse(code = 500, message = "create tenant failed")}) + public Response createTenant( + @ApiParam(value = "details of tenant being created", required = true) CreateTenantRequest req) { + logger.debug("createTenant enter: {}", req.toJsonString()); + + String newTenantId = null; + TenantRollback tenantRollback = new TenantRollback(); + + try { + Holder htenant = new Holder<>(); + Holder hrollback = new Holder<>(); + MsoTenantAdapter impl = tenantImpl; + impl.createTenant(req.getCloudSiteId(), req.getTenantName(), req.getMetadata(), req.getFailIfExists(), + req.getBackout(), req.getMsoRequest(), htenant, hrollback); + newTenantId = htenant.value; + tenantRollback = hrollback.value; + + } catch (TenantAlreadyExists tae) { + logger.debug(EXCEPTION, tae); + CreateTenantError exc = + new CreateTenantError(tae.getMessage(), tae.getFaultInfo().getCategory(), Boolean.TRUE); + return Response.status(HttpServletResponse.SC_NOT_IMPLEMENTED).entity(exc).build(); + } catch (TenantException te) { + logger.debug(EXCEPTION, te); + CreateTenantError exc = new CreateTenantError(te.getFaultInfo().getMessage(), + te.getFaultInfo().getCategory(), Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } catch (Exception e) { + logger.debug(EXCEPTION, e); + CreateTenantError exc = new CreateTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } + + CreateTenantResponse resp = new CreateTenantResponse(req.getCloudSiteId(), newTenantId, + tenantRollback.getTenantCreated(), tenantRollback); + return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); + } + + /* + * URL: http://host:8080/tenants/rest Resource: v1/tenant/tennatId REQ: {"cloudSiteId": "DAN", "tenantId": + * "ca84cd3d3df44272845da554656b3ace", "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } RESP: + * {"tenantDeleted": true} + */ + @DELETE + @Path("{tenantId}") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @ApiOperation(value = "DeleteTenant", response = Response.class, notes = "Delete an existing tenant") + @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully deleted"), + @ApiResponse(code = 500, message = "delete tenant failed")}) + public Response deleteTenant( + @ApiParam(value = "tenantId of tenant being deleted", + required = true) @PathParam("tenantId") String tenantId, + @ApiParam(value = "DeleteTenantRequest object containing additional information of tenant being deleted", + required = false) DeleteTenantRequest req) { + boolean tenantDeleted = false; + + try { + Holder deleted = new Holder<>(); + MsoTenantAdapter impl = tenantImpl; + impl.deleteTenant(req.getCloudSiteId(), req.getTenantId(), req.getMsoRequest(), deleted); + tenantDeleted = deleted.value; + } catch (TenantException te) { + logger.debug(EXCEPTION, te); + DeleteTenantError exc = new DeleteTenantError(te.getFaultInfo().getMessage(), + te.getFaultInfo().getCategory(), Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } catch (Exception e) { + logger.debug(EXCEPTION, e); + DeleteTenantError exc = new DeleteTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } + DeleteTenantResponse resp = new DeleteTenantResponse(); + resp.setTenantDeleted(tenantDeleted); + return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); + } + + /* + * URL EP://http://host:8080/tenants/rest Resource: /v1/tenants Params:?tenantNameOrId=RAA_1&cloudSiteId=DAN RESP { + * "tenantId": "214b428a1f554c02935e66330f6a5409", "tenantName": "RAA_1", "metadata": {} } + */ + @GET + @Path("{tenantId}") + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @ApiOperation(value = "QueryTenant", response = Response.class, notes = "Query an existing tenant") + @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully queried"), + @ApiResponse(code = 500, message = "query tenant failed")}) + public Response queryTenant(@ApiParam(value = "tenantId", required = true) @PathParam("tenantId") String tenantId, + // @QueryParam("tenantNameOrId") String tenantNameOrId, //RAA? diff from doc + @ApiParam(value = "cloudSiteId", required = true) @QueryParam("cloudSiteId") String cloudSiteId, + @ApiParam(value = "msoRequest.requestId", + required = true) @QueryParam("msoRequest.requestId") String requestId, + @ApiParam(value = "msoRequest.serviceInstanceId", + required = true) @QueryParam("msoRequest.serviceInstanceId") String serviceInstanceId) { + MsoTenant tenant = null; + try { + Holder htenant = new Holder<>(); + Holder tenantName = new Holder<>(); + Holder> metadata = new Holder<>(); + MsoTenantAdapter impl = tenantImpl; + impl.queryTenant(cloudSiteId, tenantId, null, htenant, tenantName, metadata); + tenant = new MsoTenant(htenant.value, tenantName.value, metadata.value); + + } catch (TenantException te) { + logger.debug(EXCEPTION, te); + QueryTenantError exc = + new QueryTenantError(te.getFaultInfo().getMessage(), te.getFaultInfo().getCategory()); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } catch (Exception e) { + logger.debug(EXCEPTION, e); + QueryTenantError exc = new QueryTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } + QueryTenantResponse resp = + new QueryTenantResponse(tenant.getTenantId(), tenant.getTenantName(), tenant.getMetadata()); + return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); + } + + /* + * URL EP: //http://host:8080/tenants/rest Resource: /v1/tenants/rollback REQ {"cloudSiteId": "DAN", "tenantId": + * "f58abb05041d4ff384d4d22d1ccd2a6c", "msoRequest": { "requestId": "ra1", "serviceInstanceId": "sa1" } } RESP: + * {"tenantDeleted": true} + */ + @DELETE + @Path("") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @ApiOperation(value = "RollbackTenant", response = Response.class, notes = "Rollback an existing tenant") + @ApiResponses({@ApiResponse(code = 200, message = "tenant has been successfully rolledback"), + @ApiResponse(code = 500, message = "rollback tenant failed")}) + public Response rollbackTenant( + @ApiParam(value = "rollback, command action", required = true) @QueryParam("rollback") String action, + @ApiParam(value = "RollbackTenantRequest", required = true) RollbackTenantRequest req) { + try { + MsoTenantAdapter impl = tenantImpl; + impl.rollbackTenant(req.getTenantRollback()); + } catch (TenantException te) { + logger.debug(EXCEPTION, te); + RollbackTenantError exc = new RollbackTenantError(te.getFaultInfo().getMessage(), + te.getFaultInfo().getCategory(), Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } catch (Exception e) { + logger.debug(EXCEPTION, e); + RollbackTenantError exc = + new RollbackTenantError(e.getMessage(), MsoExceptionCategory.INTERNAL, Boolean.TRUE); + return Response.status(HttpServletResponse.SC_INTERNAL_SERVER_ERROR).entity(exc).build(); + } + + RollbackTenantResponse resp = new RollbackTenantResponse(); + resp.setTenantRolledback(req != null); + return Response.status(HttpServletResponse.SC_OK).entity(resp).build(); + } }