diff options
author | ChrisC <cc697w@intl.att.com> | 2017-01-31 11:40:03 +0100 |
---|---|---|
committer | ChrisC <cc697w@intl.att.com> | 2017-01-31 12:59:33 +0100 |
commit | 025301d08b061482c1f046d562bf017c8cbcfe8d (patch) | |
tree | 68a2a549736c9bf0f7cd4e71c76e40ef7e2606f2 /mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java | |
parent | 2754ad52f833278a5c925bd788a16d1dce16a598 (diff) |
Initial OpenECOMP MSO commit
Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d
Signed-off-by: ChrisC <cc697w@intl.att.com>
Diffstat (limited to 'mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java')
-rw-r--r-- | mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java new file mode 100644 index 0000000000..f89cae988a --- /dev/null +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NetworkTypesHandler.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * OPENECOMP - MSO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.mso.apihandlerinfra; + + +import java.io.StringWriter; +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.core.Response; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; + +import org.apache.http.HttpStatus; + +import org.openecomp.mso.apihandlerinfra.networkbeans.NetworkType; +import org.openecomp.mso.apihandlerinfra.networkbeans.NetworkTypes; +import org.openecomp.mso.apihandlerinfra.networkbeans.ObjectFactory; +import org.openecomp.mso.db.catalog.CatalogDatabase; +import org.openecomp.mso.db.catalog.beans.NetworkResource; +import org.openecomp.mso.logger.MsoLogger; +import org.openecomp.mso.utils.UUIDChecker; + +@Path(Constants.NETWORK_TYPES_PATH) +public class NetworkTypesHandler { + + private static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.APIH); + + @GET + public Response getNetworkTypes () { + long startTime = System.currentTimeMillis (); + MsoLogger.setServiceName ("getNetworkTypes"); + // Generate a Request Id + UUIDChecker.generateUUID(msoLogger); + msoLogger.debug ("Incoming request received for getNetworkTypes"); + + List <NetworkResource> networkResources = null; + try (CatalogDatabase db = new CatalogDatabase()){ + networkResources = db.getAllNetworkResources (); + } catch (Exception e) { + msoLogger.debug ("No connection to catalog DB", e); + msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, "no connection to catalog DB"); + msoLogger.debug ("End of the transaction, the final response is: " + e.toString ()); + return Response.status (HttpStatus.SC_NOT_FOUND).entity (e.toString ()).build (); + } + + if (networkResources == null) { + msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataNotFound, "NetworkType not found"); + msoLogger.debug ("End of the transaction. NetworkType not found the final response status: " + HttpStatus.SC_NOT_FOUND); + return Response.status (HttpStatus.SC_NOT_FOUND).entity ("").build (); + } + + ObjectFactory beansObjectFactory = new ObjectFactory (); + NetworkTypes networkTypes = beansObjectFactory.createNetworkTypes (); + for (int i = 0; i < networkResources.size (); i++) { + NetworkType networkType = beansObjectFactory.createNetworkType (); + NetworkResource vr = networkResources.get (i); + networkType.setType (vr.getNetworkType ()); + networkType.setDescription (vr.getDescription ()); + networkType.setId (String.valueOf (vr.getId ())); + networkTypes.getNetworkType ().add (networkType); + } + + StringWriter stringWriter = new StringWriter (); + try { + JAXBContext jaxbContext = JAXBContext.newInstance (NetworkTypes.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller (); + + jaxbMarshaller.setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, true); + jaxbMarshaller.marshal (networkTypes, stringWriter); + + } catch (JAXBException e) { + msoLogger.debug ("Error marshalling", e); + } + + String response = stringWriter.toString (); + msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful"); + msoLogger.debug ("End of the transaction, the final response is: " + response); + return Response.status (HttpStatus.SC_OK).entity (response).build (); + } +} |