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