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;
28 import javax.annotation.PostConstruct;
29 import javax.ws.rs.core.UriBuilder;
31 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
32 import org.onap.so.db.catalog.beans.CloudSite;
33 import org.onap.so.db.catalog.beans.CloudifyManager;
34 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
35 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
36 import org.onap.so.db.catalog.beans.ControllerSelectionReference;
37 import org.onap.so.db.catalog.beans.CvnfcCustomization;
38 import org.onap.so.db.catalog.beans.ExternalServiceToInternalService;
39 import org.onap.so.db.catalog.beans.HomingInstance;
40 import org.onap.so.db.catalog.beans.InstanceGroup;
41 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
42 import org.onap.so.db.catalog.beans.NetworkRecipe;
43 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
44 import org.onap.so.db.catalog.beans.OrchestrationAction;
45 import org.onap.so.db.catalog.beans.OrchestrationStatus;
46 import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective;
47 import org.onap.so.db.catalog.beans.ResourceType;
48 import org.onap.so.db.catalog.beans.Service;
49 import org.onap.so.db.catalog.beans.ServiceRecipe;
50 import org.onap.so.db.catalog.beans.VfModule;
51 import org.onap.so.db.catalog.beans.VfModuleCustomization;
52 import org.onap.so.db.catalog.beans.VnfComponentsRecipe;
53 import org.onap.so.db.catalog.beans.VnfRecipe;
54 import org.onap.so.db.catalog.beans.VnfResource;
55 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
56 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
57 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
58 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
59 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
60 import org.onap.so.logger.LogConstants;
61 import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
62 import org.springframework.beans.factory.annotation.Value;
63 import org.springframework.http.HttpHeaders;
64 import org.springframework.http.client.BufferingClientHttpRequestFactory;
65 import org.springframework.http.client.ClientHttpRequestFactory;
66 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
67 import org.springframework.stereotype.Component;
69 import uk.co.blackpepper.bowman.Client;
70 import uk.co.blackpepper.bowman.ClientFactory;
71 import uk.co.blackpepper.bowman.Configuration;
73 @Component("CatalogDbClient")
74 public class CatalogDbClient {
76 private static final String CLOUD_SITE = "/cloudSite";
77 private static final String CLOUDIFY_MANAGER = "/cloudifyManager";
78 private static final String RAINY_DAY_HANDLER_MACRO = "/rainy_day_handler_macro";
79 private static final String NORTHBOUND_REQUEST_REF_LOOKUP = "/northbound_request_ref_lookup";
80 private static final String NETWORK_RESOURCE_CUSTOMIZATION = "/networkResourceCustomization";
81 private static final String COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION = "/collectionResourceInstanceGroupCustomization";
82 private static final String VNFC_INSTANCE_GROUP_CUSTOMIZATION = "/vnfcInstanceGroupCustomization";
83 private static final String ORCHESTRATION_FLOW = "/orchestrationFlow";
84 private static final String ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE = "/orchestrationStatusStateTransitionDirective";
85 private static final String INSTANCE_GROUP = "/instanceGroup";
86 private static final String COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION = "/collectionNetworkResourceCustomization";
87 private static final String BUILDING_BLOCK_DETAIL = "/buildingBlockDetail";
88 private static final String NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION = "/networkCollectionResourceCustomization";
89 private static final String VNF_RESOURCE_CUSTOMIZATION = "/vnfResourceCustomization";
90 private static final String SERVICE = "/service";
91 private static final String EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING = "/externalServiceToInternalService";
92 private static final String VNF_RESOURCE = "/vnfResource";
93 private static final String VNF_RECIPE = "/vnfRecipe";
94 private static final String VFMODULE = "/vfModule";
95 private static final String VFMODULE_CUSTOMIZATION = "/vfModuleCustomization";
96 private static final String VNF_COMPONENTS_RECIPE = "/vnfComponentsRecipe";
97 private static final String SERVICE_RECIPE = "/serviceRecipe";
98 private static final String NETWORK_RECIPE = "/networkRecipe";
100 private static final String SEARCH = "/search";
101 private static final String URI_SEPARATOR = "/";
103 private static final String SERVICE_MODEL_UUID = "serviceModelUUID";
104 private static final String SERVICE_NAME = "serviceName";
105 private static final String MODEL_UUID = "modelUUID";
106 private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID";
107 private static final String ACTION = "action";
108 private static final String MODEL_NAME = "modelName";
109 private static final String MODEL_VERSION = "modelVersion";
110 private static final String MODEL_INVARIANT_UUID = "modelInvariantUUID";
111 private static final String MODEL_INSTANCE_NAME = "modelInstanceName";
112 private static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID";
113 private static final String NF_ROLE = "nfRole";
114 private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID";
115 private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
116 private static final String BUILDING_BLOCK_NAME = "buildingBlockName";
117 private static final String RESOURCE_TYPE = "resourceType";
118 private static final String ORCHESTRATION_STATUS = "orchestrationStatus";
119 private static final String TARGET_ACTION = "targetAction";
120 private static final String REQUEST_SCOPE = "requestScope";
121 private static final String IS_ALACARTE = "isALaCarte";
122 private static final String CLOUD_OWNER = "cloudOwner";
123 private static final String FLOW_NAME = "flowName";
124 private static final String SERVICE_TYPE = "serviceType";
125 private static final String VNF_TYPE = "vnfType";
126 private static final String ERROR_CODE = "errorCode";
127 private static final String WORK_STEP = "workStep";
128 private static final String CLLI = "clli";
129 private static final String CLOUD_VERSION = "cloudVersion";
130 private static final String HOMING_INSTANCE = "/homingInstance";
132 private static final String TARGET_ENTITY = "SO:CatalogDB";
133 private static final String ASTERISK = "*";
135 private String findExternalToInternalServiceByServiceName = "/findByServiceName";
136 private String findServiceByModelName = "/findOneByModelName";
137 private String findServiceRecipeByActionAndServiceModelUUID = "/findByActionAndServiceModelUUID";
138 private String findServiceByModelUUID = "/findOneByModelUUID";
139 private String findFirstByModelNameURI = "/findFirstByModelNameOrderByModelVersionDesc";
140 private String findFirstByServiceModelUUIDAndActionURI = "/findFirstByServiceModelUUIDAndAction";
141 private String findFirstByModelVersionAndModelInvariantUUIDURI = "/findFirstByModelVersionAndModelInvariantUUID";
142 private String findByModelInvariantUUIDURI = "/findByModelInvariantUUIDOrderByModelVersionDesc";
143 private String findFirstByModelNameAndAction = "/findFirstByModelNameAndAction";
144 private String findFirstResourceByModelInvariantUUIDAndModelVersion = "/findFirstResourceByModelInvariantUUIDAndModelVersion";
145 private String findByModelInstanceNameAndVnfResources = "/findByModelInstanceNameAndVnfResources";
146 private String findFirstVnfRecipeByNfRoleAndAction = "/findFirstVnfRecipeByNfRoleAndAction";
147 private String findByModelCustomizationUUIDAndVfModuleModelUUID = "/findByModelCustomizationUUIDAndVfModuleModelUUID";
148 private String findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction";
149 private String findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVnfComponentTypeAndAction";
150 private String findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = "/findByModelInvariantUUIDOrderByModelVersionDesc";
151 private String findFirstVfModuleByModelInvariantUUIDAndModelVersion = "/findFirstVfModuleByModelInvariantUUIDAndModelVersion";
152 private String findOneByBuildingBlockName = "/findOneByBuildingBlockName";
153 private String findOneByResourceTypeAndOrchestrationStatusAndTargetAction = "/findOneByResourceTypeAndOrchestrationStatusAndTargetAction";
154 private String findByAction = "/findByAction";
155 private String findVnfcInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
156 private String findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
157 private String findOneByActionAndRequestScopeAndIsAlacarte = "/findOneByActionAndRequestScopeAndIsAlacarte";
158 private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner";
159 private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType";
160 private String findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = "/findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep";
161 private String findByClliAndCloudVersion = "/findByClliAndCloudVersion";
162 private String findServiceByServiceInstanceId = "/findServiceByServiceInstanceId";
165 private String serviceURI;
166 private String vfModuleURI;
167 private String vnfResourceURI;
168 private String vfModuleCustomizationURI;
169 private String networkCollectionResourceCustomizationURI;
170 private String networkResourceCustomizationURI;
171 private String vnfResourceCustomizationURI;
172 private String collectionNetworkResourceCustomizationURI;
173 private String instanceGroupURI;
174 private String cloudifyManagerURI;
175 private String cloudSiteURI;
176 private String homingInstanceURI;
178 private final Client<Service> serviceClient;
180 private final Client<NetworkRecipe> networkRecipeClient;
182 private final Client<NetworkResourceCustomization> networkResourceCustomizationClient;
184 private final Client<VnfResource> vnfResourceClient;
186 private final Client<VnfResourceCustomization> vnfResourceCustomizationClient;
188 private final Client<VnfRecipe> vnfRecipeClient;
190 private final Client<VfModuleCustomization> vfModuleCustomizationClient;
192 private final Client<VfModule> vfModuleClient;
194 private final Client<VnfComponentsRecipe> vnfComponentsRecipeClient;
196 private final Client<OrchestrationFlow> orchestrationClient;
198 private final Client<NorthBoundRequest> northBoundRequestClient;
200 private final Client<RainyDayHandlerStatus> rainyDayHandlerStatusClient;
202 private final Client<BuildingBlockDetail> buildingBlockDetailClient;
204 private final Client<OrchestrationStatusStateTransitionDirective> orchestrationStatusStateTransitionDirectiveClient;
206 private final Client<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizationClient;
208 private final Client<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationClient;
210 private final Client<InstanceGroup> instanceGroupClient;
212 private final Client<NetworkCollectionResourceCustomization> networkCollectionResourceCustomizationClient;
214 private final Client<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationClient;
216 private final Client<ServiceRecipe> serviceRecipeClient;
218 private final Client<ExternalServiceToInternalService> externalServiceToInternalServiceClient;
220 private final Client<CloudSite> cloudSiteClient;
222 private final Client<HomingInstance> homingInstanceClient;
224 private final Client<CloudifyManager> cloudifyManagerClient;
226 private Client<CvnfcCustomization> cvnfcCustomizationClient;
228 private final Client<ControllerSelectionReference> controllerSelectionReferenceClient;
230 @Value("${mso.catalog.db.spring.endpoint}")
231 private String endpoint;
233 @Value("${mso.db.auth}")
234 private String msoAdaptersAuth;
239 findExternalToInternalServiceByServiceName = endpoint + EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING + SEARCH + findExternalToInternalServiceByServiceName;
240 findServiceByModelName = endpoint + SERVICE + SEARCH + findServiceByModelName;
241 findServiceRecipeByActionAndServiceModelUUID = endpoint + SERVICE_RECIPE + SEARCH + findServiceRecipeByActionAndServiceModelUUID;
242 findServiceByModelUUID = endpoint + SERVICE + SEARCH + findServiceByModelUUID;
243 findFirstByModelNameURI = endpoint + SERVICE + SEARCH + findFirstByModelNameURI;
244 findFirstByModelVersionAndModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findFirstByModelVersionAndModelInvariantUUIDURI;
245 findByModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findByModelInvariantUUIDURI;
246 findFirstByServiceModelUUIDAndActionURI = endpoint + SERVICE_RECIPE + SEARCH + findFirstByServiceModelUUIDAndActionURI;
247 findFirstByModelNameAndAction = endpoint + NETWORK_RECIPE + SEARCH + findFirstByModelNameAndAction;
248 findFirstResourceByModelInvariantUUIDAndModelVersion = endpoint + VNF_RESOURCE + SEARCH + findFirstResourceByModelInvariantUUIDAndModelVersion;
249 findByModelInstanceNameAndVnfResources = endpoint + VNF_RESOURCE_CUSTOMIZATION + SEARCH + findByModelInstanceNameAndVnfResources;
250 findFirstVnfRecipeByNfRoleAndAction = endpoint + VNF_RECIPE + SEARCH + findFirstVnfRecipeByNfRoleAndAction;
251 findByModelCustomizationUUIDAndVfModuleModelUUID = endpoint + VFMODULE_CUSTOMIZATION + SEARCH + findByModelCustomizationUUIDAndVfModuleModelUUID;
252 findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction;
253 findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVnfComponentTypeAndAction;
254 findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = endpoint + VFMODULE + SEARCH +findVfModuleByModelInvariantUUIDOrderByModelVersionDesc;
255 findFirstVfModuleByModelInvariantUUIDAndModelVersion = endpoint + VFMODULE + SEARCH + findFirstVfModuleByModelInvariantUUIDAndModelVersion;
256 findOneByBuildingBlockName = endpoint + BUILDING_BLOCK_DETAIL + SEARCH + findOneByBuildingBlockName;
257 findOneByResourceTypeAndOrchestrationStatusAndTargetAction = endpoint + ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE + SEARCH + findOneByResourceTypeAndOrchestrationStatusAndTargetAction;
258 findByAction = endpoint + ORCHESTRATION_FLOW + SEARCH + findByAction;
259 findVnfcInstanceGroupCustomizationByModelCustomizationUUID = endpoint + VNFC_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findVnfcInstanceGroupCustomizationByModelCustomizationUUID;
260 findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = endpoint + COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID;
261 findOneByActionAndRequestScopeAndIsAlacarte = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarte;
262 findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner;
263 findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType;
264 findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = endpoint + RAINY_DAY_HANDLER_MACRO + SEARCH + findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep;
265 findByClliAndCloudVersion = endpoint + CLOUD_SITE + SEARCH + findByClliAndCloudVersion;
267 serviceURI = endpoint + SERVICE + URI_SEPARATOR;
268 vfModuleURI = endpoint + VFMODULE + URI_SEPARATOR;
269 vnfResourceURI = endpoint + VNF_RESOURCE + URI_SEPARATOR;
270 vfModuleCustomizationURI = endpoint + VFMODULE_CUSTOMIZATION + URI_SEPARATOR;
271 networkCollectionResourceCustomizationURI = endpoint + NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
272 networkResourceCustomizationURI = endpoint + NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
273 vnfResourceCustomizationURI = endpoint + VNF_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
274 collectionNetworkResourceCustomizationURI = endpoint + COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
275 instanceGroupURI = endpoint + INSTANCE_GROUP + URI_SEPARATOR;
276 cloudifyManagerURI = endpoint + CLOUDIFY_MANAGER + URI_SEPARATOR;
277 cloudSiteURI = endpoint + CLOUD_SITE + URI_SEPARATOR;
278 homingInstanceURI = endpoint + HOMING_INSTANCE + URI_SEPARATOR;
282 public CatalogDbClient() {
283 ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory());
285 ClientFactory clientFactory = Configuration.builder().setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
286 restTemplate.getInterceptors().add((new SpringClientFilter()));
288 restTemplate.getInterceptors().add((request, body, execution) -> {
290 request.getHeaders().add(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
291 request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER,TARGET_ENTITY);
292 return execution.execute(request, body);
294 }).build().buildClientFactory();
295 serviceClient = clientFactory.create(Service.class);
296 networkRecipeClient = clientFactory.create(NetworkRecipe.class);
297 networkResourceCustomizationClient = clientFactory.create(NetworkResourceCustomization.class);
298 vnfResourceClient = clientFactory.create(VnfResource.class);
299 vnfResourceCustomizationClient = clientFactory.create(VnfResourceCustomization.class);
300 vnfRecipeClient = clientFactory.create(VnfRecipe.class);
301 orchestrationClient = clientFactory.create(OrchestrationFlow.class);
302 vfModuleCustomizationClient = clientFactory.create(VfModuleCustomization.class);
303 vfModuleClient = clientFactory.create(VfModule.class);
304 vnfComponentsRecipeClient = clientFactory.create(VnfComponentsRecipe.class);
305 northBoundRequestClient = clientFactory.create(NorthBoundRequest.class);
306 rainyDayHandlerStatusClient = clientFactory.create(RainyDayHandlerStatus.class);
307 buildingBlockDetailClient = clientFactory.create(BuildingBlockDetail.class);
308 orchestrationStatusStateTransitionDirectiveClient = clientFactory
309 .create(OrchestrationStatusStateTransitionDirective.class);
310 vnfcInstanceGroupCustomizationClient = clientFactory.create(VnfcInstanceGroupCustomization.class);
311 collectionResourceInstanceGroupCustomizationClient = clientFactory
312 .create(CollectionResourceInstanceGroupCustomization.class);
313 instanceGroupClient = clientFactory.create(InstanceGroup.class);
314 networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
315 collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
316 cloudSiteClient = clientFactory.create(CloudSite.class);
317 homingInstanceClient = clientFactory.create(HomingInstance.class);
318 cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
319 serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
320 cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
321 controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
322 externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
325 public CatalogDbClient(String baseUri, String auth) {
326 ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory());
328 ClientFactory clientFactory = Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
329 restTemplate.getInterceptors().add((new SpringClientFilter()));
331 restTemplate.getInterceptors().add((request, body, execution) -> {
333 request.getHeaders().add(HttpHeaders.AUTHORIZATION, auth);
334 request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER,TARGET_ENTITY);
335 return execution.execute(request, body);
337 }).build().buildClientFactory();
338 serviceClient = clientFactory.create(Service.class);
339 networkRecipeClient = clientFactory.create(NetworkRecipe.class);
340 networkResourceCustomizationClient = clientFactory.create(NetworkResourceCustomization.class);
341 vnfResourceClient = clientFactory.create(VnfResource.class);
342 vnfResourceCustomizationClient = clientFactory.create(VnfResourceCustomization.class);
343 vnfRecipeClient = clientFactory.create(VnfRecipe.class);
344 orchestrationClient = clientFactory.create(OrchestrationFlow.class);
345 vfModuleCustomizationClient = clientFactory.create(VfModuleCustomization.class);
346 vfModuleClient = clientFactory.create(VfModule.class);
347 vnfComponentsRecipeClient = clientFactory.create(VnfComponentsRecipe.class);
348 northBoundRequestClient = clientFactory.create(NorthBoundRequest.class);
349 rainyDayHandlerStatusClient = clientFactory.create(RainyDayHandlerStatus.class);
350 buildingBlockDetailClient = clientFactory.create(BuildingBlockDetail.class);
351 orchestrationStatusStateTransitionDirectiveClient = clientFactory
352 .create(OrchestrationStatusStateTransitionDirective.class);
353 vnfcInstanceGroupCustomizationClient = clientFactory.create(VnfcInstanceGroupCustomization.class);
354 collectionResourceInstanceGroupCustomizationClient = clientFactory
355 .create(CollectionResourceInstanceGroupCustomization.class);
356 instanceGroupClient = clientFactory.create(InstanceGroup.class);
357 networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
358 collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
359 cloudSiteClient = clientFactory.create(CloudSite.class);
360 homingInstanceClient = clientFactory.create(HomingInstance.class);
361 cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
362 serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
363 cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
364 controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
365 externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
368 public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(String modelCustomizationUUID) {
369 NetworkCollectionResourceCustomization networkCollectionResourceCustomization =
370 this.getSingleResource(networkCollectionResourceCustomizationClient, getUri(networkCollectionResourceCustomizationURI + modelCustomizationUUID));
371 if (networkCollectionResourceCustomization != null) {
372 networkCollectionResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
374 return networkCollectionResourceCustomization;
377 public Service getServiceByID(String modelUUID) {
378 Service service = getSingleResource(serviceClient,getUri(serviceURI + modelUUID));
379 if (service != null) {
380 service.setModelUUID(modelUUID);
385 public VfModule getVfModuleByModelUUID(String modelUUID) {
386 VfModule vfModule = getSingleResource(vfModuleClient,getUri(vfModuleURI + modelUUID));
387 if (vfModule != null) {
388 vfModule.setModelUUID(modelUUID);
393 public VnfResource getVnfResourceByModelUUID(String modelUUID){
395 VnfResource vnfResource = this.getSingleResource(vnfResourceClient, getUri(vnfResourceURI + modelUUID));
396 if (vnfResource != null) {
397 vnfResource.setModelUUID(modelUUID);
402 public VnfResourceCustomization getVnfResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
403 VnfResourceCustomization vnfResourceCustomization = getSingleResource(vnfResourceCustomizationClient, getUri(vnfResourceCustomizationURI + modelCustomizationUUID));
404 if (vnfResourceCustomization != null) {
405 vnfResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
407 return vnfResourceCustomization;
410 public CollectionNetworkResourceCustomization getCollectionNetworkResourceCustomizationByID(String modelCustomizationUUID) {
411 CollectionNetworkResourceCustomization collectionNetworkResourceCustomization =
412 this.getSingleResource(collectionNetworkResourceCustomizationClient,getUri(UriBuilder
413 .fromUri(collectionNetworkResourceCustomizationURI + modelCustomizationUUID).build().toString()));
414 if (collectionNetworkResourceCustomization != null) {
415 collectionNetworkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
417 return collectionNetworkResourceCustomization;
420 public InstanceGroup getInstanceGroupByModelUUID(String modelUUID) {
421 InstanceGroup instanceGroup = this.getSingleResource(instanceGroupClient, getUri(instanceGroupURI + modelUUID));
422 if (instanceGroup != null) {
423 instanceGroup.setModelUUID(modelUUID);
425 return instanceGroup;
428 public VfModuleCustomization getVfModuleCustomizationByModelCuztomizationUUID(String modelCustomizationUUID) {
429 VfModuleCustomization vfModuleCust = this.getSingleResource(vfModuleCustomizationClient, getUri(vfModuleCustomizationURI + modelCustomizationUUID));
430 if (vfModuleCust != null) {
431 vfModuleCust.setModelCustomizationUUID(modelCustomizationUUID);
436 public NetworkResourceCustomization getNetworkResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
437 NetworkResourceCustomization networkResourceCustomization =
438 this.getSingleResource(networkResourceCustomizationClient, getUri(networkResourceCustomizationURI + modelCustomizationUUID));
439 if (networkResourceCustomization != null) {
440 networkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
442 return networkResourceCustomization;
445 public BuildingBlockDetail getBuildingBlockDetail(String buildingBlockName) {
446 BuildingBlockDetail buildingBlockDetail = getSingleResource(buildingBlockDetailClient, getUri(UriBuilder
447 .fromUri(findOneByBuildingBlockName).queryParam(BUILDING_BLOCK_NAME, buildingBlockName).build().toString()));
448 if (buildingBlockDetail != null) {
449 buildingBlockDetail.setBuildingBlockName(buildingBlockName);
451 return buildingBlockDetail;
455 public OrchestrationStatusStateTransitionDirective getOrchestrationStatusStateTransitionDirective(
456 ResourceType resourceType, OrchestrationStatus orchestrationStatus, OrchestrationAction targetAction) {
457 return getSingleResource(orchestrationStatusStateTransitionDirectiveClient, UriBuilder
458 .fromUri(findOneByResourceTypeAndOrchestrationStatusAndTargetAction)
459 .queryParam(RESOURCE_TYPE, resourceType.name())
460 .queryParam(ORCHESTRATION_STATUS, orchestrationStatus.name())
461 .queryParam(TARGET_ACTION, targetAction.name()).build());
464 public List<OrchestrationFlow> getOrchestrationFlowByAction(String action) {
465 return this.getMultipleResources(orchestrationClient, UriBuilder
466 .fromUri(findByAction).queryParam(ACTION, action).build());
469 public List<VnfcInstanceGroupCustomization> getVnfcInstanceGroupsByVnfResourceCust(String modelCustomizationUUID) {
470 return this.getMultipleResources(vnfcInstanceGroupCustomizationClient, UriBuilder
471 .fromUri(findVnfcInstanceGroupCustomizationByModelCustomizationUUID)
472 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
475 public List<CollectionResourceInstanceGroupCustomization> getCollectionResourceInstanceGroupCustomizationByModelCustUUID(
476 String modelCustomizationUUID) {
477 return this.getMultipleResources(collectionResourceInstanceGroupCustomizationClient, UriBuilder
478 .fromUri(findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID)
479 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
482 public VfModuleCustomization getVfModuleCustomizationByModelCustomizationUUIDAndVfModuleModelUUID(String modelCustomizationUUID, String vfModuleModelUUID) {
483 return this.getSingleResource(vfModuleCustomizationClient, getUri(UriBuilder
484 .fromUri(findByModelCustomizationUUIDAndVfModuleModelUUID)
485 .queryParam(MODEL_CUSTOMIZATION_UUID,modelCustomizationUUID)
486 .queryParam(VF_MODULE_MODEL_UUID,vfModuleModelUUID).build().toString()));
489 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(String requestAction,
490 String resourceName, boolean aLaCarte) {
491 return this.getSingleResource(northBoundRequestClient, UriBuilder
492 .fromUri(findOneByActionAndRequestScopeAndIsAlacarte)
493 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
494 .queryParam(IS_ALACARTE, aLaCarte).build());
497 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(String requestAction,
498 String resourceName, boolean aLaCarte, String cloudOwner) {
499 return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
500 .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
501 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
502 .queryParam(IS_ALACARTE, aLaCarte)
503 .queryParam(CLOUD_OWNER, cloudOwner)
504 .queryParam(SERVICE_TYPE, ASTERISK).build().toString()));
507 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(String requestAction,
508 String resourceName, boolean aLaCarte, String cloudOwner, String serviceType) {
509 return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
510 .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
511 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
512 .queryParam(IS_ALACARTE, aLaCarte)
513 .queryParam(CLOUD_OWNER, cloudOwner)
514 .queryParam(SERVICE_TYPE, serviceType).build().toString()));
517 public RainyDayHandlerStatus getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
518 String flowName, String serviceType, String vnfType, String errorCode, String workStep) {
519 return this.getSingleResource(rainyDayHandlerStatusClient, getUri(UriBuilder
520 .fromUri(findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep)
521 .queryParam(FLOW_NAME, flowName).queryParam(SERVICE_TYPE, serviceType)
522 .queryParam(VNF_TYPE, vnfType).queryParam(ERROR_CODE, errorCode).queryParam(WORK_STEP, workStep)
523 .build().toString()));
526 public ServiceRecipe getFirstByServiceModelUUIDAndAction(String modelUUID, String action){
527 return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
528 .fromUri(findFirstByServiceModelUUIDAndActionURI)
529 .queryParam(SERVICE_MODEL_UUID,modelUUID)
530 .queryParam(ACTION,action).build().toString()));
533 public NetworkRecipe getFirstNetworkRecipeByModelNameAndAction(String modelName, String action){
534 return this.getSingleResource(networkRecipeClient, UriBuilder
535 .fromUri(findFirstByModelNameAndAction)
536 .queryParam(MODEL_NAME,modelName)
537 .queryParam(ACTION,action).build());
540 public ControllerSelectionReference getControllerSelectionReferenceByVnfTypeAndActionCategory(String vnfType, String actionCategory) {
541 return this.getSingleResource(controllerSelectionReferenceClient, UriBuilder
542 .fromUri(endpoint + "/controllerSelectionReference/search/findControllerSelectionReferenceByVnfTypeAndActionCategory")
543 .queryParam("VNF_TYPE", vnfType).queryParam("ACTION_CATEGORY", actionCategory).build());
546 public Service getFirstByModelNameOrderByModelVersionDesc(String modelName){
547 return this.getSingleResource(serviceClient,UriBuilder
548 .fromUri(findFirstByModelNameURI)
549 .queryParam(MODEL_NAME,modelName).build());
552 public ExternalServiceToInternalService findExternalToInternalServiceByServiceName(String serviceName){
553 return this.getSingleResource(externalServiceToInternalServiceClient, getUri(UriBuilder
554 .fromUri(findExternalToInternalServiceByServiceName)
555 .queryParam(SERVICE_NAME,serviceName).build().toString()));
558 public ServiceRecipe findServiceRecipeByActionAndServiceModelUUID(String action,String modelUUID){
559 return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
560 .fromUri(findServiceRecipeByActionAndServiceModelUUID)
561 .queryParam(ACTION,action)
562 .queryParam(SERVICE_MODEL_UUID,modelUUID).build().toString()));
565 public Service getServiceByModelName(String modelName){
566 return this.getSingleResource(serviceClient,getUri(UriBuilder
567 .fromUri(findServiceByModelName)
568 .queryParam(MODEL_NAME,modelName).build().toString()));
571 public Service getServiceByModelUUID(String modelModelUUID){
572 return this.getSingleResource(serviceClient,getUri(UriBuilder
573 .fromUri(findServiceByModelUUID)
574 .queryParam(MODEL_UUID,modelModelUUID).build().toString()));
577 public VnfResource getFirstVnfResourceByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
578 return this.getSingleResource(vnfResourceClient, getUri(UriBuilder
579 .fromUri(findFirstResourceByModelInvariantUUIDAndModelVersion)
580 .queryParam(MODEL_INVARIANT_UUID,modelInvariantUUID)
581 .queryParam(MODEL_VERSION,modelVersion).build().toString()));
585 public VnfResourceCustomization getFirstVnfResourceCustomizationByModelInstanceNameAndVnfResources(String modelInstanceName, VnfResource vnfResource){
586 return this.getSingleResource(vnfResourceCustomizationClient, getUri(UriBuilder
587 .fromUri(findByModelInstanceNameAndVnfResources)
588 .queryParam(MODEL_INSTANCE_NAME,modelInstanceName)
589 .queryParam(VNF_RESOURCE_MODEL_UUID,vnfResource.getModelUUID()).build().toString()));
592 public VnfRecipe getFirstVnfRecipeByNfRoleAndAction(String nfRole, String action){
593 return this.getSingleResource(vnfRecipeClient,getUri(UriBuilder
594 .fromUri(findFirstVnfRecipeByNfRoleAndAction)
595 .queryParam(NF_ROLE,nfRole)
596 .queryParam(ACTION,action).build().toString()));
599 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction(String vfModuleModelUUID, String vnfComponentType, String action){
600 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
601 .fromUri(findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction)
602 .queryParam(VF_MODULE_MODEL_UUID,vfModuleModelUUID)
603 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
604 .queryParam(ACTION,action).build().toString()));
607 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVnfComponentTypeAndAction(String vnfComponentType, String action) {
608 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
609 .fromUri(findFirstVnfComponentsRecipeByVnfComponentTypeAndAction)
610 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
611 .queryParam(ACTION,action).build().toString()));
613 protected URI getUri(String template){
614 return URI.create(template);
617 public CloudifyManager getCloudifyManager(String id) {
618 return this.getSingleResource(cloudifyManagerClient,getUri(cloudifyManagerURI + id));
621 public CloudSite getCloudSite(String id){
622 return this.getSingleResource(cloudSiteClient,
623 getUri(cloudSiteURI + id));
626 public CloudSite getCloudSite(String id, String uri){
627 return this.getSingleResource(cloudSiteClient,
631 public void postCloudSite(CloudSite cloudSite){
632 this.postSingleResource(cloudSiteClient, cloudSite);
635 public CloudSite getCloudSiteByClliAndAicVersion (String clli, String cloudVersion){
636 return this.getSingleResource(cloudSiteClient, getUri(UriBuilder
637 .fromUri(findByClliAndCloudVersion)
638 .queryParam(CLLI,clli).queryParam(CLOUD_VERSION,cloudVersion).build().toString()));
641 public HomingInstance getHomingInstance (String serviceInstanceId){
642 return this.getSingleResource(homingInstanceClient,
643 getUri(homingInstanceURI + serviceInstanceId));
646 public HomingInstance getHomingInstance (String serviceInstanceId, String uri){
647 return this.getSingleResource(homingInstanceClient,
648 getUri(uri + serviceInstanceId));
651 public void postHomingInstance(HomingInstance homingInstance){
652 this.postSingleResource(homingInstanceClient, homingInstance);
655 public Service getServiceByModelVersionAndModelInvariantUUID(String modelVersion, String modelInvariantUUID) {
656 return this.getSingleResource(serviceClient, getUri(UriBuilder
657 .fromUri(findFirstByModelVersionAndModelInvariantUUIDURI)
658 .queryParam(MODEL_VERSION, modelVersion)
659 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
662 public VfModule getVfModuleByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
663 return this.getSingleResource(vfModuleClient,getUri(UriBuilder
664 .fromUri(findFirstVfModuleByModelInvariantUUIDAndModelVersion)
665 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID)
666 .queryParam(MODEL_VERSION, modelVersion).build().toString()));
669 public List<Service> getServiceByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
670 return this.getMultipleResources(serviceClient, getUri(UriBuilder
671 .fromUri(findByModelInvariantUUIDURI)
672 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
675 public List<VfModule> getVfModuleByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
676 return this.getMultipleResources(vfModuleClient, getUri(UriBuilder
677 .fromUri(findVfModuleByModelInvariantUUIDOrderByModelVersionDesc)
678 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
681 private <T> T getSingleResource(Client<T> client, URI uri) {
682 return client.get(uri);
685 private <T> List<T> getMultipleResources(Client<T> client, URI uri) {
686 Iterable<T> iterator = client.getAll(uri);
687 List<T> list = new ArrayList<>();
688 Iterator<T> it = iterator.iterator();
689 it.forEachRemaining(list::add);
693 private <T> URI postSingleResource(Client<T> client, T type){
694 return client.post(type);
697 public List<CvnfcCustomization> getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID(String vnfCustomizationUUID, String vfModuleCustomizationUUID){
698 return this.getMultipleVnfcCustomizations(
699 UriBuilder.fromUri(endpoint + "/vnfcCustomization/search/findByVnfCustomizationUUIDAndVfModuleCustomizationUUID")
700 .queryParam("VNF_CUSTOMIZATION_UUID", vnfCustomizationUUID)
701 .queryParam("VFMODULE_CUSTOMIZATION_UUID", vfModuleCustomizationUUID).build());
704 private List<CvnfcCustomization> getMultipleVnfcCustomizations(URI uri) {
705 Iterable<CvnfcCustomization> vnfcIterator = cvnfcCustomizationClient.getAll(uri);
706 List<CvnfcCustomization> vnfcList = new ArrayList<>();
707 Iterator<CvnfcCustomization> it = vnfcIterator.iterator();
708 it.forEachRemaining(vnfcList::add);