2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.db.catalog.client;
24 import java.util.ArrayList;
25 import java.util.Iterator;
26 import java.util.List;
27 import java.util.stream.Collectors;
29 import javax.annotation.PostConstruct;
30 import javax.persistence.EntityNotFoundException;
31 import javax.ws.rs.core.UriBuilder;
33 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
34 import org.onap.so.db.catalog.beans.CloudSite;
35 import org.onap.so.db.catalog.beans.CloudifyManager;
36 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
37 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
38 import org.onap.so.db.catalog.beans.ControllerSelectionReference;
39 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
40 import org.onap.so.db.catalog.beans.CvnfcCustomization;
41 import org.onap.so.db.catalog.beans.ExternalServiceToInternalService;
42 import org.onap.so.db.catalog.beans.HomingInstance;
43 import org.onap.so.db.catalog.beans.InstanceGroup;
44 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
45 import org.onap.so.db.catalog.beans.NetworkRecipe;
46 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
47 import org.onap.so.db.catalog.beans.OrchestrationAction;
48 import org.onap.so.db.catalog.beans.OrchestrationStatus;
49 import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective;
50 import org.onap.so.db.catalog.beans.PnfResource;
51 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
52 import org.onap.so.db.catalog.beans.ResourceType;
53 import org.onap.so.db.catalog.beans.Service;
54 import org.onap.so.db.catalog.beans.ServiceRecipe;
55 import org.onap.so.db.catalog.beans.VfModule;
56 import org.onap.so.db.catalog.beans.VfModuleCustomization;
57 import org.onap.so.db.catalog.beans.VnfComponentsRecipe;
58 import org.onap.so.db.catalog.beans.VnfRecipe;
59 import org.onap.so.db.catalog.beans.VnfResource;
60 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
61 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
62 import org.onap.so.db.catalog.beans.Workflow;
63 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
64 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
65 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
66 import org.onap.so.logger.LogConstants;
67 import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
68 import org.slf4j.Logger;
69 import org.slf4j.LoggerFactory;
70 import org.springframework.beans.factory.annotation.Autowired;
71 import org.springframework.beans.factory.annotation.Value;
72 import org.springframework.http.HttpHeaders;
73 import org.springframework.http.client.BufferingClientHttpRequestFactory;
74 import org.springframework.http.client.ClientHttpRequestFactory;
75 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
76 import org.springframework.stereotype.Component;
77 import org.springframework.web.client.RestTemplate;
79 import uk.co.blackpepper.bowman.Client;
80 import uk.co.blackpepper.bowman.ClientFactory;
81 import uk.co.blackpepper.bowman.Configuration;
83 @Component("CatalogDbClient")
84 public class CatalogDbClient {
86 private static final Logger logger = LoggerFactory.getLogger(CatalogDbClient.class);
88 private static final String CLOUD_SITE = "/cloudSite";
89 private static final String CLOUDIFY_MANAGER = "/cloudifyManager";
90 private static final String CVNFC_CUSTOMZIATION = "/cvnfcCustomization";
91 private static final String RAINY_DAY_HANDLER_MACRO = "/rainy_day_handler_macro";
92 private static final String NORTHBOUND_REQUEST_REF_LOOKUP = "/northbound_request_ref_lookup";
93 private static final String NETWORK_RESOURCE_CUSTOMIZATION = "/networkResourceCustomization";
94 private static final String COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION = "/collectionResourceInstanceGroupCustomization";
95 private static final String VNFC_INSTANCE_GROUP_CUSTOMIZATION = "/vnfcInstanceGroupCustomization";
96 private static final String ORCHESTRATION_FLOW = "/orchestrationFlow";
97 private static final String ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE = "/orchestrationStatusStateTransitionDirective";
98 private static final String INSTANCE_GROUP = "/instanceGroup";
99 private static final String COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION = "/collectionNetworkResourceCustomization";
100 private static final String BUILDING_BLOCK_DETAIL = "/buildingBlockDetail";
101 private static final String NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION = "/networkCollectionResourceCustomization";
102 private static final String VNF_RESOURCE_CUSTOMIZATION = "/vnfResourceCustomization";
103 private static final String SERVICE = "/service";
104 private static final String EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING = "/externalServiceToInternalService";
105 private static final String VNF_RESOURCE = "/vnfResource";
106 private static final String VNF_RECIPE = "/vnfRecipe";
107 private static final String VFMODULE = "/vfModule";
108 private static final String VFMODULE_CUSTOMIZATION = "/vfModuleCustomization";
109 private static final String VNF_COMPONENTS_RECIPE = "/vnfComponentsRecipe";
110 private static final String SERVICE_RECIPE = "/serviceRecipe";
111 private static final String NETWORK_RECIPE = "/networkRecipe";
112 private static final String PNF_RESOURCE = "/pnfResource";
113 private static final String PNF_RESOURCE_CUSTOMIZATION = "/pnfResourceCustomization";
114 private static final String WORKFLOW = "/workflow";
117 private static final String SEARCH = "/search";
118 private static final String URI_SEPARATOR = "/";
120 private static final String SERVICE_MODEL_UUID = "serviceModelUUID";
121 private static final String SERVICE_NAME = "serviceName";
122 private static final String MODEL_UUID = "modelUUID";
123 private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID";
124 private static final String ACTION = "action";
125 private static final String MODEL_NAME = "modelName";
126 private static final String MODEL_VERSION = "modelVersion";
127 private static final String MODEL_INVARIANT_UUID = "modelInvariantUUID";
128 private static final String MODEL_INSTANCE_NAME = "modelInstanceName";
129 private static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID";
130 private static final String NF_ROLE = "nfRole";
131 private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID";
132 private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
133 private static final String BUILDING_BLOCK_NAME = "buildingBlockName";
134 private static final String RESOURCE_TYPE = "resourceType";
135 private static final String ORCHESTRATION_STATUS = "orchestrationStatus";
136 private static final String TARGET_ACTION = "targetAction";
137 private static final String REQUEST_SCOPE = "requestScope";
138 private static final String IS_ALACARTE = "isALaCarte";
139 private static final String CLOUD_OWNER = "cloudOwner";
140 private static final String FLOW_NAME = "flowName";
141 private static final String SERVICE_TYPE = "serviceType";
142 private static final String VNF_TYPE = "vnfType";
143 private static final String ERROR_CODE = "errorCode";
144 private static final String WORK_STEP = "workStep";
145 private static final String CLLI = "clli";
146 private static final String CLOUD_VERSION = "cloudVersion";
147 private static final String HOMING_INSTANCE = "/homingInstance";
148 private static final String ARTIFACT_UUID = "artifactUUID";
150 private static final String TARGET_ENTITY = "SO:CatalogDB";
151 private static final String ASTERISK = "*";
153 private String findExternalToInternalServiceByServiceName = "/findByServiceName";
154 private String findServiceByModelName = "/findOneByModelName";
155 private String findServiceRecipeByActionAndServiceModelUUID = "/findByActionAndServiceModelUUID";
156 private String findServiceByModelUUID = "/findOneByModelUUID";
157 private String findFirstByModelNameURI = "/findFirstByModelNameOrderByModelVersionDesc";
158 private String findFirstByServiceModelUUIDAndActionURI = "/findFirstByServiceModelUUIDAndAction";
159 private String findFirstByModelVersionAndModelInvariantUUIDURI = "/findFirstByModelVersionAndModelInvariantUUID";
160 private String findByModelInvariantUUIDURI = "/findByModelInvariantUUIDOrderByModelVersionDesc";
161 private String findFirstByModelNameAndAction = "/findFirstByModelNameAndAction";
162 private String findFirstResourceByModelInvariantUUIDAndModelVersion = "/findFirstResourceByModelInvariantUUIDAndModelVersion";
163 private String findByModelInstanceNameAndVnfResources = "/findByModelInstanceNameAndVnfResources";
164 private String findFirstVnfRecipeByNfRoleAndAction = "/findFirstVnfRecipeByNfRoleAndAction";
165 private String findByModelCustomizationUUIDAndVfModuleModelUUID = "/findFirstByModelCustomizationUUIDAndVfModuleModelUUIDOrderByCreatedDesc";
166 private String findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction";
167 private String findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVnfComponentTypeAndAction";
168 private String findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = "/findByModelInvariantUUIDOrderByModelVersionDesc";
169 private String findFirstVfModuleByModelInvariantUUIDAndModelVersion = "/findFirstVfModuleByModelInvariantUUIDAndModelVersion";
170 private String findOneByBuildingBlockName = "/findOneByBuildingBlockName";
171 private String findOneByResourceTypeAndOrchestrationStatusAndTargetAction = "/findOneByResourceTypeAndOrchestrationStatusAndTargetAction";
172 private String findByAction = "/findByAction";
173 private String findVnfcInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
174 private String findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
175 private String findOneByActionAndRequestScopeAndIsAlacarte = "/findOneByActionAndRequestScopeAndIsAlacarte";
176 private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner";
177 private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType";
178 private String findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = "/findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep";
179 private String findByClliAndCloudVersion = "/findByClliAndCloudVersion";
180 private String findServiceByServiceInstanceId = "/findServiceByServiceInstanceId";
181 private String findPnfResourceCustomizationByModelUuid = "/findPnfResourceCustomizationByModelUuid";
182 private String findWorkflowByArtifactUUID = "/findByArtifactUUID";
184 private String serviceURI;
185 private String vfModuleURI;
186 private String vnfResourceURI;
187 private String vfModuleCustomizationURI;
188 private String networkCollectionResourceCustomizationURI;
189 private String networkResourceCustomizationURI;
190 private String vnfResourceCustomizationURI;
191 private String collectionNetworkResourceCustomizationURI;
192 private String instanceGroupURI;
193 private String cloudifyManagerURI;
194 private String cloudSiteURI;
195 private String homingInstanceURI;
196 private String cvnfcResourceCustomizationURI;
197 private String pnfResourceURI;
198 private String pnfResourceCustomizationURI;
199 private String workflowURI;
201 private final Client<Service> serviceClient;
203 private final Client<NetworkRecipe> networkRecipeClient;
205 private final Client<NetworkResourceCustomization> networkResourceCustomizationClient;
207 private final Client<VnfResource> vnfResourceClient;
209 private final Client<VnfResourceCustomization> vnfResourceCustomizationClient;
211 private final Client<VnfRecipe> vnfRecipeClient;
213 private final Client<VfModuleCustomization> vfModuleCustomizationClient;
215 private final Client<VfModule> vfModuleClient;
217 private final Client<VnfComponentsRecipe> vnfComponentsRecipeClient;
219 private final Client<OrchestrationFlow> orchestrationClient;
221 private final Client<NorthBoundRequest> northBoundRequestClient;
223 private final Client<RainyDayHandlerStatus> rainyDayHandlerStatusClient;
225 private final Client<BuildingBlockDetail> buildingBlockDetailClient;
227 private final Client<OrchestrationStatusStateTransitionDirective> orchestrationStatusStateTransitionDirectiveClient;
229 private final Client<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizationClient;
231 private final Client<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationClient;
233 private final Client<InstanceGroup> instanceGroupClient;
235 private final Client<NetworkCollectionResourceCustomization> networkCollectionResourceCustomizationClient;
237 private final Client<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationClient;
239 private final Client<ServiceRecipe> serviceRecipeClient;
241 private final Client<ExternalServiceToInternalService> externalServiceToInternalServiceClient;
243 private final Client<CloudSite> cloudSiteClient;
245 private final Client<HomingInstance> homingInstanceClient;
247 private final Client<CloudifyManager> cloudifyManagerClient;
249 private final Client<CvnfcCustomization> cvnfcCustomizationClient;
251 private final Client<ControllerSelectionReference> controllerSelectionReferenceClient;
253 private final Client<PnfResource> pnfResourceClient;
255 private final Client<PnfResourceCustomization> pnfResourceCustomizationClient;
257 private final Client<Workflow> workflowClient;
259 @Value("${mso.catalog.db.spring.endpoint:#{null}}")
260 private String endpoint;
262 @Value("${mso.db.auth:#{null}}")
263 private String msoAdaptersAuth;
266 RestTemplate restTemplate;
270 findExternalToInternalServiceByServiceName = endpoint + EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING + SEARCH + findExternalToInternalServiceByServiceName;
271 findServiceByModelName = endpoint + SERVICE + SEARCH + findServiceByModelName;
272 findServiceRecipeByActionAndServiceModelUUID = endpoint + SERVICE_RECIPE + SEARCH + findServiceRecipeByActionAndServiceModelUUID;
273 findServiceByModelUUID = endpoint + SERVICE + SEARCH + findServiceByModelUUID;
274 findFirstByModelNameURI = endpoint + SERVICE + SEARCH + findFirstByModelNameURI;
275 findFirstByModelVersionAndModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findFirstByModelVersionAndModelInvariantUUIDURI;
276 findByModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findByModelInvariantUUIDURI;
277 findFirstByServiceModelUUIDAndActionURI = endpoint + SERVICE_RECIPE + SEARCH + findFirstByServiceModelUUIDAndActionURI;
278 findFirstByModelNameAndAction = endpoint + NETWORK_RECIPE + SEARCH + findFirstByModelNameAndAction;
279 findFirstResourceByModelInvariantUUIDAndModelVersion = endpoint + VNF_RESOURCE + SEARCH + findFirstResourceByModelInvariantUUIDAndModelVersion;
280 findByModelInstanceNameAndVnfResources = endpoint + VNF_RESOURCE_CUSTOMIZATION + SEARCH + findByModelInstanceNameAndVnfResources;
281 findFirstVnfRecipeByNfRoleAndAction = endpoint + VNF_RECIPE + SEARCH + findFirstVnfRecipeByNfRoleAndAction;
282 findByModelCustomizationUUIDAndVfModuleModelUUID = endpoint + VFMODULE_CUSTOMIZATION + SEARCH + findByModelCustomizationUUIDAndVfModuleModelUUID;
283 findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction;
284 findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVnfComponentTypeAndAction;
285 findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = endpoint + VFMODULE + SEARCH +findVfModuleByModelInvariantUUIDOrderByModelVersionDesc;
286 findFirstVfModuleByModelInvariantUUIDAndModelVersion = endpoint + VFMODULE + SEARCH + findFirstVfModuleByModelInvariantUUIDAndModelVersion;
287 findOneByBuildingBlockName = endpoint + BUILDING_BLOCK_DETAIL + SEARCH + findOneByBuildingBlockName;
288 findOneByResourceTypeAndOrchestrationStatusAndTargetAction = endpoint + ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE + SEARCH + findOneByResourceTypeAndOrchestrationStatusAndTargetAction;
289 findByAction = endpoint + ORCHESTRATION_FLOW + SEARCH + findByAction;
290 findVnfcInstanceGroupCustomizationByModelCustomizationUUID = endpoint + VNFC_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findVnfcInstanceGroupCustomizationByModelCustomizationUUID;
291 findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = endpoint + COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID;
292 findOneByActionAndRequestScopeAndIsAlacarte = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarte;
293 findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner;
294 findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType;
295 findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = endpoint + RAINY_DAY_HANDLER_MACRO + SEARCH + findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep;
296 findByClliAndCloudVersion = endpoint + CLOUD_SITE + SEARCH + findByClliAndCloudVersion;
298 findPnfResourceCustomizationByModelUuid =
299 endpoint + PNF_RESOURCE_CUSTOMIZATION + SEARCH + findPnfResourceCustomizationByModelUuid;
301 findWorkflowByArtifactUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByArtifactUUID;
303 serviceURI = endpoint + SERVICE + URI_SEPARATOR;
304 vfModuleURI = endpoint + VFMODULE + URI_SEPARATOR;
305 vnfResourceURI = endpoint + VNF_RESOURCE + URI_SEPARATOR;
306 vfModuleCustomizationURI = endpoint + VFMODULE_CUSTOMIZATION + URI_SEPARATOR;
307 networkCollectionResourceCustomizationURI = endpoint + NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
308 networkResourceCustomizationURI = endpoint + NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
309 cvnfcResourceCustomizationURI = endpoint + CVNFC_CUSTOMZIATION + URI_SEPARATOR;
310 vnfResourceCustomizationURI = endpoint + VNF_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
311 collectionNetworkResourceCustomizationURI = endpoint + COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
312 instanceGroupURI = endpoint + INSTANCE_GROUP + URI_SEPARATOR;
313 cloudifyManagerURI = endpoint + CLOUDIFY_MANAGER + URI_SEPARATOR;
314 cloudSiteURI = endpoint + CLOUD_SITE + URI_SEPARATOR;
315 homingInstanceURI = endpoint + HOMING_INSTANCE + URI_SEPARATOR;
316 pnfResourceURI = endpoint + PNF_RESOURCE + URI_SEPARATOR;
317 pnfResourceCustomizationURI = endpoint + PNF_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
318 workflowURI = endpoint + WORKFLOW + URI_SEPARATOR;
322 public CatalogDbClient() {
323 ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory());
325 ClientFactory clientFactory = Configuration.builder().setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
326 restTemplate.getInterceptors().add((new SpringClientFilter()));
328 restTemplate.getInterceptors().add((request, body, execution) -> {
330 request.getHeaders().add(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
331 request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER,TARGET_ENTITY);
332 return execution.execute(request, body);
334 }).build().buildClientFactory();
335 serviceClient = clientFactory.create(Service.class);
336 networkRecipeClient = clientFactory.create(NetworkRecipe.class);
337 networkResourceCustomizationClient = clientFactory.create(NetworkResourceCustomization.class);
338 vnfResourceClient = clientFactory.create(VnfResource.class);
339 vnfResourceCustomizationClient = clientFactory.create(VnfResourceCustomization.class);
340 vnfRecipeClient = clientFactory.create(VnfRecipe.class);
341 orchestrationClient = clientFactory.create(OrchestrationFlow.class);
342 vfModuleCustomizationClient = clientFactory.create(VfModuleCustomization.class);
343 vfModuleClient = clientFactory.create(VfModule.class);
344 vnfComponentsRecipeClient = clientFactory.create(VnfComponentsRecipe.class);
345 northBoundRequestClient = clientFactory.create(NorthBoundRequest.class);
346 rainyDayHandlerStatusClient = clientFactory.create(RainyDayHandlerStatus.class);
347 buildingBlockDetailClient = clientFactory.create(BuildingBlockDetail.class);
348 orchestrationStatusStateTransitionDirectiveClient = clientFactory
349 .create(OrchestrationStatusStateTransitionDirective.class);
350 vnfcInstanceGroupCustomizationClient = clientFactory.create(VnfcInstanceGroupCustomization.class);
351 collectionResourceInstanceGroupCustomizationClient = clientFactory
352 .create(CollectionResourceInstanceGroupCustomization.class);
353 instanceGroupClient = clientFactory.create(InstanceGroup.class);
354 networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
355 collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
356 cloudSiteClient = clientFactory.create(CloudSite.class);
357 homingInstanceClient = clientFactory.create(HomingInstance.class);
358 cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
359 serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
360 cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
361 controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
362 externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
363 pnfResourceClient = clientFactory.create(PnfResource.class);
364 pnfResourceCustomizationClient = clientFactory.create(PnfResourceCustomization.class);
365 workflowClient = clientFactory.create(Workflow.class);
368 public CatalogDbClient(String baseUri, String auth) {
369 ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory());
371 ClientFactory clientFactory = Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
372 restTemplate.getInterceptors().add((new SpringClientFilter()));
374 restTemplate.getInterceptors().add((request, body, execution) -> {
376 request.getHeaders().add(HttpHeaders.AUTHORIZATION, auth);
377 request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER,TARGET_ENTITY);
378 return execution.execute(request, body);
380 }).build().buildClientFactory();
381 serviceClient = clientFactory.create(Service.class);
382 networkRecipeClient = clientFactory.create(NetworkRecipe.class);
383 networkResourceCustomizationClient = clientFactory.create(NetworkResourceCustomization.class);
384 vnfResourceClient = clientFactory.create(VnfResource.class);
385 vnfResourceCustomizationClient = clientFactory.create(VnfResourceCustomization.class);
386 vnfRecipeClient = clientFactory.create(VnfRecipe.class);
387 orchestrationClient = clientFactory.create(OrchestrationFlow.class);
388 vfModuleCustomizationClient = clientFactory.create(VfModuleCustomization.class);
389 vfModuleClient = clientFactory.create(VfModule.class);
390 vnfComponentsRecipeClient = clientFactory.create(VnfComponentsRecipe.class);
391 northBoundRequestClient = clientFactory.create(NorthBoundRequest.class);
392 rainyDayHandlerStatusClient = clientFactory.create(RainyDayHandlerStatus.class);
393 buildingBlockDetailClient = clientFactory.create(BuildingBlockDetail.class);
394 orchestrationStatusStateTransitionDirectiveClient = clientFactory
395 .create(OrchestrationStatusStateTransitionDirective.class);
396 vnfcInstanceGroupCustomizationClient = clientFactory.create(VnfcInstanceGroupCustomization.class);
397 collectionResourceInstanceGroupCustomizationClient = clientFactory
398 .create(CollectionResourceInstanceGroupCustomization.class);
399 instanceGroupClient = clientFactory.create(InstanceGroup.class);
400 networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
401 collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
402 cloudSiteClient = clientFactory.create(CloudSite.class);
403 homingInstanceClient = clientFactory.create(HomingInstance.class);
404 cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
405 serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
406 cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
407 controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
408 externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
409 pnfResourceClient = clientFactory.create(PnfResource.class);
410 pnfResourceCustomizationClient = clientFactory.create(PnfResourceCustomization.class);
411 workflowClient = clientFactory.create(Workflow.class);
414 public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(String modelCustomizationUUID) {
415 NetworkCollectionResourceCustomization networkCollectionResourceCustomization =
416 this.getSingleResource(networkCollectionResourceCustomizationClient, getUri(networkCollectionResourceCustomizationURI + modelCustomizationUUID));
417 if (networkCollectionResourceCustomization != null) {
418 networkCollectionResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
420 return networkCollectionResourceCustomization;
423 public Service getServiceByID(String modelUUID) {
424 Service service = getSingleResource(serviceClient,getUri(serviceURI + modelUUID));
425 if (service != null) {
426 service.setModelUUID(modelUUID);
431 public VfModule getVfModuleByModelUUID(String modelUUID) {
432 VfModule vfModule = getSingleResource(vfModuleClient,getUri(vfModuleURI + modelUUID));
433 if (vfModule != null) {
434 vfModule.setModelUUID(modelUUID);
439 public VnfResource getVnfResourceByModelUUID(String modelUUID){
441 VnfResource vnfResource = this.getSingleResource(vnfResourceClient, getUri(vnfResourceURI + modelUUID));
442 if (vnfResource != null) {
443 vnfResource.setModelUUID(modelUUID);
448 //A VNFResource customization UUID is the same object across services, so we can return anyone from the list
449 // In the future the client should query starting at a service model uuid
450 public VnfResourceCustomization getVnfResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
451 List<VnfResourceCustomization> vnfResourceCustomization = this.getMultipleResources(vnfResourceCustomizationClient,getUri(endpoint + VNF_RESOURCE_CUSTOMIZATION + SEARCH + "/findByModelCustomizationUUID" + "?MODEL_CUSTOMIZATION_UUID="+ modelCustomizationUUID));
452 if(vnfResourceCustomization != null && !vnfResourceCustomization.isEmpty()){
453 return vnfResourceCustomization.get(0);
459 public PnfResource getPnfResourceByModelUUID(String modelUUID) {
460 PnfResource PnfResource = this.getSingleResource(pnfResourceClient, getUri(pnfResourceURI + modelUUID));
461 if (PnfResource != null) {
462 PnfResource.setModelUUID(modelUUID);
467 public PnfResourceCustomization getPnfResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID) {
468 PnfResourceCustomization pnfResourceCustomization = getSingleResource(pnfResourceCustomizationClient,
469 getUri(pnfResourceCustomizationURI + modelCustomizationUUID));
470 if (pnfResourceCustomization != null) {
471 pnfResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
473 return pnfResourceCustomization;
476 public List<PnfResourceCustomization> getPnfResourceCustomizationByModelUuid(String modelUuid) {
477 return this.getMultipleResources(pnfResourceCustomizationClient, getUri(
478 UriBuilder.fromUri(findPnfResourceCustomizationByModelUuid).queryParam("SERVICE_MODEL_UUID", modelUuid)
479 .build().toString()));
482 public CollectionNetworkResourceCustomization getCollectionNetworkResourceCustomizationByID(String modelCustomizationUUID) {
483 CollectionNetworkResourceCustomization collectionNetworkResourceCustomization =
484 this.getSingleResource(collectionNetworkResourceCustomizationClient,getUri(UriBuilder
485 .fromUri(collectionNetworkResourceCustomizationURI + modelCustomizationUUID).build().toString()));
486 if (collectionNetworkResourceCustomization != null) {
487 collectionNetworkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
489 return collectionNetworkResourceCustomization;
492 public InstanceGroup getInstanceGroupByModelUUID(String modelUUID) {
493 InstanceGroup instanceGroup = this.getSingleResource(instanceGroupClient, getUri(instanceGroupURI + modelUUID));
494 if (instanceGroup != null) {
495 instanceGroup.setModelUUID(modelUUID);
497 return instanceGroup;
500 public VfModuleCustomization getVfModuleCustomizationByModelCuztomizationUUID(String modelCustomizationUUID) {
501 return this.getSingleResource(vfModuleCustomizationClient, getUri(endpoint + VFMODULE_CUSTOMIZATION + SEARCH + "/findFirstByModelCustomizationUUIDOrderByCreatedDesc" + "?MODEL_CUSTOMIZATION_UUID="+ modelCustomizationUUID));
504 public NetworkResourceCustomization getNetworkResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
505 NetworkResourceCustomization networkResourceCustomization =
506 this.getSingleResource(networkResourceCustomizationClient, getUri(networkResourceCustomizationURI + modelCustomizationUUID));
507 if (networkResourceCustomization != null) {
508 networkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
510 return networkResourceCustomization;
514 public BuildingBlockDetail getBuildingBlockDetail(String buildingBlockName) {
515 BuildingBlockDetail buildingBlockDetail = getSingleResource(buildingBlockDetailClient, getUri(UriBuilder
516 .fromUri(findOneByBuildingBlockName).queryParam(BUILDING_BLOCK_NAME, buildingBlockName).build().toString()));
517 if (buildingBlockDetail != null) {
518 buildingBlockDetail.setBuildingBlockName(buildingBlockName);
520 return buildingBlockDetail;
524 public OrchestrationStatusStateTransitionDirective getOrchestrationStatusStateTransitionDirective(
525 ResourceType resourceType, OrchestrationStatus orchestrationStatus, OrchestrationAction targetAction) {
526 return getSingleResource(orchestrationStatusStateTransitionDirectiveClient, UriBuilder
527 .fromUri(findOneByResourceTypeAndOrchestrationStatusAndTargetAction)
528 .queryParam(RESOURCE_TYPE, resourceType.name())
529 .queryParam(ORCHESTRATION_STATUS, orchestrationStatus.name())
530 .queryParam(TARGET_ACTION, targetAction.name()).build());
533 public List<OrchestrationFlow> getOrchestrationFlowByAction(String action) {
534 return this.getMultipleResources(orchestrationClient, UriBuilder
535 .fromUri(findByAction).queryParam(ACTION, action).build());
538 public List<VnfcInstanceGroupCustomization> getVnfcInstanceGroupsByVnfResourceCust(String modelCustomizationUUID) {
539 return this.getMultipleResources(vnfcInstanceGroupCustomizationClient, UriBuilder
540 .fromUri(findVnfcInstanceGroupCustomizationByModelCustomizationUUID)
541 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
544 public List<CollectionResourceInstanceGroupCustomization> getCollectionResourceInstanceGroupCustomizationByModelCustUUID(
545 String modelCustomizationUUID) {
546 return this.getMultipleResources(collectionResourceInstanceGroupCustomizationClient, UriBuilder
547 .fromUri(findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID)
548 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
551 public VfModuleCustomization getVfModuleCustomizationByModelCustomizationUUIDAndVfModuleModelUUID(String modelCustomizationUUID, String vfModuleModelUUID) {
552 return this.getSingleResource(vfModuleCustomizationClient, getUri(UriBuilder
553 .fromUri(findByModelCustomizationUUIDAndVfModuleModelUUID)
554 .queryParam("MODEL_CUSTOMIZATION_UUID",modelCustomizationUUID)
555 .queryParam("MODEL_UUID",vfModuleModelUUID).build().toString()));
558 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(String requestAction,
559 String resourceName, boolean aLaCarte) {
560 return this.getSingleResource(northBoundRequestClient, UriBuilder
561 .fromUri(findOneByActionAndRequestScopeAndIsAlacarte)
562 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
563 .queryParam(IS_ALACARTE, aLaCarte).build());
566 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(String requestAction,
567 String resourceName, boolean aLaCarte, String cloudOwner) {
568 return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
569 .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
570 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
571 .queryParam(IS_ALACARTE, aLaCarte)
572 .queryParam(CLOUD_OWNER, cloudOwner)
573 .queryParam(SERVICE_TYPE, ASTERISK).build().toString()));
576 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(String requestAction,
577 String resourceName, boolean aLaCarte, String cloudOwner, String serviceType) {
578 return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
579 .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
580 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
581 .queryParam(IS_ALACARTE, aLaCarte)
582 .queryParam(CLOUD_OWNER, cloudOwner)
583 .queryParam(SERVICE_TYPE, serviceType).build().toString()));
586 public RainyDayHandlerStatus getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
587 String flowName, String serviceType, String vnfType, String errorCode, String workStep) {
588 return this.getSingleResource(rainyDayHandlerStatusClient, getUri(UriBuilder
589 .fromUri(findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep)
590 .queryParam(FLOW_NAME, flowName).queryParam(SERVICE_TYPE, serviceType)
591 .queryParam(VNF_TYPE, vnfType).queryParam(ERROR_CODE, errorCode).queryParam(WORK_STEP, workStep)
592 .build().toString()));
595 public ServiceRecipe getFirstByServiceModelUUIDAndAction(String modelUUID, String action){
596 return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
597 .fromUri(findFirstByServiceModelUUIDAndActionURI)
598 .queryParam(SERVICE_MODEL_UUID,modelUUID)
599 .queryParam(ACTION,action).build().toString()));
602 public NetworkRecipe getFirstNetworkRecipeByModelNameAndAction(String modelName, String action){
603 return this.getSingleResource(networkRecipeClient, UriBuilder
604 .fromUri(findFirstByModelNameAndAction)
605 .queryParam(MODEL_NAME,modelName)
606 .queryParam(ACTION,action).build());
609 public ControllerSelectionReference getControllerSelectionReferenceByVnfTypeAndActionCategory(String vnfType, String actionCategory) {
610 return this.getSingleResource(controllerSelectionReferenceClient, UriBuilder
611 .fromUri(endpoint + "/controllerSelectionReference/search/findControllerSelectionReferenceByVnfTypeAndActionCategory")
612 .queryParam("VNF_TYPE", vnfType).queryParam("ACTION_CATEGORY", actionCategory).build());
615 public Service getFirstByModelNameOrderByModelVersionDesc(String modelName){
616 return this.getSingleResource(serviceClient,UriBuilder
617 .fromUri(findFirstByModelNameURI)
618 .queryParam(MODEL_NAME,modelName).build());
621 public ExternalServiceToInternalService findExternalToInternalServiceByServiceName(String serviceName){
622 return this.getSingleResource(externalServiceToInternalServiceClient, getUri(UriBuilder
623 .fromUri(findExternalToInternalServiceByServiceName)
624 .queryParam(SERVICE_NAME,serviceName).build().toString()));
627 public ServiceRecipe findServiceRecipeByActionAndServiceModelUUID(String action,String modelUUID){
628 return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
629 .fromUri(findServiceRecipeByActionAndServiceModelUUID)
630 .queryParam(ACTION,action)
631 .queryParam(SERVICE_MODEL_UUID,modelUUID).build().toString()));
634 public Service getServiceByModelName(String modelName){
635 return this.getSingleResource(serviceClient,getUri(UriBuilder
636 .fromUri(findServiceByModelName)
637 .queryParam(MODEL_NAME,modelName).build().toString()));
640 public Service getServiceByModelUUID(String modelModelUUID){
641 return this.getSingleResource(serviceClient,getUri(UriBuilder
642 .fromUri(findServiceByModelUUID)
643 .queryParam(MODEL_UUID,modelModelUUID).build().toString()));
646 public VnfResource getFirstVnfResourceByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
647 return this.getSingleResource(vnfResourceClient, getUri(UriBuilder
648 .fromUri(findFirstResourceByModelInvariantUUIDAndModelVersion)
649 .queryParam(MODEL_INVARIANT_UUID,modelInvariantUUID)
650 .queryParam(MODEL_VERSION,modelVersion).build().toString()));
654 public VnfResourceCustomization getFirstVnfResourceCustomizationByModelInstanceNameAndVnfResources(String modelInstanceName, VnfResource vnfResource){
655 return this.getSingleResource(vnfResourceCustomizationClient, getUri(UriBuilder
656 .fromUri(findByModelInstanceNameAndVnfResources)
657 .queryParam("MODEL_INSTANCE_NAME",modelInstanceName)
658 .queryParam("VNF_RESOURCE_MODEL_UUID",vnfResource.getModelUUID()).build().toString()));
661 public VnfRecipe getFirstVnfRecipeByNfRoleAndAction(String nfRole, String action){
662 return this.getSingleResource(vnfRecipeClient,getUri(UriBuilder
663 .fromUri(findFirstVnfRecipeByNfRoleAndAction)
664 .queryParam(NF_ROLE,nfRole)
665 .queryParam(ACTION,action).build().toString()));
668 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction(String vfModuleModelUUID, String vnfComponentType, String action){
669 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
670 .fromUri(findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction)
671 .queryParam(VF_MODULE_MODEL_UUID,vfModuleModelUUID)
672 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
673 .queryParam(ACTION,action).build().toString()));
676 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVnfComponentTypeAndAction(String vnfComponentType, String action) {
677 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
678 .fromUri(findFirstVnfComponentsRecipeByVnfComponentTypeAndAction)
679 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
680 .queryParam(ACTION,action).build().toString()));
682 protected URI getUri(String template){
683 return URI.create(template);
686 public CloudifyManager getCloudifyManager(String id) {
687 return this.getSingleResource(cloudifyManagerClient,getUri(cloudifyManagerURI + id));
690 public CloudSite getCloudSite(String id){
691 return this.getSingleResource(cloudSiteClient,
692 getUri(cloudSiteURI + id));
695 public CloudSite getCloudSite(String id, String uri){
696 return this.getSingleResource(cloudSiteClient,
700 public void postCloudSite(CloudSite cloudSite){
701 this.postSingleResource(cloudSiteClient, cloudSite);
704 public CloudSite getCloudSiteByClliAndAicVersion (String clli, String cloudVersion){
705 return this.getSingleResource(cloudSiteClient, getUri(UriBuilder
706 .fromUri(findByClliAndCloudVersion)
707 .queryParam(CLLI,clli).queryParam(CLOUD_VERSION,cloudVersion).build().toString()));
710 public HomingInstance getHomingInstance (String serviceInstanceId){
711 return this.getSingleResource(homingInstanceClient,
712 getUri(homingInstanceURI + serviceInstanceId));
715 public HomingInstance getHomingInstance (String serviceInstanceId, String uri){
716 return this.getSingleResource(homingInstanceClient,
717 getUri(uri + serviceInstanceId));
720 public void postHomingInstance(HomingInstance homingInstance){
721 this.postSingleResource(homingInstanceClient, homingInstance);
724 public Service getServiceByModelVersionAndModelInvariantUUID(String modelVersion, String modelInvariantUUID) {
725 return this.getSingleResource(serviceClient, getUri(UriBuilder
726 .fromUri(findFirstByModelVersionAndModelInvariantUUIDURI)
727 .queryParam(MODEL_VERSION, modelVersion)
728 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
731 public VfModule getVfModuleByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
732 return this.getSingleResource(vfModuleClient,getUri(UriBuilder
733 .fromUri(findFirstVfModuleByModelInvariantUUIDAndModelVersion)
734 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID)
735 .queryParam(MODEL_VERSION, modelVersion).build().toString()));
738 public List<Service> getServiceByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
739 return this.getMultipleResources(serviceClient, getUri(UriBuilder
740 .fromUri(findByModelInvariantUUIDURI)
741 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
744 public List<VfModule> getVfModuleByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
745 return this.getMultipleResources(vfModuleClient, getUri(UriBuilder
746 .fromUri(findVfModuleByModelInvariantUUIDOrderByModelVersionDesc)
747 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
750 private <T> T getSingleResource(Client<T> client, URI uri) {
751 return client.get(uri);
754 private <T> List<T> getMultipleResources(Client<T> client, URI uri) {
755 Iterable<T> iterator = client.getAll(uri);
756 List<T> list = new ArrayList<>();
757 Iterator<T> it = iterator.iterator();
758 it.forEachRemaining(list::add);
762 private <T> URI postSingleResource(Client<T> client, T type){
763 return client.post(type);
766 public List<CvnfcCustomization> getCvnfcCustomization(String serviceModelUUID, String vnfCustomizationUUID,
767 String vfModuleCustomizationUUID) {
768 Service service = this.getServiceByID(serviceModelUUID);
769 VnfResourceCustomization vnfResourceCust = findVnfResourceCustomizationInList(vnfCustomizationUUID, service.getVnfCustomizations());
770 VfModuleCustomization vfModuleCust = findVfModuleCustomizationInList(vfModuleCustomizationUUID , vnfResourceCust.getVfModuleCustomizations());
771 return vfModuleCust.getCvnfcCustomization().stream().collect(Collectors.toList());
774 private VnfResourceCustomization findVnfResourceCustomizationInList(String vnfCustomizationUUID , List<VnfResourceCustomization> vnfResourceCusts){
775 List<VnfResourceCustomization> filtered = vnfResourceCusts.stream()
776 .filter(vnfCustRes -> vnfCustomizationUUID.equals(vnfCustRes.getModelCustomizationUUID()))
777 .collect(Collectors.toList());
778 if(filtered != null && !filtered.isEmpty() && filtered.size() == 1){
779 return filtered.get(0);
781 throw new EntityNotFoundException("Unable to find VnfResourceCustomization ModelCustomizationUUID:" + vnfCustomizationUUID);
784 private VfModuleCustomization findVfModuleCustomizationInList(String vfModuleCustomizationUUID , List<VfModuleCustomization> vfModuleList){
785 List<VfModuleCustomization> filtered = vfModuleList.stream()
786 .filter(vfModuleCust -> vfModuleCustomizationUUID.equals(vfModuleCust.getModelCustomizationUUID()))
787 .collect(Collectors.toList());
788 if(filtered != null && !filtered.isEmpty() && filtered.size() == 1){
789 return filtered.get(0);
791 throw new EntityNotFoundException("Unable to find VfModuleCustomization ModelCustomizationUUID:" + vfModuleCustomizationUUID);
794 private CvnfcCustomization findCvnfcCustomizationInAList(String cvnfcCustomizationUuid , List<CvnfcCustomization> cvnfcCustomList){
795 List<CvnfcCustomization> filtered = cvnfcCustomList.stream()
796 .filter(cvnfc -> cvnfcCustomizationUuid.equals(cvnfc.getModelCustomizationUUID()))
797 .collect(Collectors.toList());
798 if(filtered != null && !filtered.isEmpty() && filtered.size() == 1){
799 logger.debug("Found CvnfcCustomization: {}", filtered.get(0));
800 return filtered.get(0);
802 throw new EntityNotFoundException("Unable to find CvnfcCustomization ModelCustomizationUUID:" + cvnfcCustomizationUuid);
805 public CvnfcConfigurationCustomization getCvnfcCustomization(String serviceModelUUID, String vnfCustomizationUuid,
806 String vfModuleCustomizationUuid, String cvnfcCustomizationUuid) {
807 List<CvnfcCustomization> cvnfcCustomization = getCvnfcCustomization(serviceModelUUID,vnfCustomizationUuid,vfModuleCustomizationUuid);
808 CvnfcCustomization cvnfc = findCvnfcCustomizationInAList(cvnfcCustomizationUuid,cvnfcCustomization );
809 List<CvnfcConfigurationCustomization> fabricConfigs = cvnfc.getCvnfcConfigurationCustomization().stream().filter(cvnfcCustom -> cvnfcCustom.getConfigurationResource().getToscaNodeType().contains("FabricConfiguration")).collect(Collectors.toList());
810 if(fabricConfigs != null && !fabricConfigs.isEmpty() && fabricConfigs.size() == 1){
811 logger.debug("Found Fabric Configuration: {}", fabricConfigs.get(0));
812 return fabricConfigs.get(0);
814 throw new EntityNotFoundException("Unable to find CvnfcConfigurationCustomization ModelCustomizationUUID:" + cvnfcCustomizationUuid);
817 public Workflow findWorkflowByArtifactUUID (String artifactUUID) {
818 return this.getSingleResource(workflowClient,getUri(UriBuilder
819 .fromUri(findWorkflowByArtifactUUID)
820 .queryParam(ARTIFACT_UUID, artifactUUID).build().toString()));