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;
23 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
24 import org.onap.so.db.catalog.beans.CloudSite;
25 import org.onap.so.db.catalog.beans.CloudifyManager;
26 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
27 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
28 import org.onap.so.db.catalog.beans.ControllerSelectionReference;
29 import org.onap.so.db.catalog.beans.InstanceGroup;
30 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
31 import org.onap.so.db.catalog.beans.NetworkRecipe;
32 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
33 import org.onap.so.db.catalog.beans.OrchestrationAction;
34 import org.onap.so.db.catalog.beans.OrchestrationStatus;
35 import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective;
36 import org.onap.so.db.catalog.beans.ResourceType;
37 import org.onap.so.db.catalog.beans.Service;
38 import org.onap.so.db.catalog.beans.ServiceRecipe;
39 import org.onap.so.db.catalog.beans.VfModule;
40 import org.onap.so.db.catalog.beans.VfModuleCustomization;
41 import org.onap.so.db.catalog.beans.VnfComponentsRecipe;
42 import org.onap.so.db.catalog.beans.VnfRecipe;
43 import org.onap.so.db.catalog.beans.VnfResource;
44 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
45 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
46 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
47 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
48 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
49 import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
50 import org.springframework.beans.factory.annotation.Value;
51 import org.springframework.http.HttpHeaders;
52 import org.springframework.http.client.BufferingClientHttpRequestFactory;
53 import org.springframework.http.client.ClientHttpRequestFactory;
54 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
55 import org.springframework.stereotype.Component;
56 import uk.co.blackpepper.bowman.Client;
57 import uk.co.blackpepper.bowman.ClientFactory;
58 import uk.co.blackpepper.bowman.Configuration;
60 import javax.annotation.PostConstruct;
61 import javax.ws.rs.core.UriBuilder;
63 import java.util.ArrayList;
64 import java.util.Iterator;
65 import java.util.List;
67 @Component("CatalogDbClient")
68 public class CatalogDbClient {
70 private static final String CLOUD_SITE = "/cloudSite";
71 private static final String CLOUDIFY_MANAGER = "/cloudifyManager";
72 private static final String RAINY_DAY_HANDLER_MACRO = "/rainy_day_handler_macro";
73 private static final String NORTHBOUND_REQUEST_REF_LOOKUP = "/northbound_request_ref_lookup";
74 private static final String NETWORK_RESOURCE_CUSTOMIZATION = "/networkResourceCustomization";
75 private static final String COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION = "/collectionResourceInstanceGroupCustomization";
76 private static final String VNFC_INSTANCE_GROUP_CUSTOMIZATION = "/vnfcInstanceGroupCustomization";
77 private static final String ORCHESTRATION_FLOW = "/orchestrationFlow";
78 private static final String ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE = "/orchestrationStatusStateTransitionDirective";
79 private static final String INSTANCE_GROUP = "/instanceGroup";
80 private static final String COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION = "/collectionNetworkResourceCustomization";
81 private static final String BUILDING_BLOCK_DETAIL = "/buildingBlockDetail";
82 private static final String NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION = "/networkCollectionResourceCustomization";
83 private static final String VNF_RESOURCE_CUSTOMIZATION = "/vnfResourceCustomization";
84 private static final String SERVICE = "/service";
85 private static final String VNF_RESOURCE = "/vnfResource";
86 private static final String VNF_RECIPE = "/vnfRecipe";
87 private static final String VFMODULE = "/vfModule";
88 private static final String VFMODULE_CUSTOMIZATION = "/vfModuleCustomization";
89 private static final String VNF_COMPONENTS_RECIPE = "/vnfComponentsRecipe";
90 private static final String SERVICE_RECIPE = "/serviceRecipe";
91 private static final String NETWORK_RECIPE = "/networkRecipe";
93 private static final String SEARCH = "/search";
94 private static final String URI_SEPARATOR = "/";
96 private static final String SERVICE_MODEL_UUID = "serviceModelUUID";
97 private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID";
98 private static final String ACTION = "action";
99 private static final String MODEL_NAME = "modelName";
100 private static final String MODEL_VERSION = "modelVersion";
101 private static final String MODEL_INVARIANT_UUID = "modelInvariantUUID";
102 private static final String MODEL_INSTANCE_NAME = "modelInstanceName";
103 private static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID";
104 private static final String NF_ROLE = "nfRole";
105 private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID";
106 private static final String VNF_COMPONENT_TYPE = "vnfComponentType";
107 private static final String BUILDING_BLOCK_NAME = "buildingBlockName";
108 private static final String RESOURCE_TYPE = "resourceType";
109 private static final String ORCHESTRATION_STATUS = "orchestrationStatus";
110 private static final String TARGET_ACTION = "targetAction";
111 private static final String REQUEST_SCOPE = "requestScope";
112 private static final String IS_ALACARTE = "isALaCarte";
113 private static final String FLOW_NAME = "flowName";
114 private static final String SERVICE_TYPE = "serviceType";
115 private static final String VNF_TYPE = "vnfType";
116 private static final String ERROR_CODE = "errorCode";
117 private static final String WORK_STEP = "workStep";
118 private static final String CLLI = "clli";
119 private static final String CLOUD_VERSION = "cloudVersion";
121 private String findFirstByModelNameURI = "/findFirstByModelNameOrderByModelVersionDesc";
122 private String findFirstByServiceModelUUIDAndActionURI = "/findFirstByServiceModelUUIDAndAction";
123 private String findFirstByModelVersionAndModelInvariantUUIDURI = "/findFirstByModelVersionAndModelInvariantUUID";
124 private String findByModelInvariantUUIDURI = "/findByModelInvariantUUIDOrderByModelVersionDesc";
125 private String findFirstByModelNameAndAction = "/findFirstByModelNameAndAction";
126 private String findFirstResourceByModelInvariantUUIDAndModelVersion = "/findFirstResourceByModelInvariantUUIDAndModelVersion";
127 private String findByModelInstanceNameAndVnfResources = "/findByModelInstanceNameAndVnfResources";
128 private String findFirstVnfRecipeByNfRoleAndAction = "/findFirstVnfRecipeByNfRoleAndAction";
129 private String findByModelCustomizationUUIDAndVfModuleModelUUID = "/findByModelCustomizationUUIDAndVfModuleModelUUID";
130 private String findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction";
131 private String findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = "/findFirstVnfComponentsRecipeByVnfComponentTypeAndAction";
132 private String findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = "/findByModelInvariantUUIDOrderByModelVersionDesc";
133 private String findFirstVfModuleByModelInvariantUUIDAndModelVersion = "/findFirstVfModuleByModelInvariantUUIDAndModelVersion";
134 private String findOneByBuildingBlockName = "/findOneByBuildingBlockName";
135 private String findOneByResourceTypeAndOrchestrationStatusAndTargetAction = "/findOneByResourceTypeAndOrchestrationStatusAndTargetAction";
136 private String findByAction = "/findByAction";
137 private String findVnfcInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
138 private String findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
139 private String findOneByActionAndRequestScopeAndIsAlacarte = "/findOneByActionAndRequestScopeAndIsAlacarte";
140 private String findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = "/findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep";
141 private String findByClliAndCloudVersion = "/findByClliAndCloudVersion";
143 private String serviceURI;
144 private String vfModuleURI;
145 private String vnfResourceURI;
146 private String vfModuleCustomizationURI;
147 private String networkCollectionResourceCustomizationURI;
148 private String networkResourceCustomizationURI;
149 private String vnfResourceCustomizationURI;
150 private String collectionNetworkResourceCustomizationURI;
151 private String instanceGroupURI;
152 private String cloudifyManagerURI;
153 private String cloudSiteURI;
155 private final Client<Service> serviceClient;
157 private final Client<NetworkRecipe> networkRecipeClient;
159 private final Client<NetworkResourceCustomization> networkResourceCustomizationClient;
161 private final Client<VnfResource> vnfResourceClient;
163 private final Client<VnfResourceCustomization> vnfResourceCustomizationClient;
165 private final Client<VnfRecipe> vnfRecipeClient;
167 private final Client<VfModuleCustomization> vfModuleCustomizationClient;
169 private final Client<VfModule> vfModuleClient;
171 private final Client<VnfComponentsRecipe> vnfComponentsRecipeClient;
173 private final Client<OrchestrationFlow> orchestrationClient;
175 private final Client<NorthBoundRequest> northBoundRequestClient;
177 private final Client<RainyDayHandlerStatus> rainyDayHandlerStatusClient;
179 private final Client<BuildingBlockDetail> buildingBlockDetailClient;
181 private final Client<OrchestrationStatusStateTransitionDirective> orchestrationStatusStateTransitionDirectiveClient;
183 private final Client<VnfcInstanceGroupCustomization> vnfcInstanceGroupCustomizationClient;
185 private final Client<CollectionResourceInstanceGroupCustomization> collectionResourceInstanceGroupCustomizationClient;
187 private final Client<InstanceGroup> instanceGroupClient;
189 private final Client<NetworkCollectionResourceCustomization> networkCollectionResourceCustomizationClient;
191 private final Client<CollectionNetworkResourceCustomization> collectionNetworkResourceCustomizationClient;
193 private final Client<ServiceRecipe> serviceRecipeClient;
195 private final Client<CloudSite> cloudSiteClient;
197 private final Client<CloudifyManager> cloudifyManagerClient;
199 private final Client<ControllerSelectionReference> controllerSelectionReferenceClient;
201 @Value("${mso.catalog.db.spring.endpoint}")
202 private String endpoint;
204 @Value("${mso.db.auth}")
205 private String msoAdaptersAuth;
210 findFirstByModelNameURI = endpoint + SERVICE + SEARCH + findFirstByModelNameURI;
211 findFirstByModelVersionAndModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findFirstByModelVersionAndModelInvariantUUIDURI;
212 findByModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findByModelInvariantUUIDURI;
213 findFirstByServiceModelUUIDAndActionURI = endpoint + SERVICE_RECIPE + SEARCH + findFirstByServiceModelUUIDAndActionURI;
214 findFirstByModelNameAndAction = endpoint + NETWORK_RECIPE + SEARCH + findFirstByModelNameAndAction;
215 findFirstResourceByModelInvariantUUIDAndModelVersion = endpoint + VNF_RESOURCE + SEARCH + findFirstResourceByModelInvariantUUIDAndModelVersion;
216 findByModelInstanceNameAndVnfResources = endpoint + VNF_RESOURCE_CUSTOMIZATION + SEARCH + findByModelInstanceNameAndVnfResources;
217 findFirstVnfRecipeByNfRoleAndAction = endpoint + VNF_RECIPE + SEARCH + findFirstVnfRecipeByNfRoleAndAction;
218 findByModelCustomizationUUIDAndVfModuleModelUUID = endpoint + VFMODULE_CUSTOMIZATION + SEARCH + findByModelCustomizationUUIDAndVfModuleModelUUID;
219 findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction;
220 findFirstVnfComponentsRecipeByVnfComponentTypeAndAction = endpoint + VNF_COMPONENTS_RECIPE + SEARCH + findFirstVnfComponentsRecipeByVnfComponentTypeAndAction;
221 findVfModuleByModelInvariantUUIDOrderByModelVersionDesc = endpoint + VFMODULE + SEARCH +findVfModuleByModelInvariantUUIDOrderByModelVersionDesc;
222 findFirstVfModuleByModelInvariantUUIDAndModelVersion = endpoint + VFMODULE + SEARCH + findFirstVfModuleByModelInvariantUUIDAndModelVersion;
223 findOneByBuildingBlockName = endpoint + BUILDING_BLOCK_DETAIL + SEARCH + findOneByBuildingBlockName;
224 findOneByResourceTypeAndOrchestrationStatusAndTargetAction = endpoint + ORCHESTRATION_STATUS_STATE_TRANSITION_DIRECTIVE + SEARCH + findOneByResourceTypeAndOrchestrationStatusAndTargetAction;
225 findByAction = endpoint + ORCHESTRATION_FLOW + SEARCH + findByAction;
226 findVnfcInstanceGroupCustomizationByModelCustomizationUUID = endpoint + VNFC_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findVnfcInstanceGroupCustomizationByModelCustomizationUUID;
227 findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = endpoint + COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID;
228 findOneByActionAndRequestScopeAndIsAlacarte = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarte;
229 findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = endpoint + RAINY_DAY_HANDLER_MACRO + SEARCH + findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep;
230 findByClliAndCloudVersion = endpoint + CLOUD_SITE + SEARCH + findByClliAndCloudVersion;
232 serviceURI = endpoint + SERVICE + URI_SEPARATOR;
233 vfModuleURI = endpoint + VFMODULE + URI_SEPARATOR;
234 vnfResourceURI = endpoint + VNF_RESOURCE + URI_SEPARATOR;
235 vfModuleCustomizationURI = endpoint + VFMODULE_CUSTOMIZATION + URI_SEPARATOR;
236 networkCollectionResourceCustomizationURI = endpoint + NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
237 networkResourceCustomizationURI = endpoint + NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
238 vnfResourceCustomizationURI = endpoint + VNF_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
239 collectionNetworkResourceCustomizationURI = endpoint + COLLECTION_NETWORK_RESOURCE_CUSTOMIZATION + URI_SEPARATOR;
240 instanceGroupURI = endpoint + INSTANCE_GROUP + URI_SEPARATOR;
241 cloudifyManagerURI = endpoint + CLOUDIFY_MANAGER + URI_SEPARATOR;
242 cloudSiteURI = endpoint + CLOUD_SITE + URI_SEPARATOR;
245 public CatalogDbClient() {
246 ClientHttpRequestFactory factory = new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory());
248 ClientFactory clientFactory = Configuration.builder().setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
249 restTemplate.getInterceptors().add((new SpringClientFilter()));
251 restTemplate.getInterceptors().add((request, body, execution) -> {
253 request.getHeaders().add(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
254 return execution.execute(request, body);
256 }).build().buildClientFactory();
257 serviceClient = clientFactory.create(Service.class);
258 networkRecipeClient = clientFactory.create(NetworkRecipe.class);
259 networkResourceCustomizationClient = clientFactory.create(NetworkResourceCustomization.class);
260 vnfResourceClient = clientFactory.create(VnfResource.class);
261 vnfResourceCustomizationClient = clientFactory.create(VnfResourceCustomization.class);
262 vnfRecipeClient = clientFactory.create(VnfRecipe.class);
263 orchestrationClient = clientFactory.create(OrchestrationFlow.class);
264 vfModuleCustomizationClient = clientFactory.create(VfModuleCustomization.class);
265 vfModuleClient = clientFactory.create(VfModule.class);
266 vnfComponentsRecipeClient = clientFactory.create(VnfComponentsRecipe.class);
267 northBoundRequestClient = clientFactory.create(NorthBoundRequest.class);
268 rainyDayHandlerStatusClient = clientFactory.create(RainyDayHandlerStatus.class);
269 buildingBlockDetailClient = clientFactory.create(BuildingBlockDetail.class);
270 orchestrationStatusStateTransitionDirectiveClient = clientFactory
271 .create(OrchestrationStatusStateTransitionDirective.class);
272 vnfcInstanceGroupCustomizationClient = clientFactory.create(VnfcInstanceGroupCustomization.class);
273 collectionResourceInstanceGroupCustomizationClient = clientFactory
274 .create(CollectionResourceInstanceGroupCustomization.class);
275 instanceGroupClient = clientFactory.create(InstanceGroup.class);
276 networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
277 collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
278 cloudSiteClient = clientFactory.create(CloudSite.class);
279 cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
280 serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
281 controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
284 public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(String modelCustomizationUUID) {
285 NetworkCollectionResourceCustomization networkCollectionResourceCustomization =
286 this.getSingleResource(networkCollectionResourceCustomizationClient, getUri(networkCollectionResourceCustomizationURI + modelCustomizationUUID));
287 if (networkCollectionResourceCustomization != null) {
288 networkCollectionResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
290 return networkCollectionResourceCustomization;
293 public Service getServiceByID(String modelUUID) {
294 Service service = getSingleResource(serviceClient,getUri(serviceURI + modelUUID));
295 if (service != null) {
296 service.setModelUUID(modelUUID);
301 public VfModule getVfModuleByModelUUID(String modelUUID) {
302 VfModule vfModule = getSingleResource(vfModuleClient,getUri(vfModuleURI + modelUUID));
303 if (vfModule != null) {
304 vfModule.setModelUUID(modelUUID);
309 public VnfResource getVnfResourceByModelUUID(String modelUUID){
311 VnfResource vnfResource = this.getSingleResource(vnfResourceClient, getUri(vnfResourceURI + modelUUID));
312 if (vnfResource != null) {
313 vnfResource.setModelUUID(modelUUID);
318 public VnfResourceCustomization getVnfResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
319 VnfResourceCustomization vnfResourceCustomization = getSingleResource(vnfResourceCustomizationClient, getUri(vnfResourceCustomizationURI + modelCustomizationUUID));
320 if (vnfResourceCustomization != null) {
321 vnfResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
323 return vnfResourceCustomization;
326 public CollectionNetworkResourceCustomization getCollectionNetworkResourceCustomizationByID(String modelCustomizationUUID) {
327 CollectionNetworkResourceCustomization collectionNetworkResourceCustomization =
328 this.getSingleResource(collectionNetworkResourceCustomizationClient,getUri(UriBuilder
329 .fromUri(collectionNetworkResourceCustomizationURI + modelCustomizationUUID).build().toString()));
330 if (collectionNetworkResourceCustomization != null) {
331 collectionNetworkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
333 return collectionNetworkResourceCustomization;
336 public InstanceGroup getInstanceGroupByModelUUID(String modelUUID) {
337 InstanceGroup instanceGroup = this.getSingleResource(instanceGroupClient, getUri(instanceGroupURI + modelUUID));
338 if (instanceGroup != null) {
339 instanceGroup.setModelUUID(modelUUID);
341 return instanceGroup;
344 public VfModuleCustomization getVfModuleCustomizationByModelCuztomizationUUID(String modelCustomizationUUID) {
345 VfModuleCustomization vfModuleCust = this.getSingleResource(vfModuleCustomizationClient, getUri(vfModuleCustomizationURI + modelCustomizationUUID));
346 if (vfModuleCust != null) {
347 vfModuleCust.setModelCustomizationUUID(modelCustomizationUUID);
352 public NetworkResourceCustomization getNetworkResourceCustomizationByModelCustomizationUUID(String modelCustomizationUUID){
353 NetworkResourceCustomization networkResourceCustomization =
354 this.getSingleResource(networkResourceCustomizationClient, getUri(networkResourceCustomizationURI + modelCustomizationUUID));
355 if (networkResourceCustomization != null) {
356 networkResourceCustomization.setModelCustomizationUUID(modelCustomizationUUID);
358 return networkResourceCustomization;
361 public BuildingBlockDetail getBuildingBlockDetail(String buildingBlockName) {
362 BuildingBlockDetail buildingBlockDetail = getSingleResource(buildingBlockDetailClient, getUri(UriBuilder
363 .fromUri(findOneByBuildingBlockName).queryParam(BUILDING_BLOCK_NAME, buildingBlockName).build().toString()));
364 if (buildingBlockDetail != null) {
365 buildingBlockDetail.setBuildingBlockName(buildingBlockName);
367 return buildingBlockDetail;
371 public OrchestrationStatusStateTransitionDirective getOrchestrationStatusStateTransitionDirective(
372 ResourceType resourceType, OrchestrationStatus orchestrationStatus, OrchestrationAction targetAction) {
373 return getSingleResource(orchestrationStatusStateTransitionDirectiveClient, UriBuilder
374 .fromUri(findOneByResourceTypeAndOrchestrationStatusAndTargetAction)
375 .queryParam(RESOURCE_TYPE, resourceType.name())
376 .queryParam(ORCHESTRATION_STATUS, orchestrationStatus.name())
377 .queryParam(TARGET_ACTION, targetAction.name()).build());
380 public List<OrchestrationFlow> getOrchestrationFlowByAction(String action) {
381 return this.getMultipleResources(orchestrationClient, UriBuilder
382 .fromUri(findByAction).queryParam(ACTION, action).build());
385 public List<VnfcInstanceGroupCustomization> getVnfcInstanceGroupsByVnfResourceCust(String modelCustomizationUUID) {
386 return this.getMultipleResources(vnfcInstanceGroupCustomizationClient, UriBuilder
387 .fromUri(findVnfcInstanceGroupCustomizationByModelCustomizationUUID)
388 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
391 public List<CollectionResourceInstanceGroupCustomization> getCollectionResourceInstanceGroupCustomizationByModelCustUUID(
392 String modelCustomizationUUID) {
393 return this.getMultipleResources(collectionResourceInstanceGroupCustomizationClient, UriBuilder
394 .fromUri(findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID)
395 .queryParam(MODEL_CUSTOMIZATION_UUID, modelCustomizationUUID).build());
398 public VfModuleCustomization getVfModuleCustomizationByModelCustomizationUUIDAndVfModuleModelUUID(String modelCustomizationUUID, String vfModuleModelUUID) {
399 return this.getSingleResource(vfModuleCustomizationClient, getUri(UriBuilder
400 .fromUri(findByModelCustomizationUUIDAndVfModuleModelUUID)
401 .queryParam(MODEL_CUSTOMIZATION_UUID,modelCustomizationUUID)
402 .queryParam(VF_MODULE_MODEL_UUID,vfModuleModelUUID).build().toString()));
405 public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(String requestAction,
406 String resourceName, boolean aLaCarte) {
407 return this.getSingleResource(northBoundRequestClient, UriBuilder
408 .fromUri(findOneByActionAndRequestScopeAndIsAlacarte)
409 .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
410 .queryParam(IS_ALACARTE, aLaCarte).build());
413 public RainyDayHandlerStatus getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
414 String flowName, String serviceType, String vnfType, String errorCode, String workStep) {
415 return this.getSingleResource(rainyDayHandlerStatusClient, UriBuilder
416 .fromUri(findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep)
417 .queryParam(FLOW_NAME, flowName).queryParam(SERVICE_TYPE, serviceType)
418 .queryParam(VNF_TYPE, vnfType).queryParam(ERROR_CODE, errorCode).queryParam(WORK_STEP, workStep)
422 public ServiceRecipe getFirstByServiceModelUUIDAndAction(String modelUUID, String action){
423 return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
424 .fromUri(findFirstByServiceModelUUIDAndActionURI)
425 .queryParam(SERVICE_MODEL_UUID,modelUUID)
426 .queryParam(ACTION,action).build().toString()));
429 public NetworkRecipe getFirstNetworkRecipeByModelNameAndAction(String modelName, String action){
430 return this.getSingleResource(networkRecipeClient, UriBuilder
431 .fromUri(findFirstByModelNameAndAction)
432 .queryParam(MODEL_NAME,modelName)
433 .queryParam(ACTION,action).build());
436 public ControllerSelectionReference getControllerSelectionReferenceByVnfTypeAndActionCategory(String vnfType, String actionCategory) {
437 return this.getSingleResource(controllerSelectionReferenceClient, UriBuilder
438 .fromUri(endpoint + "/controllerSelectionReference/search/findControllerSelectionReferenceByVnfTypeAndActionCategory")
439 .queryParam("VNF_TYPE", vnfType).queryParam("ACTION_CATEGORY", actionCategory).build());
442 public Service getFirstByModelNameOrderByModelVersionDesc(String modelName){
443 return this.getSingleResource(serviceClient,UriBuilder
444 .fromUri(findFirstByModelNameURI)
445 .queryParam(MODEL_NAME,modelName).build());
449 public VnfResource getFirstVnfResourceByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
450 return this.getSingleResource(vnfResourceClient, getUri(UriBuilder
451 .fromUri(findFirstResourceByModelInvariantUUIDAndModelVersion)
452 .queryParam(MODEL_INVARIANT_UUID,modelInvariantUUID)
453 .queryParam(MODEL_VERSION,modelVersion).build().toString()));
457 public VnfResourceCustomization getFirstVnfResourceCustomizationByModelInstanceNameAndVnfResources(String modelInstanceName, VnfResource vnfResource){
458 return this.getSingleResource(vnfResourceCustomizationClient, getUri(UriBuilder
459 .fromUri(findByModelInstanceNameAndVnfResources)
460 .queryParam(MODEL_INSTANCE_NAME,modelInstanceName)
461 .queryParam(VNF_RESOURCE_MODEL_UUID,vnfResource.getModelUUID()).build().toString()));
464 public VnfRecipe getFirstVnfRecipeByNfRoleAndAction(String nfRole, String action){
465 return this.getSingleResource(vnfRecipeClient,getUri(UriBuilder
466 .fromUri(findFirstVnfRecipeByNfRoleAndAction)
467 .queryParam(NF_ROLE,nfRole)
468 .queryParam(ACTION,action).build().toString()));
471 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction(String vfModuleModelUUID, String vnfComponentType, String action){
472 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
473 .fromUri(findFirstVnfComponentsRecipeByVfModuleModelUUIDAndVnfComponentTypeAndAction)
474 .queryParam(VF_MODULE_MODEL_UUID,vfModuleModelUUID)
475 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
476 .queryParam(ACTION,action).build().toString()));
479 public VnfComponentsRecipe getFirstVnfComponentsRecipeByVnfComponentTypeAndAction(String vnfComponentType, String action) {
480 return this.getSingleResource(vnfComponentsRecipeClient,getUri(UriBuilder
481 .fromUri(findFirstVnfComponentsRecipeByVnfComponentTypeAndAction)
482 .queryParam(VNF_COMPONENT_TYPE,vnfComponentType)
483 .queryParam(ACTION,action).build().toString()));
485 protected URI getUri(String template){
486 return URI.create(template);
489 public CloudifyManager getCloudifyManager(String id) {
490 return this.getSingleResource(cloudifyManagerClient,getUri(cloudifyManagerURI + id));
493 public CloudSite getCloudSite(String id){
494 return this.getSingleResource(cloudSiteClient, getUri(cloudSiteURI + id));
497 public CloudSite getCloudSiteByClliAndAicVersion (String clli, String cloudVersion){
498 return this.getSingleResource(cloudSiteClient, getUri(UriBuilder
499 .fromUri(findByClliAndCloudVersion)
500 .queryParam(CLLI,clli).queryParam(CLOUD_VERSION,cloudVersion).build().toString()));
503 public Service getServiceByModelVersionAndModelInvariantUUID(String modelVersion, String modelInvariantUUID) {
504 return this.getSingleResource(serviceClient, getUri(UriBuilder
505 .fromUri(findFirstByModelVersionAndModelInvariantUUIDURI)
506 .queryParam(MODEL_VERSION, modelVersion)
507 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
510 public VfModule getVfModuleByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
511 return this.getSingleResource(vfModuleClient,getUri(UriBuilder
512 .fromUri(findFirstVfModuleByModelInvariantUUIDAndModelVersion)
513 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID)
514 .queryParam(MODEL_VERSION, modelVersion).build().toString()));
517 public List<Service> getServiceByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
518 return this.getMultipleResources(serviceClient, getUri(UriBuilder
519 .fromUri(findByModelInvariantUUIDURI)
520 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
523 public List<VfModule> getVfModuleByModelInvariantUUIDOrderByModelVersionDesc(String modelInvariantUUID) {
524 return this.getMultipleResources(vfModuleClient, getUri(UriBuilder
525 .fromUri(findVfModuleByModelInvariantUUIDOrderByModelVersionDesc)
526 .queryParam(MODEL_INVARIANT_UUID, modelInvariantUUID).build().toString()));
529 private <T> T getSingleResource(Client<T> client, URI uri) {
530 return client.get(uri);
533 private <T> List<T> getMultipleResources(Client<T> client, URI uri) {
534 Iterable<T> iterator = client.getAll(uri);
535 List<T> list = new ArrayList<>();
536 Iterator<T> it = iterator.iterator();
537 it.forEachRemaining(list::add);