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() {
72 List<SDCServiceTemplate> nsTemplate = sdcNsPackageInfo();
73 List<Vnf> vnf = sdcVfPackageInfo();
74 return new VfNsPackageInfo(nsTemplate, vnf);
78 public List<Vnf> sdcVfPackageInfo() {
80 Response<List<Vnf>> response = sdcCatalogService.listResources(RESOURCETYPE_VF).execute();
81 if (response.isSuccessful()) {
82 return response.body();
84 logger.info(String.format("Can not get VF resources[code=%s, message=%s]", response.code(), response.message()));
85 return Collections.emptyList();
87 } catch (IOException e) {
88 logger.error("sdcVfPackageInfo occur exception.Details:"+e.getMessage());
94 public List<SDCServiceTemplate> sdcNsPackageInfo() {
96 Response<List<SDCServiceTemplate>> response = sdcCatalogService.listServices(CATEGORY_NS, DISTRIBUTION_STATUS_DISTRIBUTED).execute();
97 if (response.isSuccessful()) {
98 return response.body();
100 logger.info(String.format("Can not get NS services[code=%s, message=%s]", response.code(), response.message()));
101 return Collections.emptyList();
103 } catch (IOException e) {
104 logger.error("sdcNsPackageInfo occur exception.Details:"+e.getMessage());
110 public DistributionResult postNsPackage(Csar csar) {
112 Response<DistributionResult> response = vfcService.distributeNsPackage(csar).execute();
113 if (response.isSuccessful()) {
114 return response.body();
116 logger.info(String.format("Can not post NS packages[code=%s, message=%s]", response.code(), response.message()));
117 throw new VfcException("VFC service is not available!");
119 } catch (IOException e) {
120 throw new VfcException("VFC service is not available!", e);
125 public Job postVfPackage(Csar csar) {
127 Response<Job> response = vfcService.distributeVnfPackage(csar).execute();
128 if (response.isSuccessful()) {
129 return response.body();
131 logger.info(String.format("Can not get VF packages[code=%s, message=%s]", response.code(), response.message()));
132 throw new VfcException("VFC service is not available!");
134 } catch (IOException e) {
135 throw new VfcException("VFC service is not available!", e);
140 public JobStatus getJobStatus(String jobId, String responseId) {
142 Response<JobStatus> response = vfcService.getJobStatus(jobId, responseId).execute();
143 if (response.isSuccessful()) {
144 return response.body();
146 logger.info(String.format("Can not get Job status[code=%s, message=%s]", response.code(), response.message()));
147 throw new VfcException("VFC service is not available!");
149 } catch (IOException e) {
150 throw new VfcException("VFC service is not available!", e);
155 public DistributionResult deleteNsPackage(String csarId) {
157 Response<DistributionResult> response = vfcService.deleteNsPackage(csarId).execute();
158 if (response.isSuccessful()) {
159 return response.body();
161 logger.info(String.format("Can not delete NS packages[code=%s, message=%s]", response.code(), response.message()));
162 throw new VfcException("VFC service is not available!");
164 } catch (IOException e) {
165 throw new VfcException("VFC service is not available!", e);
170 public Job deleteVfPackage(String csarId) {
172 Response<Job> response = vfcService.deleteVnfPackage(csarId).execute();
173 if (response.isSuccessful()) {
174 return response.body();
176 logger.info(String.format("Can not delete VF packages[code=%s, message=%s]", response.code(), response.message()));
177 throw new VfcException("VFC service is not available!");
179 } catch (IOException e) {
180 throw new VfcException("VFC service is not available!", e);
185 public String getVnfPackages() {
188 logger.info("vfc getVnfPackages is starting!");
189 Response<ResponseBody> response = this.vfcService.getVnfPackages().execute();
190 logger.info("vfc getVnfPackages has finished!");
191 if (response.isSuccessful()) {
192 result=new String(response.body().bytes());
194 logger.info(String.format("Can not get getVnfPackages[code=%s, message=%s]", response.code(), response.message()));
195 result=Constant.CONSTANT_FAILED;;
197 } catch (IOException e) {
198 logger.error("getVnfPackages occur exception:"+e);
199 result=Constant.CONSTANT_FAILED;;
205 public String getNetworkServicePackages() {
209 logger.info("vfc getNetworkServicePackages is starting!");
210 Response<ResponseBody> response = this.vfcService.getNetworkServicePackages().execute();
211 logger.info("vfc getNetworkServicePackages has finished!");
212 if (response.isSuccessful()) {
213 result=new String(response.body().bytes());
215 logger.info(String.format("Can not get getNetworkServicePackages[code=%s, message=%s]", response.code(), response.message()));
216 result=Constant.CONSTANT_FAILED;;
218 } catch (IOException e) {
219 logger.error("getNetworkServicePackages occur exception:"+e);
220 result=Constant.CONSTANT_FAILED;;
227 public String getPnfPackages() {
231 logger.info("vfc getPnfPackages is starting!");
232 Response<ResponseBody> response = this.vfcService.getPnfPackages().execute();
233 logger.info("vfc getPnfPackages has finished!");
234 if (response.isSuccessful()) {
235 result=new String(response.body().bytes());
237 logger.info(String.format("Can not get getPnfPackages[code=%s, message=%s]", response.code(), response.message()));
238 result=Constant.CONSTANT_FAILED;;
240 } catch (IOException e) {
241 logger.error("getPnfPackages occur exception:"+e);
242 result=Constant.CONSTANT_FAILED;;
249 public String downLoadNsPackage(String nsdInfoId) {
253 logger.info("vfc downLoadNsPackage is starting!");
254 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(nsdInfoId).execute();
255 logger.info("vfc downLoadNsPackage has finished!");
256 if (response.isSuccessful()) {
257 result=Constant.CONSTANT_SUCCESS;
259 logger.info(String.format("Can not get downLoadNsPackage[code=%s, message=%s]", response.code(), response.message()));
260 result=Constant.CONSTANT_FAILED;;
262 } catch (IOException e) {
263 logger.error("downLoadNsPackage occur exception:"+e);
264 result=Constant.CONSTANT_FAILED;;
271 public String downLoadPnfPackage(String pnfdInfoId) {
275 logger.info("vfc downLoadPnfPackage is starting!");
276 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(pnfdInfoId).execute();
277 logger.info("vfc downLoadPnfPackage has finished!");
278 if (response.isSuccessful()) {
279 result=Constant.CONSTANT_SUCCESS;
281 logger.info(String.format("Can not get downLoadPnfPackage[code=%s, message=%s]", response.code(), response.message()));
282 result=Constant.CONSTANT_FAILED;;
284 } catch (IOException e) {
285 logger.error("downLoadPnfPackage occur exception:"+e);
286 result=Constant.CONSTANT_FAILED;;
293 public String downLoadVnfPackage(String vnfPkgId) {
297 logger.info("vfc downLoadVnfPackage is starting!");
298 Response<ResponseBody> response = this.vfcService.downLoadNsPackage(vnfPkgId).execute();
299 logger.info("vfc downLoadVnfPackage has finished!");
300 if (response.isSuccessful()) {
301 result=Constant.CONSTANT_SUCCESS;
303 logger.info(String.format("Can not get downLoadVnfPackage[code=%s, message=%s]", response.code(), response.message()));
304 result=Constant.CONSTANT_FAILED;;
306 } catch (IOException e) {
307 logger.error("downLoadVnfPackage occur exception:"+e);
308 result=Constant.CONSTANT_FAILED;;
315 public String deleteNsdPackage(String nsdInfoId) {
319 logger.info("vfc deleteNsdPackage is starting!");
320 Response<ResponseBody> response = this.vfcService.deleteNsdPackage(nsdInfoId).execute();
321 logger.info("vfc deleteNsdPackage has finished!");
322 if (response.isSuccessful()) {
323 result=Constant.CONSTANT_SUCCESS;
325 logger.info(String.format("Can not get deleteNsdPackage[code=%s, message=%s]", response.code(), response.message()));
326 result=Constant.CONSTANT_FAILED;;
328 } catch (IOException e) {
329 logger.error("deleteNsdPackage occur exception:"+e);
330 result=Constant.CONSTANT_FAILED;;
337 public String deleteVnfPackage(String vnfPkgId) {
341 logger.info("vfc deleteVnfPackage is starting!");
342 Response<ResponseBody> response = this.vfcService.deleteVnfdPackage(vnfPkgId).execute();
343 logger.info("vfc deleteVnfPackage has finished!");
344 if (response.isSuccessful()) {
345 result=Constant.CONSTANT_SUCCESS;
347 logger.info(String.format("Can not get deleteNsdPackage[code=%s, message=%s]", response.code(), response.message()));
348 result=Constant.CONSTANT_FAILED;;
350 } catch (IOException e) {
351 logger.error("deleteVnfPackage occur exception:"+e);
352 result=Constant.CONSTANT_FAILED;;
359 public String deletePnfPackage(String pnfdInfoId) {
363 logger.info("vfc deletePnfPackage is starting!");
364 Response<ResponseBody> response = this.vfcService.deletePnfdPackage(pnfdInfoId).execute();
365 logger.info("vfc deletePnfPackage has finished!");
366 if (response.isSuccessful()) {
367 result=Constant.CONSTANT_SUCCESS;
369 logger.info(String.format("Can not get deletePnfPackage[code=%s, message=%s]", response.code(), response.message()));
370 result=Constant.CONSTANT_FAILED;;
372 } catch (IOException e) {
373 logger.error("deletePnfPackage occur exception:"+e);
374 result=Constant.CONSTANT_FAILED;;
381 public String getNetworkServiceInfo() {
385 logger.info("vfc getNetworkServiceInfo is starting!");
386 Response<ResponseBody> response = this.vfcService.getNetworkServiceInfo().execute();
387 logger.info("vfc getNetworkServiceInfo has finished!");
388 if (response.isSuccessful()) {
389 result=new String(response.body().bytes());
391 logger.info(String.format("Can not get getNetworkServiceInfo[code=%s, message=%s]", response.code(), response.message()));
392 result=Constant.CONSTANT_FAILED;;
394 } catch (IOException e) {
395 logger.error("getNetworkServiceInfo occur exception:"+e);
396 result=Constant.CONSTANT_FAILED;;
403 public String createNetworkServiceInstance(HttpServletRequest request) {
406 logger.info("aai createNetworkServiceInstance is starting");
407 RequestBody requestBody = extractBody(request);
408 Response<ResponseBody> response = vfcService.createNetworkServiceInstance(requestBody).execute();
409 logger.info("aai createNetworkServiceInstance has finished");
410 if (response.isSuccessful()) {
411 result=new String(response.body().bytes());
413 result=Constant.CONSTANT_FAILED;
414 logger.error(String.format("Can not createNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
416 } catch (Exception e) {
417 result=Constant.CONSTANT_FAILED;
418 logger.error("createNetworkServiceInstance occur exception:"+e);
424 public String deleteNetworkServiceInstance(String nsInstanceId) {
428 logger.info("vfc deleteNetworkServiceInstance is starting!");
429 Response<ResponseBody> response = this.vfcService.deleteNetworkServiceInstance(nsInstanceId).execute();
430 logger.info("vfc deleteNetworkServiceInstance has finished!");
431 if (response.isSuccessful()) {
432 result=Constant.CONSTANT_SUCCESS;
434 logger.info(String.format("Can not get deleteNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
435 result=Constant.CONSTANT_FAILED;;
437 } catch (IOException e) {
438 logger.error("deleteNetworkServiceInstance occur exception:"+e);
439 result=Constant.CONSTANT_FAILED;;
446 public String terminateNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
449 logger.info("aai terminateNetworkServiceInstance is starting");
450 RequestBody requestBody = extractBody(request);
451 Response<ResponseBody> response = vfcService.terminateNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
452 logger.info("aai terminateNetworkServiceInstance has finished");
453 if (response.isSuccessful()) {
454 result=new String(response.body().bytes());
456 result=Constant.CONSTANT_FAILED;
457 logger.error(String.format("Can not terminateNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
459 } catch (Exception e) {
460 result=Constant.CONSTANT_FAILED;
461 logger.error("terminateNetworkServiceInstance occur exception:"+e);
467 public String healNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
470 logger.info("aai healNetworkServiceInstance is starting");
471 RequestBody requestBody = extractBody(request);
472 Response<ResponseBody> response = vfcService.healNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
473 logger.info("aai healNetworkServiceInstance has finished");
474 if (response.isSuccessful()) {
475 result=new String(response.body().bytes());
477 result=Constant.CONSTANT_FAILED;
478 logger.error(String.format("Can not healNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
480 } catch (Exception e) {
481 result=Constant.CONSTANT_FAILED;
482 logger.error("healNetworkServiceInstance occur exception:"+e);
488 public String scaleNetworkServiceInstance(HttpServletRequest request,String networkServiceInstanceId) {
491 logger.info("aai scaleNetworkServiceInstance is starting");
492 RequestBody requestBody = extractBody(request);
493 Response<ResponseBody> response = vfcService.scaleNetworkServiceInstance(networkServiceInstanceId,requestBody).execute();
494 logger.info("aai scaleNetworkServiceInstance has finished");
495 if (response.isSuccessful()) {
496 result=new String(response.body().bytes());
498 result=Constant.CONSTANT_FAILED;
499 logger.error(String.format("Can not scaleNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
501 } catch (Exception e) {
502 result=Constant.CONSTANT_FAILED;
503 logger.error("scaleNetworkServiceInstance occur exception:"+e);
509 public String createNetworkServiceData(HttpServletRequest request) {
512 logger.info("aai createNetworkServiceData is starting");
513 RequestBody requestBody = extractBody(request);
514 Response<ResponseBody> response = vfcService.createNetworkServiceData(requestBody).execute();
515 logger.info("aai createNetworkServiceData has finished");
516 if (response.isSuccessful()) {
517 result=new String(response.body().bytes());
519 result=Constant.CONSTANT_FAILED;
520 logger.error(String.format("Can not createNetworkServiceData[code=%s, message=%s]", response.code(), response.message()));
522 } catch (Exception e) {
523 result=Constant.CONSTANT_FAILED;
524 logger.error("createNetworkServiceData occur exception:"+e);
530 public String createVnfData(HttpServletRequest request) {
533 logger.info("aai createVnfData is starting");
534 RequestBody requestBody = extractBody(request);
535 Response<ResponseBody> response = vfcService.createVnfData(requestBody).execute();
536 logger.info("aai createVnfData has finished");
537 if (response.isSuccessful()) {
538 result=new String(response.body().bytes());
540 result=Constant.CONSTANT_FAILED;
541 logger.error(String.format("Can not createVnfData[code=%s, message=%s]", response.code(), response.message()));
543 } catch (Exception e) {
544 result=Constant.CONSTANT_FAILED;
545 logger.error("createVnfData occur exception:"+e);
551 public String createPnfData(HttpServletRequest request) {
554 logger.info("aai createPnfData is starting");
555 RequestBody requestBody = extractBody(request);
556 Response<ResponseBody> response = vfcService.createPnfData(requestBody).execute();
557 logger.info("aai createPnfData has finished");
558 if (response.isSuccessful()) {
559 result=new String(response.body().bytes());
561 result=Constant.CONSTANT_FAILED;
562 logger.error(String.format("Can not createPnfData[code=%s, message=%s]", response.code(), response.message()));
564 } catch (Exception e) {
565 result=Constant.CONSTANT_FAILED;
566 logger.error("createPnfData occur exception:"+e);
572 public String getNsdInfo(String nsdInfoId) {
576 logger.info("vfc getNsdInfo is starting!");
577 Response<ResponseBody> response = this.vfcService.getNsdInfo(nsdInfoId).execute();
578 logger.info("vfc getNsdInfo has finished!");
579 if (response.isSuccessful()) {
580 result=Constant.CONSTANT_SUCCESS;
582 logger.info(String.format("Can not get getNsdInfo[code=%s, message=%s]", response.code(), response.message()));
583 result=Constant.CONSTANT_FAILED;;
585 } catch (IOException e) {
586 logger.error("getNsdInfo occur exception:"+e);
587 result=Constant.CONSTANT_FAILED;;
594 public String getVnfInfo(String vnfPkgId) {
598 logger.info("vfc getVnfInfo is starting!");
599 Response<ResponseBody> response = this.vfcService.getVnfInfo(vnfPkgId).execute();
600 logger.info("vfc getVnfInfo has finished!");
601 if (response.isSuccessful()) {
602 result=Constant.CONSTANT_SUCCESS;
604 logger.info(String.format("Can not get getVnfInfo[code=%s, message=%s]", response.code(), response.message()));
605 result=Constant.CONSTANT_FAILED;;
607 } catch (IOException e) {
608 logger.error("getVnfInfo occur exception:"+e);
609 result=Constant.CONSTANT_FAILED;;
616 public String getPnfInfo(String pnfdInfoId) {
620 logger.info("vfc getPnfInfo is starting!");
621 Response<ResponseBody> response = this.vfcService.getPnfInfo(pnfdInfoId).execute();
622 logger.info("vfc getPnfInfo has finished!");
623 if (response.isSuccessful()) {
624 result=Constant.CONSTANT_SUCCESS;
626 logger.info(String.format("Can not get getPnfInfo[code=%s, message=%s]", response.code(), response.message()));
627 result=Constant.CONSTANT_FAILED;;
629 } catch (IOException e) {
630 logger.error("getPnfInfo occur exception:"+e);
631 result=Constant.CONSTANT_FAILED;;
638 public String listNsTemplates() {
642 logger.info("vfc listNsTemplates is starting!");
643 Response<ResponseBody> response = this.vfcService.listNsTemplates().execute();
644 logger.info("vfc listNsTemplates has finished!");
645 if (response.isSuccessful()) {
646 result=new String(response.body().bytes());
648 logger.info(String.format("Can not get listNsTemplates[code=%s, message=%s]", response.code(), response.message()));
649 result=Constant.CONSTANT_FAILED;;
651 } catch (IOException e) {
652 logger.error("listNsTemplates occur exception:"+e);
653 result=Constant.CONSTANT_FAILED;;
660 public String fetchNsTemplateData(HttpServletRequest request) {
663 logger.info("aai fetchNsTemplateData is starting");
664 RequestBody requestBody = extractBody(request);
665 Response<ResponseBody> response = vfcService.fetchNsTemplateData(requestBody).execute();
666 logger.info("aai fetchNsTemplateData has finished");
667 if (response.isSuccessful()) {
668 result=new String(response.body().bytes());
670 result=Constant.CONSTANT_FAILED;
671 logger.error(String.format("Can not fetchNsTemplateData[code=%s, message=%s]", response.code(), response.message()));
673 } catch (Exception e) {
674 result=Constant.CONSTANT_FAILED;
675 logger.error("fetchNsTemplateData occur exception:"+e);
681 public String instantiateNetworkServiceInstance(HttpServletRequest request, String serviceInstanceId) {
684 logger.info("aai instantiateNetworkServiceInstance is starting");
685 RequestBody requestBody = extractBody(request);
686 Response<ResponseBody> response = vfcService.instantiateNetworkServiceInstance(requestBody,serviceInstanceId).execute();
687 logger.info("aai instantiateNetworkServiceInstance has finished");
688 if (response.isSuccessful()) {
689 result=new String(response.body().bytes());
691 result=Constant.CONSTANT_FAILED;
692 logger.error(String.format("Can not instantiateNetworkServiceInstance[code=%s, message=%s]", response.code(), response.message()));
694 } catch (Exception e) {
695 result=Constant.CONSTANT_FAILED;
696 logger.error("instantiateNetworkServiceInstance occur exception:"+e);