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.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;
28 import net.sf.json.JSONArray;
29 import net.sf.json.JSONObject;
35 public class VnfEntity implements Serializable {
41 private String vnfInstanceId;
44 private String vnfInstanceName;
50 private String nsName;
53 private String vnfmId;
56 private String vnfmName;
59 private String vnfPackageName;
62 private String vnfDescriptorName;
68 private String vimName;
71 private String vimTenant;
77 private String vnfStatus;
80 private String vnfType;
83 private Integer maxVm;
86 private Integer maxCpu;
89 private Integer maxDisk;
92 private Integer maxRam;
95 private Integer maxShd;
98 private Integer maxNet;
104 private String vnfResourceVersion;
106 private String vnfmResourceVersion;
108 private static final long serialVersionUID = 1L;
110 public String getId() {
114 public void setId(String id) {
118 public String getVnfInstanceId() {
119 return vnfInstanceId;
122 public void setVnfInstanceId(String vnfInstanceId) {
123 this.vnfInstanceId = vnfInstanceId;
126 public String getVnfInstanceName() {
127 return vnfInstanceName;
130 public void setVnfInstanceName(String vnfInstanceName) {
131 this.vnfInstanceName = vnfInstanceName;
134 public String getNsId() {
138 public void setNsId(String nsId) {
142 public String getNsName() {
146 public void setNsName(String nsName) {
147 this.nsName = nsName;
150 public String getVnfmId() {
154 public void setVnfmId(String vnfmId) {
155 this.vnfmId = vnfmId;
158 public String getVnfmName() {
162 public void setVnfmName(String vnfmName) {
163 this.vnfmName = vnfmName;
166 public String getVnfPackageName() {
167 return vnfPackageName;
170 public void setVnfPackageName(String vnfPackageName) {
171 this.vnfPackageName = vnfPackageName;
174 public String getVnfDescriptorName() {
175 return vnfDescriptorName;
178 public void setVnfDescriptorName(String vnfDescriptorName) {
179 this.vnfDescriptorName = vnfDescriptorName;
182 public String getVimId() {
186 public void setVimId(String vimId) {
190 public String getVimName() {
194 public void setVimName(String vimName) {
195 this.vimName = vimName;
198 public String getVimTenant() {
202 public void setVimTenant(String vimTenant) {
203 this.vimTenant = vimTenant;
206 public String getJobId() {
210 public void setJobId(String jobId) {
214 public String getVnfStatus() {
218 public void setVnfStatus(String vnfStatus) {
219 this.vnfStatus = vnfStatus;
222 public String getVnfType() {
226 public void setVnfType(String vnfType) {
227 this.vnfType = vnfType;
230 public Integer getMaxVm() {
234 public void setMaxVm(Integer maxVm) {
238 public Integer getMaxCpu() {
242 public void setMaxCpu(Integer maxCpu) {
243 this.maxCpu = maxCpu;
246 public Integer getMaxDisk() {
250 public void setMaxDisk(Integer maxDisk) {
251 this.maxDisk = maxDisk;
254 public Integer getMaxRam() {
258 public void setMaxRam(Integer maxRam) {
259 this.maxRam = maxRam;
262 public Integer getMaxShd() {
266 public void setMaxShd(Integer maxShd) {
267 this.maxShd = maxShd;
270 public Integer getMaxNet() {
274 public void setMaxNet(Integer maxNet) {
275 this.maxNet = maxNet;
278 public String getName() {
282 public void setName(String name) {
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"));
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"));
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"));
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");
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"));
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"));
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()));
388 JSONObject relationshipDataEntry = new JSONObject();
389 relationshipDataEntry.put("relationship-key", "esr-vnfm.vnfm-id");
390 relationshipDataEntry.put("relationship-value", this.getVnfmId());
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);
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);
419 JSONObject relation = new JSONObject();
420 relation.put("relationship", relationship);
422 vnfResJson.put("relationship-list", relation);
423 return vnfResJson.toString();
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();
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();
461 public String getVnfmResourceVersion() {
462 return vnfmResourceVersion;
465 public void setVnfmResourceVersion(String vnfmResourceVersion) {
466 this.vnfmResourceVersion = vnfmResourceVersion;
469 public String getVnfResourceVersion() {
470 return vnfResourceVersion;
473 public void setVnfResourceVersion(String vnfResourceVersion) {
474 this.vnfResourceVersion = vnfResourceVersion;