84b8620a784362584633b7e1fac873fb23be4507
[vfc/nfvo/resmanagement.git] /
1 /*
2  * Copyright 2016 Huawei Technologies Co., Ltd.
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
17 package org.onap.vfc.nfvo.resmanagement.service.entity;
18
19 import java.io.Serializable;
20
21 import org.apache.commons.lang.StringUtils;
22 import org.onap.vfc.nfvo.resmanagement.common.util.JsonUtil;
23 import org.onap.vfc.nfvo.resmanagement.common.util.RestfulUtil;
24 import org.onap.vfc.nfvo.resmanagement.common.util.request.RequestUtil;
25 import org.onap.vfc.nfvo.resmanagement.common.util.restclient.RestfulParametes;
26 import org.onap.vfc.nfvo.resmanagement.common.util.restclient.RestfulResponse;
27
28 import net.sf.json.JSONArray;
29 import net.sf.json.JSONObject;
30
31 /**
32  * @author l00345485
33  * @date 2016-10-28
34  */
35 public class VnfEntity implements Serializable {
36
37     /**  */
38     private String id;
39
40     /**  */
41     private String vnfInstanceId;
42
43     /**  */
44     private String vnfInstanceName;
45
46     /**  */
47     private String nsId;
48
49     /**  */
50     private String nsName;
51
52     /**  */
53     private String vnfmId;
54
55     /**  */
56     private String vnfmName;
57
58     /**  */
59     private String vnfPackageName;
60
61     /**  */
62     private String vnfDescriptorName;
63
64     /**  */
65     private String vimId;
66
67     /**  */
68     private String vimName;
69
70     /**  */
71     private String vimTenant;
72
73     /**  */
74     private String jobId;
75
76     /**  */
77     private String vnfStatus;
78
79     /**  */
80     private String vnfType;
81
82     /**  */
83     private Integer maxVm;
84
85     /**  */
86     private Integer maxCpu;
87
88     /**  */
89     private Integer maxDisk;
90
91     /**  */
92     private Integer maxRam;
93
94     /**  */
95     private Integer maxShd;
96
97     /**  */
98     private Integer maxNet;
99
100     /**  */
101     private String name;
102
103     /**  */
104     private String vnfResourceVersion;
105
106     private String vnfmResourceVersion;
107
108     private static final long serialVersionUID = 1L;
109
110     public String getId() {
111         return id;
112     }
113
114     public void setId(String id) {
115         this.id = id;
116     }
117
118     public String getVnfInstanceId() {
119         return vnfInstanceId;
120     }
121
122     public void setVnfInstanceId(String vnfInstanceId) {
123         this.vnfInstanceId = vnfInstanceId;
124     }
125
126     public String getVnfInstanceName() {
127         return vnfInstanceName;
128     }
129
130     public void setVnfInstanceName(String vnfInstanceName) {
131         this.vnfInstanceName = vnfInstanceName;
132     }
133
134     public String getNsId() {
135         return nsId;
136     }
137
138     public void setNsId(String nsId) {
139         this.nsId = nsId;
140     }
141
142     public String getNsName() {
143         return nsName;
144     }
145
146     public void setNsName(String nsName) {
147         this.nsName = nsName;
148     }
149
150     public String getVnfmId() {
151         return vnfmId;
152     }
153
154     public void setVnfmId(String vnfmId) {
155         this.vnfmId = vnfmId;
156     }
157
158     public String getVnfmName() {
159         return vnfmName;
160     }
161
162     public void setVnfmName(String vnfmName) {
163         this.vnfmName = vnfmName;
164     }
165
166     public String getVnfPackageName() {
167         return vnfPackageName;
168     }
169
170     public void setVnfPackageName(String vnfPackageName) {
171         this.vnfPackageName = vnfPackageName;
172     }
173
174     public String getVnfDescriptorName() {
175         return vnfDescriptorName;
176     }
177
178     public void setVnfDescriptorName(String vnfDescriptorName) {
179         this.vnfDescriptorName = vnfDescriptorName;
180     }
181
182     public String getVimId() {
183         return vimId;
184     }
185
186     public void setVimId(String vimId) {
187         this.vimId = vimId;
188     }
189
190     public String getVimName() {
191         return vimName;
192     }
193
194     public void setVimName(String vimName) {
195         this.vimName = vimName;
196     }
197
198     public String getVimTenant() {
199         return vimTenant;
200     }
201
202     public void setVimTenant(String vimTenant) {
203         this.vimTenant = vimTenant;
204     }
205
206     public String getJobId() {
207         return jobId;
208     }
209
210     public void setJobId(String jobId) {
211         this.jobId = jobId;
212     }
213
214     public String getVnfStatus() {
215         return vnfStatus;
216     }
217
218     public void setVnfStatus(String vnfStatus) {
219         this.vnfStatus = vnfStatus;
220     }
221
222     public String getVnfType() {
223         return vnfType;
224     }
225
226     public void setVnfType(String vnfType) {
227         this.vnfType = vnfType;
228     }
229
230     public Integer getMaxVm() {
231         return maxVm;
232     }
233
234     public void setMaxVm(Integer maxVm) {
235         this.maxVm = maxVm;
236     }
237
238     public Integer getMaxCpu() {
239         return maxCpu;
240     }
241
242     public void setMaxCpu(Integer maxCpu) {
243         this.maxCpu = maxCpu;
244     }
245
246     public Integer getMaxDisk() {
247         return maxDisk;
248     }
249
250     public void setMaxDisk(Integer maxDisk) {
251         this.maxDisk = maxDisk;
252     }
253
254     public Integer getMaxRam() {
255         return maxRam;
256     }
257
258     public void setMaxRam(Integer maxRam) {
259         this.maxRam = maxRam;
260     }
261
262     public Integer getMaxShd() {
263         return maxShd;
264     }
265
266     public void setMaxShd(Integer maxShd) {
267         this.maxShd = maxShd;
268     }
269
270     public Integer getMaxNet() {
271         return maxNet;
272     }
273
274     public void setMaxNet(Integer maxNet) {
275         this.maxNet = maxNet;
276     }
277
278     public String getName() {
279         return name;
280     }
281
282     public void setName(String name) {
283         this.name = name;
284     }
285
286     /**
287      * <br>
288      *
289      * @param jsonObject
290      * @return
291      * @since VFC 1.0
292      */
293     public static VnfEntity toEntity(JSONObject jsonObject) {
294         VnfEntity vnfEntity = new VnfEntity();
295         vnfEntity.setId(JsonUtil.getJsonFieldStr(jsonObject, "id"));
296         vnfEntity.setName(JsonUtil.getJsonFieldStr(jsonObject, "name"));
297         vnfEntity.setVnfInstanceId(JsonUtil.getJsonFieldStr(jsonObject, "vnfInstanceId"));
298         vnfEntity.setVnfInstanceName(JsonUtil.getJsonFieldStr(jsonObject, "vnfInstanceName"));
299         vnfEntity.setNsId(JsonUtil.getJsonFieldStr(jsonObject, "nsId"));
300         vnfEntity.setNsName(JsonUtil.getJsonFieldStr(jsonObject, "nsName"));
301         vnfEntity.setVnfmId(JsonUtil.getJsonFieldStr(jsonObject, "vnfmId"));
302         vnfEntity.setVnfmName(JsonUtil.getJsonFieldStr(jsonObject, "vnfmName"));
303         vnfEntity.setVnfPackageName(JsonUtil.getJsonFieldStr(jsonObject, "vnfPackageName"));
304         vnfEntity.setVnfDescriptorName(JsonUtil.getJsonFieldStr(jsonObject, "vnfDescriptorName"));
305         vnfEntity.setVimId(JsonUtil.getJsonFieldStr(jsonObject, "vimId"));
306         vnfEntity.setVimName(JsonUtil.getJsonFieldStr(jsonObject, "vimName"));
307         vnfEntity.setVimTenant(JsonUtil.getJsonFieldStr(jsonObject, "vimTenant"));
308         vnfEntity.setJobId(JsonUtil.getJsonFieldStr(jsonObject, "jobId"));
309         vnfEntity.setVnfStatus(JsonUtil.getJsonFieldStr(jsonObject, "vnfStatus"));
310         vnfEntity.setVnfType(JsonUtil.getJsonFieldStr(jsonObject, "vnfType"));
311         vnfEntity.setMaxVm(JsonUtil.getJsonFieldInt(jsonObject, "maxVm"));
312         vnfEntity.setMaxCpu(JsonUtil.getJsonFieldInt(jsonObject, "maxCpu"));
313         vnfEntity.setMaxDisk(JsonUtil.getJsonFieldInt(jsonObject, "maxDisk"));
314         vnfEntity.setMaxRam(JsonUtil.getJsonFieldInt(jsonObject, "maxRam"));
315         vnfEntity.setMaxShd(JsonUtil.getJsonFieldInt(jsonObject, "maxShd"));
316         vnfEntity.setMaxNet(JsonUtil.getJsonFieldInt(jsonObject, "maxNet"));
317         vnfEntity.setVnfResourceVersion(JsonUtil.getJsonFieldStr(jsonObject, "resource-version"));
318         return vnfEntity;
319     }
320
321     public static VnfEntity toEntityFromAai(JSONObject jsonObject) {
322         VnfEntity vnfEntity = new VnfEntity();
323         vnfEntity.setId(JsonUtil.getJsonFieldStr(jsonObject, "vnf-id"));
324         vnfEntity.setVnfInstanceId(JsonUtil.getJsonFieldStr(jsonObject, "vnf-id"));
325         vnfEntity.setVnfInstanceName(JsonUtil.getJsonFieldStr(jsonObject, "vnf-name"));
326         vnfEntity.setName(JsonUtil.getJsonFieldStr(jsonObject, "vnf-name2"));
327         vnfEntity.setNsId(JsonUtil.getJsonFieldStr(jsonObject, "service-id"));
328         vnfEntity.setVnfStatus(JsonUtil.getJsonFieldStr(jsonObject, "orchestration-status"));
329         vnfEntity.setVnfType(JsonUtil.getJsonFieldStr(jsonObject, "vnf-type"));
330         vnfEntity.setVnfPackageName(JsonUtil.getJsonFieldStr(jsonObject, "vnf-package-name"));
331         vnfEntity.setVnfDescriptorName(JsonUtil.getJsonFieldStr(jsonObject, "vnf-discriptor-name"));
332         vnfEntity.setJobId(JsonUtil.getJsonFieldStr(jsonObject, "job-id"));
333         vnfEntity.setMaxCpu(JsonUtil.getJsonFieldInt(jsonObject, "vcpu"));
334         vnfEntity.setMaxDisk(JsonUtil.getJsonFieldInt(jsonObject, "vdisk"));
335         vnfEntity.setMaxRam(JsonUtil.getJsonFieldInt(jsonObject, "vmemory"));
336         vnfEntity.setMaxNet(JsonUtil.getJsonFieldInt(jsonObject, "vnet"));
337         vnfEntity.setMaxShd(JsonUtil.getJsonFieldInt(jsonObject, "nshd"));
338         vnfEntity.setMaxVm(JsonUtil.getJsonFieldInt(jsonObject, "nvm"));
339         vnfEntity.setVnfResourceVersion(JsonUtil.getJsonFieldStr(jsonObject, "resource-version"));
340         return vnfEntity;
341     }
342
343     public static void updateEntityWithVnfmInfo(VnfEntity vnfEntity, JSONObject jsonObject) {
344         vnfEntity.setVnfmId(JsonUtil.getJsonFieldStr(jsonObject, "vnfm-id"));
345         vnfEntity.setVnfmName(JsonUtil.getJsonFieldStr(jsonObject, "vnfm-name"));
346         vnfEntity.setVnfmResourceVersion(JsonUtil.getJsonFieldStr(jsonObject, "resource-version"));
347
348         // vim id stores the info as vim-id: <cloud-region-owner>_<cloud-region-id>
349         // and esr-sysstem-info contains vim info.
350         String str = JsonUtil.getJsonFieldStr(jsonObject, "vim-id");
351         String[] result = str.split("_");
352         RestfulParametes restfulParametes = new RestfulParametes();
353         restfulParametes.setHeaderMap(RequestUtil.getAAIHeaderMap());
354         RestfulResponse restfulResponse = RestfulUtil
355                 .getRestfulResponse("https://192.168.17.24:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/"
356         + result[0] + "/" + result[1] + "/esr-system-info-list/esr-system-info", restfulParametes, "get");
357
358         if(restfulResponse.isSuccess()) {
359             vnfEntity.setVimId(JsonUtil.getJsonFieldStr(jsonObject, "esr-system-info-id"));
360             vnfEntity.setVimName(JsonUtil.getJsonFieldStr(jsonObject, "system-name"));
361             vnfEntity.setVimTenant(JsonUtil.getJsonFieldStr(jsonObject, "default-tenant"));
362         }
363     }
364
365     public static void updateEntityWithNsInfo(VnfEntity vnfEntity, JSONObject jsonObject) {
366         vnfEntity.setNsId(JsonUtil.getJsonFieldStr(jsonObject, "service-instance-id"));
367         vnfEntity.setNsName(JsonUtil.getJsonFieldStr(jsonObject, "service-instance-name"));
368     }
369
370     public String toStringForAai() {
371         JSONObject vnfResJson = new JSONObject();
372         vnfResJson.put("vnf-id", StringUtils.trimToEmpty(this.getId()));
373         vnfResJson.put("vnf-name", StringUtils.trimToEmpty(this.getVnfInstanceName()));
374         vnfResJson.put("vnf-name2", StringUtils.trimToEmpty(this.getName()));
375         vnfResJson.put("service-id", StringUtils.trimToEmpty(this.getNsId()));
376         vnfResJson.put("vnf-type", StringUtils.trimToEmpty(this.getVnfType()));
377         vnfResJson.put("vcpu", this.getMaxCpu());
378         vnfResJson.put("vdisk", this.getMaxDisk());
379         vnfResJson.put("vmemory", this.getMaxRam());
380         vnfResJson.put("nshd", this.getMaxShd());
381         vnfResJson.put("nvm", this.getMaxVm());
382         vnfResJson.put("nnet", this.getMaxNet());
383         vnfResJson.put("vnf-package-name", StringUtils.trimToEmpty(this.getVnfPackageName()));
384         vnfResJson.put("vnf-discriptor-name", StringUtils.trimToEmpty(this.getVnfDescriptorName()));
385         vnfResJson.put("job-id", StringUtils.trimToEmpty(this.getJobId()));
386         vnfResJson.put("orchestration-status", StringUtils.trimToEmpty(this.getVnfStatus()));
387
388         JSONObject relationshipDataEntry = new JSONObject();
389         relationshipDataEntry.put("relationship-key", "esr-vnfm.vnfm-id");
390         relationshipDataEntry.put("relationship-value", this.getVnfmId());
391
392         JSONArray relationshipData1 = new JSONArray();
393         JSONObject customer = new JSONObject();
394         customer.put("relationship-key", "customer.global-customer-id");
395         customer.put("relationship-value", "ResManagement-Customer-id");
396         JSONObject service = new JSONObject();
397         service.put("relationship-key", "service-subscription.service-type");
398         service.put("relationship-value", "ResManagement-NSID-Service-Type");
399         JSONObject serviceInstance = new JSONObject();
400         serviceInstance.put("relationship-key", "service-instance.service-instance-id");
401         serviceInstance.put("relationship-value", this.getNsId());
402         relationshipData1.add(customer);
403         relationshipData1.add(service);
404         relationshipData1.add(serviceInstance);
405
406
407         JSONArray relationshipData = new JSONArray();
408         relationshipData.add(relationshipDataEntry);
409         JSONArray relationship = new JSONArray();
410         JSONObject relationshipEntry = new JSONObject();
411         relationshipEntry.put("related-to", "esr-vnfm");
412         relationshipEntry.put("relationship-data", relationshipData);
413         JSONObject relationshipEntry1 = new JSONObject();
414         relationshipEntry1.put("related-to", "service-instance");
415         relationshipEntry1.put("relationship-data", relationshipData1);
416         relationship.add(relationshipEntry);
417         relationship.add(relationshipEntry1);
418
419         JSONObject relation = new JSONObject();
420         relation.put("relationship", relationship);
421
422         vnfResJson.put("relationship-list", relation);
423         return vnfResJson.toString();
424     }
425
426     public String toEsrVnfmStringForAai() {
427         JSONObject esrVnfm = new JSONObject();
428         esrVnfm.put("vnfm-id", StringUtils.trimToEmpty(this.getVnfmId()));
429         esrVnfm.put("vim-id", StringUtils.trimToEmpty(this.getVimId()));
430         return esrVnfm.toString();
431     }
432
433     @Override
434     public String toString() {
435         JSONObject vnfResJson = new JSONObject();
436         vnfResJson.put("id", StringUtils.trimToEmpty(this.getId()));
437         vnfResJson.put("name", StringUtils.trimToEmpty(this.getName()));
438         vnfResJson.put("vnfInstanceId", StringUtils.trimToEmpty(this.getName()));
439         vnfResJson.put("vnfInstanceName", StringUtils.trimToEmpty(this.getName()));
440         vnfResJson.put("nsId", StringUtils.trimToEmpty(this.getName()));
441         vnfResJson.put("nsName", StringUtils.trimToEmpty(this.getName()));
442         vnfResJson.put("vnfmId", StringUtils.trimToEmpty(this.getName()));
443         vnfResJson.put("vnfmName", StringUtils.trimToEmpty(this.getName()));
444         vnfResJson.put("vnfPackageName", StringUtils.trimToEmpty(this.getId()));
445         vnfResJson.put("vnfDescriptorName", StringUtils.trimToEmpty(this.getName()));
446         vnfResJson.put("vimId", StringUtils.trimToEmpty(this.getName()));
447         vnfResJson.put("vimName", StringUtils.trimToEmpty(this.getName()));
448         vnfResJson.put("vimTenant", StringUtils.trimToEmpty(this.getName()));
449         vnfResJson.put("jobId", StringUtils.trimToEmpty(this.getName()));
450         vnfResJson.put("vnfStatus", StringUtils.trimToEmpty(this.getName()));
451         vnfResJson.put("vnfType", StringUtils.trimToEmpty(this.getName()));
452         vnfResJson.put("maxVm", StringUtils.trimToEmpty(this.getName()));
453         vnfResJson.put("maxCpu", StringUtils.trimToEmpty(this.getName()));
454         vnfResJson.put("maxDisk", StringUtils.trimToEmpty(this.getName()));
455         vnfResJson.put("maxRam", StringUtils.trimToEmpty(this.getName()));
456         vnfResJson.put("maxShd", StringUtils.trimToEmpty(this.getName()));
457         vnfResJson.put("maxNet", StringUtils.trimToEmpty(this.getName()));
458         return vnfResJson.toString();
459     }
460
461     public String getVnfmResourceVersion() {
462         return vnfmResourceVersion;
463     }
464
465     public void setVnfmResourceVersion(String vnfmResourceVersion) {
466         this.vnfmResourceVersion = vnfmResourceVersion;
467     }
468
469     public String getVnfResourceVersion() {
470         return vnfResourceVersion;
471     }
472
473     public void setVnfResourceVersion(String vnfResourceVersion) {
474         this.vnfResourceVersion = vnfResourceVersion;
475     }
476 }