2 * Copyright 2016-2017 ZTE Corporation.
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.
16 package org.onap.usecaseui.server.service.lcm.impl;
18 import org.onap.usecaseui.server.bean.lcm.VfNsPackageInfo;
19 import org.onap.usecaseui.server.constant.Constant;
20 import org.onap.usecaseui.server.service.lcm.PackageDistributionService;
21 import org.onap.usecaseui.server.service.lcm.domain.sdc.SDCCatalogService;
22 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
23 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.Vnf;
24 import org.onap.usecaseui.server.service.lcm.domain.sdc.exceptions.SDCCatalogException;
25 import org.onap.usecaseui.server.service.lcm.domain.vfc.VfcService;
26 import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
27 import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
28 import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
29 import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
30 import org.onap.usecaseui.server.service.lcm.domain.vfc.exceptions.VfcException;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33 import org.springframework.context.annotation.EnableAspectJAutoProxy;
34 import org.springframework.stereotype.Service;
36 import okhttp3.RequestBody;
37 import okhttp3.ResponseBody;
38 import retrofit2.Response;
40 import java.io.IOException;
41 import java.util.Collections;
42 import java.util.List;
44 import javax.servlet.http.HttpServletRequest;
46 import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.*;
47 import static org.onap.usecaseui.server.util.RestfulServices.create;
48 import static org.onap.usecaseui.server.util.RestfulServices.extractBody;
50 @Service("PackageDistributionService")
51 @org.springframework.context.annotation.Configuration
52 @EnableAspectJAutoProxy
53 public class DefaultPackageDistributionService implements PackageDistributionService {
55 private static final Logger logger = LoggerFactory.getLogger(DefaultPackageDistributionService.class);
57 private SDCCatalogService sdcCatalogService;
59 private VfcService vfcService;
61 public DefaultPackageDistributionService() {
62 this(create(SDCCatalogService.class), create(VfcService.class));
65 public DefaultPackageDistributionService(SDCCatalogService sdcCatalogService, VfcService vfcService) {
66 this.sdcCatalogService = sdcCatalogService;
67 this.vfcService = vfcService;
71 public VfNsPackageInfo retrievePackageInfo() {
73 List<SDCServiceTemplate> nsTemplate = getNsTemplate();
74 List<Vnf> vnf = getVFResource();
75 return new VfNsPackageInfo(nsTemplate, vnf);
76 } catch (IOException e) {
77 throw new SDCCatalogException("SDC Service is not available!", e);
81 private List<Vnf> getVFResource() throws IOException {
82 Response<List<Vnf>> response = sdcCatalogService.listResources(RESOURCETYPE_VF).execute();
83 if (response.isSuccessful()) {
84 return response.body();
86 logger.info(String.format("Can not get VF resources[code=%s, message=%s]", response.code(), response.message()));
87 return Collections.emptyList();
91 private List<SDCServiceTemplate> getNsTemplate() throws IOException {
92 Response<List<SDCServiceTemplate>> response = sdcCatalogService.listServices(CATEGORY_NS, DISTRIBUTION_STATUS_DISTRIBUTED).execute();
93 if (response.isSuccessful()) {
94 return response.body();
96 logger.info(String.format("Can not get NS services[code=%s, message=%s]", response.code(), response.message()));
97 return Collections.emptyList();
102 public DistributionResult postNsPackage(Csar csar) {
104 Response<DistributionResult> response = vfcService.distributeNsPackage(csar).execute();
105 if (response.isSuccessful()) {
106 return response.body();
108 logger.info(String.format("Can not post NS packages[code=%s, message=%s]", response.code(), response.message()));
109 throw new VfcException("VFC service is not available!");
111 } catch (IOException e) {
112 throw new VfcException("VFC service is not available!", e);
117 public Job postVfPackage(Csar csar) {
119 Response<Job> response = vfcService.distributeVnfPackage(csar).execute();
120 if (response.isSuccessful()) {
121 return response.body();
123 logger.info(String.format("Can not get VF packages[code=%s, message=%s]", response.code(), response.message()));
124 throw new VfcException("VFC service is not available!");
126 } catch (IOException e) {
127 throw new VfcException("VFC service is not available!", e);
132 public JobStatus getJobStatus(String jobId, String responseId) {
134 Response<JobStatus> response = vfcService.getJobStatus(jobId, responseId).execute();
135 if (response.isSuccessful()) {
136 return response.body();
138 logger.info(String.format("Can not get Job status[code=%s, message=%s]", response.code(), response.message()));
139 throw new VfcException("VFC service is not available!");
141 } catch (IOException e) {
142 throw new VfcException("VFC service is not available!", e);
147 public DistributionResult deleteNsPackage(String csarId) {
149 Response<DistributionResult> response = vfcService.deleteNsPackage(csarId).execute();
150 if (response.isSuccessful()) {
151 return response.body();
153 logger.info(String.format("Can not delete NS packages[code=%s, message=%s]", response.code(), response.message()));
154 throw new VfcException("VFC service is not available!");
156 } catch (IOException e) {
157 throw new VfcException("VFC service is not available!", e);
162 public Job deleteVfPackage(String csarId) {
164 Response<Job> response = vfcService.deleteVnfPackage(csarId).execute();
165 if (response.isSuccessful()) {
166 return response.body();
168 logger.info(String.format("Can not delete VF packages[code=%s, message=%s]", response.code(), response.message()));
169 throw new VfcException("VFC service is not available!");
171 } catch (IOException e) {
172 throw new VfcException("VFC service is not available!", e);
177 public String getVnfPackages() {
180 logger.info("vfc getVnfPackages is starting!");
181 Response<ResponseBody> response = this.vfcService.getVnfPackages().execute();
182 logger.info("vfc getVnfPackages has finished!");
183 if (response.isSuccessful()) {
184 result=new String(response.body().bytes());
186 logger.info(String.format("Can not get getVnfPackages[code=%s, message=%s]", response.code(), response.message()));
187 result=Constant.CONSTANT_FAILED;;
189 } catch (IOException e) {
190 logger.error("getVnfPackages occur exception:"+e);
191 result=Constant.CONSTANT_FAILED;;
197 public String getNetworkServicePackages() {
201 logger.info("vfc getNetworkServicePackages is starting!");
202 Response<ResponseBody> response = this.vfcService.getNetworkServicePackages().execute();
203 logger.info("vfc getNetworkServicePackages has finished!");
204 if (response.isSuccessful()) {
205 result=new String(response.body().bytes());
207 logger.info(String.format("Can not get getNetworkServicePackages[code=%s, message=%s]", response.code(), response.message()));
208 result=Constant.CONSTANT_FAILED;;
210 } catch (IOException e) {
211 logger.error("getNetworkServicePackages occur exception:"+e);
212 result=Constant.CONSTANT_FAILED;;
219 public String getPnfPackages() {
223 logger.info("vfc getPnfPackages is starting!");
224 Response<ResponseBody> response = this.vfcService.getPnfPackages().execute();
225 logger.info("vfc getPnfPackages has finished!");
226 if (response.isSuccessful()) {
227 result=new String(response.body().bytes());
229 logger.info(String.format("Can not get getPnfPackages[code=%s, message=%s]", response.code(), response.message()));
230 result=Constant.CONSTANT_FAILED;;
232 } catch (IOException e) {
233 logger.error("getPnfPackages occur exception:"+e);
234 result=Constant.CONSTANT_FAILED;;
241 public String downLoadNsPackage(String nsdInfoId) {
245 logger.info("vfc downLoadNsPackage is starting!");
246 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(nsdInfoId).execute();
247 logger.info("vfc downLoadNsPackage has finished!");
248 if (response.isSuccessful()) {
249 result=Constant.CONSTANT_SUCCESS;
251 logger.info(String.format("Can not get downLoadNsPackage[code=%s, message=%s]", response.code(), response.message()));
252 result=Constant.CONSTANT_FAILED;;
254 } catch (IOException e) {
255 logger.error("downLoadNsPackage occur exception:"+e);
256 result=Constant.CONSTANT_FAILED;;
263 public String downLoadPnfPackage(String pnfdInfoId) {
267 logger.info("vfc downLoadPnfPackage is starting!");
268 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(pnfdInfoId).execute();
269 logger.info("vfc downLoadPnfPackage has finished!");
270 if (response.isSuccessful()) {
271 result=Constant.CONSTANT_SUCCESS;
273 logger.info(String.format("Can not get downLoadPnfPackage[code=%s, message=%s]", response.code(), response.message()));
274 result=Constant.CONSTANT_FAILED;;
276 } catch (IOException e) {
277 logger.error("downLoadPnfPackage occur exception:"+e);
278 result=Constant.CONSTANT_FAILED;;
285 public String downLoadVnfPackage(String vnfPkgId) {
289 logger.info("vfc downLoadVnfPackage is starting!");
290 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(vnfPkgId).execute();
291 logger.info("vfc downLoadVnfPackage has finished!");
292 if (response.isSuccessful()) {
293 result=Constant.CONSTANT_SUCCESS;
295 logger.info(String.format("Can not get downLoadVnfPackage[code=%s, message=%s]", response.code(), response.message()));
296 result=Constant.CONSTANT_FAILED;;
298 } catch (IOException e) {
299 logger.error("downLoadVnfPackage occur exception:"+e);
300 result=Constant.CONSTANT_FAILED;;
307 public String deleteNsdPackage(String nsdInfoId) {
311 logger.info("vfc deleteNsdPackage is starting!");
312 Response<ResponseBody> response = this.vfcService.deleteNsdPackage(nsdInfoId).execute();
313 logger.info("vfc deleteNsdPackage has finished!");
314 if (response.isSuccessful()) {
315 result=Constant.CONSTANT_SUCCESS;
317 logger.info(String.format("Can not get deleteNsdPackage[code=%s, message=%s]", response.code(), response.message()));
318 result=Constant.CONSTANT_FAILED;;
320 } catch (IOException e) {
321 logger.error("deleteNsdPackage occur exception:"+e);
322 result=Constant.CONSTANT_FAILED;;
329 public String deleteVnfPackage(String vnfPkgId) {
333 logger.info("vfc deleteVnfPackage is starting!");
334 Response<ResponseBody> response = this.vfcService.deleteVnfdPackage(vnfPkgId).execute();
335 logger.info("vfc deleteVnfPackage has finished!");
336 if (response.isSuccessful()) {
337 result=Constant.CONSTANT_SUCCESS;
339 logger.info(String.format("Can not get deleteNsdPackage[code=%s, message=%s]", response.code(), response.message()));
340 result=Constant.CONSTANT_FAILED;;
342 } catch (IOException e) {
343 logger.error("deleteVnfPackage occur exception:"+e);
344 result=Constant.CONSTANT_FAILED;;
351 public String deletePnfPackage(String pnfdInfoId) {
355 logger.info("vfc deletePnfPackage is starting!");
356 Response<ResponseBody> response = this.vfcService.deletePnfdPackage(pnfdInfoId).execute();
357 logger.info("vfc deletePnfPackage has finished!");
358 if (response.isSuccessful()) {
359 result=Constant.CONSTANT_SUCCESS;
361 logger.info(String.format("Can not get deletePnfPackage[code=%s, message=%s]", response.code(), response.message()));
362 result=Constant.CONSTANT_FAILED;;
364 } catch (IOException e) {
365 logger.error("deletePnfPackage occur exception:"+e);
366 result=Constant.CONSTANT_FAILED;;
373 public String getNetworkServiceInfo() {
377 logger.info("vfc getNetworkServiceInfo is starting!");
378 Response<ResponseBody> response = this.vfcService.getNetworkServiceInfo().execute();
379 logger.info("vfc getNetworkServiceInfo has finished!");
380 if (response.isSuccessful()) {
381 result=new String(response.body().bytes());
383 logger.info(String.format("Can not get getNetworkServiceInfo[code=%s, message=%s]", response.code(), response.message()));
384 result=Constant.CONSTANT_FAILED;;
386 } catch (IOException e) {
387 logger.error("getNetworkServiceInfo occur exception:"+e);
388 result=Constant.CONSTANT_FAILED;;
395 public String createNetworkServiceInstance(HttpServletRequest request) {
398 logger.info("aai createNetworkServiceInstance is starting");
399 RequestBody requestBody = extractBody(request);
400 Response<ResponseBody> response = vfcService.createNetworkServiceInstance(requestBody).execute();
401 logger.info("aai createNetworkServiceInstance has finished");
402 if (response.isSuccessful()) {
403 result=new String(response.body().bytes());
405 result=Constant.CONSTANT_FAILED;
406 logger.error(String.format("Can not createNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
408 } catch (Exception e) {
409 result=Constant.CONSTANT_FAILED;
410 logger.error("createNetworkServiceInstance occur exception:"+e);
416 public String deleteNetworkServiceInstance(String nsInstanceId) {
420 logger.info("vfc deleteNetworkServiceInstance is starting!");
421 Response<ResponseBody> response = this.vfcService.deleteNetworkServiceInstance(nsInstanceId).execute();
422 logger.info("vfc deleteNetworkServiceInstance has finished!");
423 if (response.isSuccessful()) {
424 result=Constant.CONSTANT_SUCCESS;
426 logger.info(String.format("Can not get deleteNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
427 result=Constant.CONSTANT_FAILED;;
429 } catch (IOException e) {
430 logger.error("deleteNetworkServiceInstance occur exception:"+e);
431 result=Constant.CONSTANT_FAILED;;
438 public String terminateNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
441 logger.info("aai terminateNetworkServiceInstance is starting");
442 RequestBody requestBody = extractBody(request);
443 Response<ResponseBody> response = vfcService.terminateNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
444 logger.info("aai terminateNetworkServiceInstance has finished");
445 if (response.isSuccessful()) {
446 result=new String(response.body().bytes());
448 result=Constant.CONSTANT_FAILED;
449 logger.error(String.format("Can not terminateNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
451 } catch (Exception e) {
452 result=Constant.CONSTANT_FAILED;
453 logger.error("terminateNetworkServiceInstance occur exception:"+e);
459 public String healNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
462 logger.info("aai healNetworkServiceInstance is starting");
463 RequestBody requestBody = extractBody(request);
464 Response<ResponseBody> response = vfcService.healNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
465 logger.info("aai healNetworkServiceInstance has finished");
466 if (response.isSuccessful()) {
467 result=new String(response.body().bytes());
469 result=Constant.CONSTANT_FAILED;
470 logger.error(String.format("Can not healNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
472 } catch (Exception e) {
473 result=Constant.CONSTANT_FAILED;
474 logger.error("healNetworkServiceInstance occur exception:"+e);
480 public String scaleNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
483 logger.info("aai scaleNetworkServiceInstance is starting");
484 RequestBody requestBody = extractBody(request);
485 Response<ResponseBody> response = vfcService.scaleNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
486 logger.info("aai scaleNetworkServiceInstance has finished");
487 if (response.isSuccessful()) {
488 result=new String(response.body().bytes());
490 result=Constant.CONSTANT_FAILED;
491 logger.error(String.format("Can not scaleNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
493 } catch (Exception e) {
494 result=Constant.CONSTANT_FAILED;
495 logger.error("scaleNetworkServiceInstance occur exception:"+e);
501 public String createNetworkServiceData(HttpServletRequest request) {
504 logger.info("aai createNetworkServiceData is starting");
505 RequestBody requestBody = extractBody(request);
506 Response<ResponseBody> response = vfcService.createNetworkServiceData(requestBody).execute();
507 logger.info("aai createNetworkServiceData has finished");
508 if (response.isSuccessful()) {
509 result=new String(response.body().bytes());
511 result=Constant.CONSTANT_FAILED;
512 logger.error(String.format("Can not createNetworkServiceData[code=%s, message=%s]", response.code(), response.message()));
514 } catch (Exception e) {
515 result=Constant.CONSTANT_FAILED;
516 logger.error("createNetworkServiceData occur exception:"+e);
522 public String createVnfData(HttpServletRequest request) {
525 logger.info("aai createVnfData is starting");
526 RequestBody requestBody = extractBody(request);
527 Response<ResponseBody> response = vfcService.createVnfData(requestBody).execute();
528 logger.info("aai createVnfData has finished");
529 if (response.isSuccessful()) {
530 result=new String(response.body().bytes());
532 result=Constant.CONSTANT_FAILED;
533 logger.error(String.format("Can not createVnfData[code=%s, message=%s]", response.code(), response.message()));
535 } catch (Exception e) {
536 result=Constant.CONSTANT_FAILED;
537 logger.error("createVnfData occur exception:"+e);
543 public String createPnfData(HttpServletRequest request) {
546 logger.info("aai createPnfData is starting");
547 RequestBody requestBody = extractBody(request);
548 Response<ResponseBody> response = vfcService.createPnfData(requestBody).execute();
549 logger.info("aai createPnfData has finished");
550 if (response.isSuccessful()) {
551 result=new String(response.body().bytes());
553 result=Constant.CONSTANT_FAILED;
554 logger.error(String.format("Can not createPnfData[code=%s, message=%s]", response.code(), response.message()));
556 } catch (Exception e) {
557 result=Constant.CONSTANT_FAILED;
558 logger.error("createPnfData occur exception:"+e);
564 public String getNsdInfo(String nsdInfoId) {
568 logger.info("vfc getNsdInfo is starting!");
569 Response<ResponseBody> response = this.vfcService.getNsdInfo(nsdInfoId).execute();
570 logger.info("vfc getNsdInfo has finished!");
571 if (response.isSuccessful()) {
572 result=Constant.CONSTANT_SUCCESS;
574 logger.info(String.format("Can not get getNsdInfo[code=%s, message=%s]", response.code(), response.message()));
575 result=Constant.CONSTANT_FAILED;;
577 } catch (IOException e) {
578 logger.error("getNsdInfo occur exception:"+e);
579 result=Constant.CONSTANT_FAILED;;
586 public String getVnfInfo(String vnfPkgId) {
590 logger.info("vfc getVnfInfo is starting!");
591 Response<ResponseBody> response = this.vfcService.getVnfInfo(vnfPkgId).execute();
592 logger.info("vfc getVnfInfo has finished!");
593 if (response.isSuccessful()) {
594 result=Constant.CONSTANT_SUCCESS;
596 logger.info(String.format("Can not get getVnfInfo[code=%s, message=%s]", response.code(), response.message()));
597 result=Constant.CONSTANT_FAILED;;
599 } catch (IOException e) {
600 logger.error("getVnfInfo occur exception:"+e);
601 result=Constant.CONSTANT_FAILED;;
608 public String getPnfInfo(String pnfdInfoId) {
612 logger.info("vfc getPnfInfo is starting!");
613 Response<ResponseBody> response = this.vfcService.getPnfInfo(pnfdInfoId).execute();
614 logger.info("vfc getPnfInfo has finished!");
615 if (response.isSuccessful()) {
616 result=Constant.CONSTANT_SUCCESS;
618 logger.info(String.format("Can not get getPnfInfo[code=%s, message=%s]", response.code(), response.message()));
619 result=Constant.CONSTANT_FAILED;;
621 } catch (IOException e) {
622 logger.error("getPnfInfo occur exception:"+e);
623 result=Constant.CONSTANT_FAILED;;