2 * Copyright 2016 Huawei Technologies Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.onap.vfc.nfvo.resmanagement.service.entity;
19 import java.io.Serializable;
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;
30 import net.sf.json.JSONArray;
31 import net.sf.json.JSONObject;
37 public class VnfEntity implements Serializable {
43 private String vnfInstanceId;
46 private String vnfInstanceName;
52 private String nsName;
55 private String vnfmId;
58 private String vnfmName;
61 private String vnfPackageName;
64 private String vnfDescriptorName;
70 private String vimName;
73 private String vimTenant;
79 private String vnfStatus;
82 private String vnfType;
85 private Integer maxVm;
88 private Integer maxCpu;
91 private Integer maxDisk;
94 private Integer maxRam;
97 private Integer maxShd;
100 private Integer maxNet;
106 private String vnfResourceVersion;
108 private String vnfmResourceVersion;
110 private static final long serialVersionUID = 1L;
112 public String getId() {
116 public void setId(String id) {
120 public String getVnfInstanceId() {
121 return vnfInstanceId;
124 public void setVnfInstanceId(String vnfInstanceId) {
125 this.vnfInstanceId = vnfInstanceId;
128 public String getVnfInstanceName() {
129 return vnfInstanceName;
132 public void setVnfInstanceName(String vnfInstanceName) {
133 this.vnfInstanceName = vnfInstanceName;
136 public String getNsId() {
140 public void setNsId(String nsId) {
144 public String getNsName() {
148 public void setNsName(String nsName) {
149 this.nsName = nsName;
152 public String getVnfmId() {
156 public void setVnfmId(String vnfmId) {
157 this.vnfmId = vnfmId;
160 public String getVnfmName() {
164 public void setVnfmName(String vnfmName) {
165 this.vnfmName = vnfmName;
168 public String getVnfPackageName() {
169 return vnfPackageName;
172 public void setVnfPackageName(String vnfPackageName) {
173 this.vnfPackageName = vnfPackageName;
176 public String getVnfDescriptorName() {
177 return vnfDescriptorName;
180 public void setVnfDescriptorName(String vnfDescriptorName) {
181 this.vnfDescriptorName = vnfDescriptorName;
184 public String getVimId() {
188 public void setVimId(String vimId) {
192 public String getVimName() {
196 public void setVimName(String vimName) {
197 this.vimName = vimName;
200 public String getVimTenant() {
204 public void setVimTenant(String vimTenant) {
205 this.vimTenant = vimTenant;
208 public String getJobId() {
212 public void setJobId(String jobId) {
216 public String getVnfStatus() {
220 public void setVnfStatus(String vnfStatus) {
221 this.vnfStatus = vnfStatus;
224 public String getVnfType() {
228 public void setVnfType(String vnfType) {
229 this.vnfType = vnfType;
232 public Integer getMaxVm() {
236 public void setMaxVm(Integer maxVm) {
240 public Integer getMaxCpu() {
244 public void setMaxCpu(Integer maxCpu) {
245 this.maxCpu = maxCpu;
248 public Integer getMaxDisk() {
252 public void setMaxDisk(Integer maxDisk) {
253 this.maxDisk = maxDisk;
256 public Integer getMaxRam() {
260 public void setMaxRam(Integer maxRam) {
261 this.maxRam = maxRam;
264 public Integer getMaxShd() {
268 public void setMaxShd(Integer maxShd) {
269 this.maxShd = maxShd;
272 public Integer getMaxNet() {
276 public void setMaxNet(Integer maxNet) {
277 this.maxNet = maxNet;
280 public String getName() {
284 public void setName(String name) {
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"));
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"));
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"));
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();
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");
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"));
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"));
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()));
398 JSONObject relationshipDataEntry = new JSONObject();
399 relationshipDataEntry.put("relationship-key", "esr-vnfm.vnfm-id");
400 relationshipDataEntry.put("relationship-value", this.getVnfmId());
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);
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);
429 JSONObject relation = new JSONObject();
430 relation.put("relationship", relationship);
432 vnfResJson.put("relationship-list", relation);
433 return vnfResJson.toString();
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();
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();
471 public String getVnfmResourceVersion() {
472 return vnfmResourceVersion;
475 public void setVnfmResourceVersion(String vnfmResourceVersion) {
476 this.vnfmResourceVersion = vnfmResourceVersion;
479 public String getVnfResourceVersion() {
480 return vnfResourceVersion;
483 public void setVnfResourceVersion(String vnfResourceVersion) {
484 this.vnfResourceVersion = vnfResourceVersion;