Merge from ECOMP's repository
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / command / CommandUtils.java
1 package org.onap.vid.job.command;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.onap.vid.asdc.AsdcCatalogException;
5 import org.onap.vid.model.ServiceModel;
6 import org.onap.vid.services.VidService;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Component;
9
10 @Component
11 public class CommandUtils {
12
13     private final VidService vidService;
14
15     @Autowired
16     public CommandUtils(VidService vidService) {
17         this.vidService = vidService;
18     }
19
20     public boolean isVfModuleBaseModule(String serviceModelUuid, String vfModuleModelUUID) throws AsdcCatalogException{
21         ServiceModel serviceModel =  vidService.getService(serviceModelUuid);
22
23         if (serviceModel==null) {
24             throw new AsdcCatalogException("Failed to retrieve model with uuid "+serviceModelUuid +" from SDC");
25         }
26
27         if (serviceModel.getVfModules() == null) {
28             throw createAsdcCatalogVfModuleModelUUIDNotFoundException(serviceModelUuid, vfModuleModelUUID);
29         }
30
31         return serviceModel.getVfModules()
32                 .values()
33                 .stream()
34                 .filter(vfModule -> StringUtils.equals(vfModule.getUuid(), vfModuleModelUUID))
35                 .findFirst()
36                 .orElseThrow(() -> createAsdcCatalogVfModuleModelUUIDNotFoundException(serviceModelUuid, vfModuleModelUUID))
37                 .getProperties()
38                 .getBaseModule();
39     }
40
41     private AsdcCatalogException createAsdcCatalogVfModuleModelUUIDNotFoundException(String serviceModelUuid, String vfModuleModelUUID) {
42         return new AsdcCatalogException("Failed to find vfModuleModelUUID: " + vfModuleModelUUID +
43                 "in model with uuid: " + serviceModelUuid);
44     }
45
46 }