Minior Change - Licence Statement
[so.git] / mso-catalog-db / src / main / java / org / onap / so / db / catalog / client / CatalogDbClient.java
index 9742a0c..ac123b2 100644 (file)
 
 package org.onap.so.db.catalog.client;
 
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+import javax.ws.rs.core.UriBuilder;
+
 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.CloudifyManager;
@@ -27,6 +35,8 @@ import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
 import org.onap.so.db.catalog.beans.ControllerSelectionReference;
 import org.onap.so.db.catalog.beans.CvnfcCustomization;
+import org.onap.so.db.catalog.beans.ExternalServiceToInternalService;
+import org.onap.so.db.catalog.beans.HomingInstance;
 import org.onap.so.db.catalog.beans.InstanceGroup;
 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
 import org.onap.so.db.catalog.beans.NetworkRecipe;
@@ -55,17 +65,11 @@ import org.springframework.http.client.BufferingClientHttpRequestFactory;
 import org.springframework.http.client.ClientHttpRequestFactory;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.stereotype.Component;
+
 import uk.co.blackpepper.bowman.Client;
 import uk.co.blackpepper.bowman.ClientFactory;
 import uk.co.blackpepper.bowman.Configuration;
 
-import javax.annotation.PostConstruct;
-import javax.ws.rs.core.UriBuilder;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 @Component("CatalogDbClient")
 public class CatalogDbClient {
 
@@ -84,6 +88,7 @@ public class CatalogDbClient {
        private static final String NETWORK_COLLECTION_RESOURCE_CUSTOMIZATION = "/networkCollectionResourceCustomization";
        private static final String VNF_RESOURCE_CUSTOMIZATION = "/vnfResourceCustomization";
        private static final String SERVICE = "/service";
+       private static final String EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING = "/externalServiceToInternalService";
        private static final String VNF_RESOURCE = "/vnfResource";
        private static final String VNF_RECIPE = "/vnfRecipe";
        private static final String VFMODULE = "/vfModule";
@@ -96,6 +101,8 @@ public class CatalogDbClient {
        private static final String URI_SEPARATOR = "/";
 
        private static final String SERVICE_MODEL_UUID = "serviceModelUUID";
+       private static final String SERVICE_NAME = "serviceName";
+       private static final String MODEL_UUID = "modelUUID";
        private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID";
        private static final String ACTION = "action";
        private static final String MODEL_NAME = "modelName";
@@ -112,6 +119,7 @@ public class CatalogDbClient {
        private static final String TARGET_ACTION = "targetAction";
        private static final String REQUEST_SCOPE = "requestScope";
        private static final String IS_ALACARTE = "isALaCarte";
+       private static final String CLOUD_OWNER = "cloudOwner";
        private static final String FLOW_NAME = "flowName";
        private static final String SERVICE_TYPE = "serviceType";
        private static final String VNF_TYPE = "vnfType";
@@ -119,9 +127,15 @@ public class CatalogDbClient {
        private static final String WORK_STEP = "workStep";
        private static final String CLLI = "clli";
        private static final String CLOUD_VERSION = "cloudVersion";
+       private static final String HOMING_INSTANCE = "/homingInstance";
        
        private static final String TARGET_ENTITY = "SO:CatalogDB";
+       private static final String ASTERISK = "*";
 
+       private String findExternalToInternalServiceByServiceName = "/findByServiceName";
+       private String findServiceByModelName = "/findOneByModelName";
+       private String findServiceRecipeByActionAndServiceModelUUID = "/findByActionAndServiceModelUUID";
+       private String findServiceByModelUUID = "/findOneByModelUUID";
        private String findFirstByModelNameURI = "/findFirstByModelNameOrderByModelVersionDesc";
        private String findFirstByServiceModelUUIDAndActionURI = "/findFirstByServiceModelUUIDAndAction";
        private String findFirstByModelVersionAndModelInvariantUUIDURI = "/findFirstByModelVersionAndModelInvariantUUID";
@@ -141,8 +155,12 @@ public class CatalogDbClient {
        private String findVnfcInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
        private String findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
        private String findOneByActionAndRequestScopeAndIsAlacarte = "/findOneByActionAndRequestScopeAndIsAlacarte";
+       private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner";
+       private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType";
        private String findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = "/findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep";
        private String findByClliAndCloudVersion = "/findByClliAndCloudVersion";
+       private String findServiceByServiceInstanceId = "/findServiceByServiceInstanceId";
+
 
        private String serviceURI;
        private String vfModuleURI;
@@ -155,6 +173,7 @@ public class CatalogDbClient {
        private String instanceGroupURI;
        private String cloudifyManagerURI;
        private String cloudSiteURI;
+       private String homingInstanceURI;
 
        private final Client<Service> serviceClient;
 
@@ -196,11 +215,15 @@ public class CatalogDbClient {
 
        private final Client<ServiceRecipe> serviceRecipeClient;
 
+       private final Client<ExternalServiceToInternalService> externalServiceToInternalServiceClient;
+
        private final Client<CloudSite> cloudSiteClient;
 
+       private final Client<HomingInstance> homingInstanceClient;
+
        private final Client<CloudifyManager> cloudifyManagerClient;
        
-       private Client<CvnfcCustomization> cvnfcCustomizationClient;
+       private final Client<CvnfcCustomization> cvnfcCustomizationClient;
 
        private final Client<ControllerSelectionReference> controllerSelectionReferenceClient;
 
@@ -213,6 +236,10 @@ public class CatalogDbClient {
 
        @PostConstruct
        public void init(){
+               findExternalToInternalServiceByServiceName = endpoint + EXTERNAL_SERVICE_TO_INTERNAL_MODEL_MAPPING + SEARCH + findExternalToInternalServiceByServiceName;
+               findServiceByModelName =  endpoint + SERVICE + SEARCH + findServiceByModelName;
+               findServiceRecipeByActionAndServiceModelUUID = endpoint + SERVICE_RECIPE + SEARCH + findServiceRecipeByActionAndServiceModelUUID;
+               findServiceByModelUUID =  endpoint + SERVICE + SEARCH + findServiceByModelUUID;
                findFirstByModelNameURI = endpoint + SERVICE + SEARCH + findFirstByModelNameURI;
                findFirstByModelVersionAndModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findFirstByModelVersionAndModelInvariantUUIDURI;
                findByModelInvariantUUIDURI = endpoint + SERVICE + SEARCH + findByModelInvariantUUIDURI;
@@ -232,6 +259,8 @@ public class CatalogDbClient {
                findVnfcInstanceGroupCustomizationByModelCustomizationUUID = endpoint + VNFC_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findVnfcInstanceGroupCustomizationByModelCustomizationUUID;
                findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = endpoint + COLLECTION_RESOURCE_INSTANCE_GROUP_CUSTOMIZATION + SEARCH + findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID;
                findOneByActionAndRequestScopeAndIsAlacarte = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarte;
+               findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner;
+               findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = endpoint + NORTHBOUND_REQUEST_REF_LOOKUP + SEARCH + findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType;
                findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = endpoint + RAINY_DAY_HANDLER_MACRO + SEARCH + findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep;
                findByClliAndCloudVersion = endpoint + CLOUD_SITE + SEARCH + findByClliAndCloudVersion;
 
@@ -246,6 +275,7 @@ public class CatalogDbClient {
                instanceGroupURI = endpoint + INSTANCE_GROUP + URI_SEPARATOR;
                cloudifyManagerURI = endpoint + CLOUDIFY_MANAGER + URI_SEPARATOR;
                cloudSiteURI = endpoint + CLOUD_SITE + URI_SEPARATOR;
+               homingInstanceURI = endpoint + HOMING_INSTANCE + URI_SEPARATOR;
 
        }
 
@@ -284,10 +314,12 @@ public class CatalogDbClient {
                networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
                collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
                cloudSiteClient = clientFactory.create(CloudSite.class);
+               homingInstanceClient = clientFactory.create(HomingInstance.class);
                cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
                serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
                cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
                controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
+               externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
        }
 
        public CatalogDbClient(String baseUri, String auth) {
@@ -325,10 +357,12 @@ public class CatalogDbClient {
                networkCollectionResourceCustomizationClient = clientFactory.create(NetworkCollectionResourceCustomization.class);
                collectionNetworkResourceCustomizationClient = clientFactory.create(CollectionNetworkResourceCustomization.class);
                cloudSiteClient = clientFactory.create(CloudSite.class);
+               homingInstanceClient = clientFactory.create(HomingInstance.class);
                cloudifyManagerClient = clientFactory.create(CloudifyManager.class);
                serviceRecipeClient = clientFactory.create(ServiceRecipe.class);
                cvnfcCustomizationClient = clientFactory.create(CvnfcCustomization.class);
                controllerSelectionReferenceClient = clientFactory.create(ControllerSelectionReference.class);
+               externalServiceToInternalServiceClient = clientFactory.create(ExternalServiceToInternalService.class);
        }
 
        public NetworkCollectionResourceCustomization getNetworkCollectionResourceCustomizationByID(String modelCustomizationUUID) {
@@ -459,6 +493,26 @@ public class CatalogDbClient {
                                .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
                                .queryParam(IS_ALACARTE, aLaCarte).build());
        }
+       
+       public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(String requestAction,
+                       String resourceName, boolean aLaCarte, String cloudOwner) {
+               return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
+                               .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
+                               .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
+                               .queryParam(IS_ALACARTE, aLaCarte)
+                               .queryParam(CLOUD_OWNER, cloudOwner)
+                               .queryParam(SERVICE_TYPE, ASTERISK).build().toString()));
+       }
+       
+       public NorthBoundRequest getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwnerAndServiceType(String requestAction,
+                       String resourceName, boolean aLaCarte, String cloudOwner, String serviceType) {
+               return this.getSingleResource(northBoundRequestClient, getUri(UriBuilder
+                               .fromUri(findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType)
+                               .queryParam(ACTION, requestAction).queryParam(REQUEST_SCOPE, resourceName)
+                               .queryParam(IS_ALACARTE, aLaCarte)
+                               .queryParam(CLOUD_OWNER, cloudOwner)
+                               .queryParam(SERVICE_TYPE, serviceType).build().toString()));
+       }
 
        public RainyDayHandlerStatus getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep(
                        String flowName, String serviceType, String vnfType, String errorCode, String workStep) {
@@ -495,6 +549,30 @@ public class CatalogDbClient {
                                .queryParam(MODEL_NAME,modelName).build());
        }
 
+       public ExternalServiceToInternalService findExternalToInternalServiceByServiceName(String serviceName){
+               return this.getSingleResource(externalServiceToInternalServiceClient, getUri(UriBuilder
+                               .fromUri(findExternalToInternalServiceByServiceName)
+                               .queryParam(SERVICE_NAME,serviceName).build().toString()));
+       }
+
+       public  ServiceRecipe findServiceRecipeByActionAndServiceModelUUID(String action,String modelUUID){
+               return this.getSingleResource(serviceRecipeClient, getUri(UriBuilder
+                               .fromUri(findServiceRecipeByActionAndServiceModelUUID)
+                               .queryParam(ACTION,action)
+                               .queryParam(SERVICE_MODEL_UUID,modelUUID).build().toString()));
+       }
+
+       public Service getServiceByModelName(String modelName){
+               return this.getSingleResource(serviceClient,getUri(UriBuilder
+                               .fromUri(findServiceByModelName)
+                               .queryParam(MODEL_NAME,modelName).build().toString()));
+       }
+
+       public Service getServiceByModelUUID(String modelModelUUID){
+               return this.getSingleResource(serviceClient,getUri(UriBuilder
+                               .fromUri(findServiceByModelUUID)
+                               .queryParam(MODEL_UUID,modelModelUUID).build().toString()));
+       }
 
        public VnfResource getFirstVnfResourceByModelInvariantUUIDAndModelVersion(String modelInvariantUUID, String modelVersion){
                return this.getSingleResource(vnfResourceClient, getUri(UriBuilder
@@ -541,20 +619,39 @@ public class CatalogDbClient {
        }
 
        public CloudSite getCloudSite(String id){
-               return this.getSingleResource(cloudSiteClient, getUri(cloudSiteURI + id));
+               return this.getSingleResource(cloudSiteClient,
+                               getUri(cloudSiteURI + id));
+       }
+
+       public CloudSite getCloudSite(String id, String uri){
+               return this.getSingleResource(cloudSiteClient,
+                               getUri(uri + id));
        }
 
        public void postCloudSite(CloudSite cloudSite){
                this.postSingleResource(cloudSiteClient, cloudSite);
        }
 
-
        public CloudSite getCloudSiteByClliAndAicVersion (String clli, String cloudVersion){
                return this.getSingleResource(cloudSiteClient, getUri(UriBuilder
                                .fromUri(findByClliAndCloudVersion)
                                .queryParam(CLLI,clli).queryParam(CLOUD_VERSION,cloudVersion).build().toString()));
        }
 
+       public HomingInstance getHomingInstance (String serviceInstanceId){
+               return this.getSingleResource(homingInstanceClient,
+                               getUri(homingInstanceURI + serviceInstanceId));
+       }
+
+       public HomingInstance getHomingInstance (String serviceInstanceId, String uri){
+               return this.getSingleResource(homingInstanceClient,
+                               getUri(uri + serviceInstanceId));
+       }
+
+       public void postHomingInstance(HomingInstance homingInstance){
+               this.postSingleResource(homingInstanceClient, homingInstance);
+       }
+
        public Service getServiceByModelVersionAndModelInvariantUUID(String modelVersion, String modelInvariantUUID) {
                return this.getSingleResource(serviceClient, getUri(UriBuilder
                                .fromUri(findFirstByModelVersionAndModelInvariantUUIDURI)
@@ -598,18 +695,11 @@ public class CatalogDbClient {
        }
        
        public List<CvnfcCustomization> getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID(String vnfCustomizationUUID, String vfModuleCustomizationUUID){
-               return this.getMultipleVnfcCustomizations(
-                               UriBuilder.fromUri(endpoint + "/vnfcCustomization/search/findByVnfCustomizationUUIDAndVfModuleCustomizationUUID")
-                                               .queryParam("VNF_CUSTOMIZATION_UUID", vnfCustomizationUUID)
-                                               .queryParam("VFMODULE_CUSTOMIZATION_UUID", vfModuleCustomizationUUID).build());
-       }
-       
-       private List<CvnfcCustomization> getMultipleVnfcCustomizations(URI uri) {
-               Iterable<CvnfcCustomization> vnfcIterator = cvnfcCustomizationClient.getAll(uri);
-               List<CvnfcCustomization> vnfcList = new ArrayList<>();
-               Iterator<CvnfcCustomization> it = vnfcIterator.iterator();
-               it.forEachRemaining(vnfcList::add);
-               return vnfcList;
+
+               return this.getMultipleResources(cvnfcCustomizationClient,getUri(UriBuilder
+                                               .fromUri(endpoint + "/cvnfcCustomization/search/findByVnfResourceCustomizationAndVfModuleCustomization")
+                                               .queryParam("VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID", vnfCustomizationUUID)
+                                               .queryParam("VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID", vfModuleCustomizationUUID).build().toString()));
        }
 
 }