Realize query EMS detail API.
[aai/esr-server.git] / esr-mgr / src / main / java / org / onap / aai / esr / wrapper / EmsManagerWrapper.java
1 /**
2  * Copyright 2017 ZTE Corporation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.aai.esr.wrapper;
17
18 import java.util.ArrayList;
19
20 import javax.ws.rs.core.Response;
21
22 import org.onap.aai.esr.entity.rest.EmsRegisterInfo;
23 import org.onap.aai.esr.externalservice.aai.ExternalSystemProxy;
24 import org.onap.aai.esr.util.EmsManagerUtil;
25 import org.onap.aai.esr.entity.aai.EsrEmsDetail;
26 import org.onap.aai.esr.entity.rest.CommonRegisterResponse;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 import com.google.gson.Gson;
31
32 public class EmsManagerWrapper {
33   private static EmsManagerWrapper emsManagerWrapper;
34   private static final Logger LOG = LoggerFactory.getLogger(EmsManagerWrapper.class);
35
36   /**
37    * get VnfmManagerWrapper instance.
38    * @return ems manager wrapper instance
39    */
40   public static EmsManagerWrapper getInstance() {
41     if (emsManagerWrapper == null) {
42       emsManagerWrapper = new EmsManagerWrapper();
43     }
44     return emsManagerWrapper;
45   }
46   
47   public Response registerEms(EmsRegisterInfo emsRegisterInfo) {
48     CommonRegisterResponse result = new CommonRegisterResponse();
49     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
50     esrEmsDetail = EmsManagerUtil.emsRegisterInfo2EsrEms(emsRegisterInfo);
51     String emsId = esrEmsDetail.getEmsId();
52     try {
53       ExternalSystemProxy.registerEms(emsId, esrEmsDetail);
54       result.setId(emsId);
55       return Response.ok(result).build();
56     } catch (Exception e) {
57       e.printStackTrace();
58       LOG.error("Register EMS failed !" + e.getMessage());
59       return Response.serverError().build();
60     }
61   }
62
63   public Response updateEms(EmsRegisterInfo ems) {
64     //TODO
65     return Response.ok().build();
66   }
67   
68   public Response queryEmsList() {
69     //TODO
70     ArrayList<EmsRegisterInfo> emsList = new ArrayList<EmsRegisterInfo>();
71     return Response.ok(emsList).build();
72   }
73   
74   public Response queryEmsById(String emsId) {
75     EmsRegisterInfo ems = new EmsRegisterInfo();
76     ems = queryEmsDetail(emsId);
77     if (ems != null) {
78       return Response.ok(ems).build();
79     } else {
80       return Response.ok().build();
81     }
82   }
83   
84   public Response delEms(String emsId) {
85     //TODO
86     return Response.noContent().build();
87   }
88   
89   private EmsRegisterInfo queryEmsDetail(String emsId) {
90     EmsRegisterInfo emsRegisterInfo = new EmsRegisterInfo();
91     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
92     try {
93       String esrEmsStr = ExternalSystemProxy.queryEmsDetail(emsId);
94       LOG.info("Response from AAI by query EMS: " + esrEmsStr);
95       esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
96       emsRegisterInfo = EmsManagerUtil.EsrEms2EmsRegisterInfo(esrEmsDetail);
97       return emsRegisterInfo;
98     } catch (Exception e) {
99       e.printStackTrace();
100       LOG.error("Query VNFM detail failed! EMS ID: " + emsId, e.getMessage());
101       return null;
102     }
103   }
104 }