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