Realize the query EMS list 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.aai.EsrEmsList;
27 import org.onap.aai.esr.entity.rest.CommonRegisterResponse;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30
31 import com.google.gson.Gson;
32
33 public class EmsManagerWrapper {
34   private static EmsManagerWrapper emsManagerWrapper;
35   private static final Logger LOG = LoggerFactory.getLogger(EmsManagerWrapper.class);
36
37   /**
38    * get VnfmManagerWrapper instance.
39    * @return ems manager wrapper instance
40    */
41   public static EmsManagerWrapper getInstance() {
42     if (emsManagerWrapper == null) {
43       emsManagerWrapper = new EmsManagerWrapper();
44     }
45     return emsManagerWrapper;
46   }
47   
48   public Response registerEms(EmsRegisterInfo emsRegisterInfo) {
49     CommonRegisterResponse result = new CommonRegisterResponse();
50     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
51     esrEmsDetail = EmsManagerUtil.emsRegisterInfo2EsrEms(emsRegisterInfo);
52     String emsId = esrEmsDetail.getEmsId();
53     try {
54       ExternalSystemProxy.registerEms(emsId, esrEmsDetail);
55       result.setId(emsId);
56       return Response.ok(result).build();
57     } catch (Exception e) {
58       e.printStackTrace();
59       LOG.error("Register EMS failed !" + e.getMessage());
60       return Response.serverError().build();
61     }
62   }
63
64   public Response updateEms(EmsRegisterInfo ems) {
65     //TODO
66     return Response.ok().build();
67   }
68   
69   public Response queryEmsList() {
70     ArrayList<EmsRegisterInfo> emsList = new ArrayList<EmsRegisterInfo>();
71     EsrEmsList esrEms = new EsrEmsList();
72     try {
73       String esrEmsStr = ExternalSystemProxy.queryEmsList();
74       esrEms = new Gson().fromJson(esrEmsStr, EsrEmsList.class);
75       LOG.info("Response from AAI by query EMS list: " + esrEms);
76       emsList = getEmsDetailList(esrEms);
77       return Response.ok(emsList).build();
78     } catch (Exception e) {
79       e.printStackTrace();
80       LOG.error("Query EMS list failed !");
81       return Response.serverError().build();
82     }
83   }
84   
85   public Response queryEmsById(String emsId) {
86     EmsRegisterInfo ems = new EmsRegisterInfo();
87     ems = queryEmsDetail(emsId);
88     if (ems != null) {
89       return Response.ok(ems).build();
90     } else {
91       return Response.ok().build();
92     }
93   }
94   
95   public Response delEms(String emsId) {
96     //TODO
97     return Response.noContent().build();
98   }
99   
100   private EmsRegisterInfo queryEmsDetail(String emsId) {
101     EmsRegisterInfo emsRegisterInfo = new EmsRegisterInfo();
102     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
103     try {
104       String esrEmsStr = ExternalSystemProxy.queryEmsDetail(emsId);
105       LOG.info("Response from AAI by query EMS: " + esrEmsStr);
106       esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
107       emsRegisterInfo = EmsManagerUtil.EsrEms2EmsRegisterInfo(esrEmsDetail);
108       return emsRegisterInfo;
109     } catch (Exception e) {
110       e.printStackTrace();
111       LOG.error("Query EMS detail failed! EMS ID: " + emsId, e.getMessage());
112       return null;
113     }
114   }
115   
116   private ArrayList<EmsRegisterInfo> getEmsDetailList(EsrEmsList esrEms) {
117     ArrayList<EmsRegisterInfo> emsInfoList = new ArrayList<EmsRegisterInfo>();
118     EmsRegisterInfo emsInfo = new EmsRegisterInfo();
119     for (int i = 0; i < esrEms.getEsrEms().size(); i++) {
120       String emsId = esrEms.getEsrEms().get(i).getEmsId();
121       emsInfo = queryEmsDetail(emsId);
122       if (emsInfo != null) {
123         emsInfoList.add(emsInfo);
124       }
125     }
126     return emsInfoList;
127   }
128 }