Change the static method in util.
[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.aai.EsrSystemInfo;
28 import org.onap.aai.esr.entity.rest.CommonRegisterResponse;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 import com.google.gson.Gson;
33
34 public class EmsManagerWrapper {
35   private static EmsManagerWrapper emsManagerWrapper;
36   private static final Logger LOG = LoggerFactory.getLogger(EmsManagerWrapper.class);
37   private static EmsManagerUtil emsManagerUtil = new EmsManagerUtil();
38
39   /**
40    * get VnfmManagerWrapper instance.
41    * @return ems manager wrapper instance
42    */
43   public static EmsManagerWrapper getInstance() {
44     if (emsManagerWrapper == null) {
45       emsManagerWrapper = new EmsManagerWrapper();
46     }
47     return emsManagerWrapper;
48   }
49   
50   public Response registerEms(EmsRegisterInfo emsRegisterInfo) {
51     CommonRegisterResponse result = new CommonRegisterResponse();
52     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
53     esrEmsDetail = emsManagerUtil.emsRegisterInfo2EsrEms(emsRegisterInfo);
54     String emsId = esrEmsDetail.getEmsId();
55     try {
56       ExternalSystemProxy.registerEms(emsId, esrEmsDetail);
57       result.setId(emsId);
58       return Response.ok(result).build();
59     } catch (Exception e) {
60       e.printStackTrace();
61       LOG.error("Register EMS failed !" + e.getMessage());
62       return Response.serverError().build();
63     }
64   }
65
66   public Response updateEms(EmsRegisterInfo emsRegisterInfo, String emsId) {
67     CommonRegisterResponse result = new CommonRegisterResponse();
68     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
69     esrEmsDetail = getNewEsrEmsDetail(emsRegisterInfo, emsId);
70     try {
71       ExternalSystemProxy.registerEms(emsId, esrEmsDetail);
72       result.setId(emsId);
73       return Response.ok(result).build();
74     } catch (Exception e) {
75       e.printStackTrace();
76       LOG.error("Update VNFM failed !" + e.getMessage());
77       return Response.serverError().build();
78     }
79   }
80   
81   public Response queryEmsList() {
82     ArrayList<EmsRegisterInfo> emsList = new ArrayList<EmsRegisterInfo>();
83     EsrEmsList esrEms = new EsrEmsList();
84     try {
85       String esrEmsStr = ExternalSystemProxy.queryEmsList();
86       esrEms = new Gson().fromJson(esrEmsStr, EsrEmsList.class);
87       LOG.info("Response from AAI by query EMS list: " + esrEms);
88       emsList = getEmsDetailList(esrEms);
89       return Response.ok(emsList).build();
90     } catch (Exception e) {
91       e.printStackTrace();
92       LOG.error("Query EMS list failed !");
93       return Response.serverError().build();
94     }
95   }
96   
97   public Response queryEmsById(String emsId) {
98     EmsRegisterInfo ems = new EmsRegisterInfo();
99     ems = queryEmsDetail(emsId);
100     if (ems != null) {
101       return Response.ok(ems).build();
102     } else {
103       return Response.ok().build();
104     }
105   }
106   
107   public Response delEms(String emsId) {
108     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
109     esrEmsDetail = queryEsrEmsDetail(emsId);
110     String resourceVersion = esrEmsDetail.getResourceVersion();
111     if (resourceVersion != null) {
112       try {
113         ExternalSystemProxy.deleteEms(emsId, resourceVersion);
114         return Response.noContent().build();
115       } catch (Exception e) {
116         e.printStackTrace();
117         LOG.error("Delete EMS from A&AI failed! EMS ID: " + emsId + "resouce-version:"
118             + resourceVersion, e.getMessage());
119         return Response.serverError().build();
120       }
121     } else {
122       LOG.error("resouce-version is null ! Can not delete resouce from A&AI. ");
123       return Response.serverError().build();
124     }
125   }
126   
127   private EmsRegisterInfo queryEmsDetail(String emsId) {
128     EmsRegisterInfo emsRegisterInfo = new EmsRegisterInfo();
129     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
130     try {
131       String esrEmsStr = ExternalSystemProxy.queryEmsDetail(emsId);
132       LOG.info("Response from AAI by query EMS: " + esrEmsStr);
133       esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
134       emsRegisterInfo = emsManagerUtil.EsrEms2EmsRegisterInfo(esrEmsDetail);
135       return emsRegisterInfo;
136     } catch (Exception e) {
137       e.printStackTrace();
138       LOG.error("Query EMS detail failed! EMS ID: " + emsId, e.getMessage());
139       return null;
140     }
141   }
142   
143   private ArrayList<EmsRegisterInfo> getEmsDetailList(EsrEmsList esrEms) {
144     ArrayList<EmsRegisterInfo> emsInfoList = new ArrayList<EmsRegisterInfo>();
145     EmsRegisterInfo emsInfo = new EmsRegisterInfo();
146     for (int i = 0; i < esrEms.getEsrEms().size(); i++) {
147       String emsId = esrEms.getEsrEms().get(i).getEmsId();
148       emsInfo = queryEmsDetail(emsId);
149       if (emsInfo != null) {
150         emsInfoList.add(emsInfo);
151       }
152     }
153     return emsInfoList;
154   }
155   
156   private EsrEmsDetail queryEsrEmsDetail (String emsId) {
157     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
158     try {
159       String esrEmsStr = ExternalSystemProxy.queryEmsDetail(emsId);
160       LOG.info("Response from AAI by query EMS: " + esrEmsStr);
161       esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
162     } catch (Exception e) {
163       e.printStackTrace();
164       LOG.error("Query EMS detail failed! EMS ID: " + emsId, e.getMessage());
165     }
166     return esrEmsDetail;
167   }
168   
169   private EsrEmsDetail getNewEsrEmsDetail(EmsRegisterInfo emsRegisterInfo, String emsId) {
170     EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
171     ArrayList<EsrSystemInfo> newEsrSysInfoList = new ArrayList<EsrSystemInfo>();
172     EsrSystemInfo newEsrSystemInfo = new EsrSystemInfo();
173     EsrEmsDetail oriEsrEmsDetail = new EsrEmsDetail();
174     ArrayList<EsrSystemInfo> oriEsrSysInfoList = new ArrayList<EsrSystemInfo>();
175     EsrSystemInfo originalEsrSystemInfo = new EsrSystemInfo();
176     
177     oriEsrEmsDetail = queryEsrEmsDetail(emsId);
178     esrEmsDetail = emsManagerUtil.emsRegisterInfo2EsrEms(emsRegisterInfo);
179     String emsResourceVersion = oriEsrEmsDetail.getResourceVersion();
180     esrEmsDetail.setResourceVersion(emsResourceVersion);
181     esrEmsDetail.setEmsId(emsId);
182     newEsrSysInfoList = esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo();
183     oriEsrSysInfoList = oriEsrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo();
184     for (int i = 0; i < oriEsrSysInfoList.size(); i++) {
185       originalEsrSystemInfo = oriEsrSysInfoList.get(i);
186       for (int j = 0; j < newEsrSysInfoList.size(); j++) {
187         newEsrSystemInfo = newEsrSysInfoList.get(j);
188         if (originalEsrSystemInfo.getSystemType().equals(newEsrSystemInfo.getSystemType())) {
189           esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo().get(j)
190               .setResouceVersion(originalEsrSystemInfo.getResouceVersion());
191           esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo().get(j)
192               .setEsrSystemInfoId(originalEsrSystemInfo.getEsrSystemInfoId());
193           break;
194         }
195       }
196     }
197     return esrEmsDetail;
198   }
199 }