Configurable option to load models via Gizmo
[aai/model-loader.git] / src / main / java / org / onap / aai / modelloader / entity / model / NamedQueryArtifact.java
index 668a751..ba5d12b 100644 (file)
@@ -1,22 +1,22 @@
 /**
- * ============LICENSE_START==========================================
+ * ============LICENSE_START=======================================================
  * org.onap.aai
- * ===================================================================
+ * ================================================================================
  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2018 Amdocs
- * ===================================================================
+ * Copyright © 2017-2018 European Software Marketing Ltd.
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *        http://www.apache.org/licenses/LICENSE-2.0
+ *       http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END============================================
+ * ============LICENSE_END=========================================================
  */
 package org.onap.aai.modelloader.entity.model;
 
@@ -27,16 +27,12 @@ import javax.ws.rs.core.Response;
 import org.onap.aai.modelloader.config.ModelLoaderConfig;
 import org.onap.aai.modelloader.entity.ArtifactType;
 import org.onap.aai.modelloader.restclient.AaiRestClient;
-import org.onap.aai.modelloader.service.ModelLoaderMsgs;
-import org.onap.aai.cl.api.Logger;
-import org.onap.aai.cl.eelf.LoggerFactory;
 
 import org.onap.aai.modelloader.entity.Artifact;
 import org.onap.aai.restclient.client.OperationResult;
 
-public class NamedQueryArtifact extends AbstractModelArtifact {
 
-    private Logger logger = LoggerFactory.getInstance().getLogger(NamedQueryArtifact.class.getName());
+public class NamedQueryArtifact extends AbstractModelArtifact {
 
     private String namedQueryUuid;
 
@@ -59,24 +55,31 @@ public class NamedQueryArtifact extends AbstractModelArtifact {
 
     @Override
     public boolean push(AaiRestClient aaiClient, ModelLoaderConfig config, String distId, List<Artifact> completedArtifacts) {
+        if (config.useGizmo()) {
+            return pushToGizmo(aaiClient, config, distId, completedArtifacts);
+        }
+
+        return pushToResources(aaiClient, config, distId, completedArtifacts);
+    }
+
+    private boolean pushToResources(AaiRestClient aaiClient, ModelLoaderConfig config, String distId,
+            List<Artifact> completedArtifacts) {
         OperationResult getResponse =
                 aaiClient.getResource(getNamedQueryUrl(config), distId, MediaType.APPLICATION_XML_TYPE);
-        if ((getResponse == null) || (getResponse.getResultCode() != Response.Status.OK.getStatusCode())) {
+        if (getResponse == null || getResponse.getResultCode() != Response.Status.OK.getStatusCode()) {
             // Only attempt the PUT if the model doesn't already exist
             OperationResult putResponse = aaiClient.putResource(getNamedQueryUrl(config), getPayload(), distId,
                     MediaType.APPLICATION_XML_TYPE);
-            if ((putResponse != null) && (putResponse.getResultCode() == Response.Status.CREATED.getStatusCode())) {
+            if (putResponse != null && putResponse.getResultCode() == Response.Status.CREATED.getStatusCode()) {
                 completedArtifacts.add(this);
-                logger.info(ModelLoaderMsgs.DISTRIBUTION_EVENT,
-                        getType().toString() + " " + getUniqueIdentifier() + " successfully ingested.");
+                logInfoMsg(getType().toString() + " " + getUniqueIdentifier() + " successfully ingested.");
             } else {
-                logger.error(ModelLoaderMsgs.DISTRIBUTION_EVENT_ERROR, "Ingestion failed for " + getType().toString()
+                logErrorMsg("Ingestion failed for " + getType().toString()
                         + " " + getUniqueIdentifier() + ". Rolling back distribution.");
                 return false;
             }
         } else {
-            logger.info(ModelLoaderMsgs.DISTRIBUTION_EVENT,
-                    getType().toString() + " " + getUniqueIdentifier() + " already exists.  Skipping ingestion.");
+            logInfoMsg(getType().toString() + " " + getUniqueIdentifier() + " already exists.  Skipping ingestion.");
         }
 
         return true;
@@ -84,6 +87,12 @@ public class NamedQueryArtifact extends AbstractModelArtifact {
 
     @Override
     public void rollbackModel(AaiRestClient aaiClient, ModelLoaderConfig config, String distId) {
+        // Gizmo is resilient and doesn't require a rollback.  A redistribution will work fine even if 
+        // the model is partially loaded.
+        if (config.useGizmo()) {
+            return;
+        }
+        
         // Best effort to delete. Nothing we can do in the event this fails.
         aaiClient.getAndDeleteResource(getNamedQueryUrl(config), distId);
     }
@@ -93,7 +102,7 @@ public class NamedQueryArtifact extends AbstractModelArtifact {
         String subURL = config.getAaiNamedQueryUrl(getModelNamespaceVersion()).trim();
         String instance = this.getNamedQueryUuid();
 
-        if ((!baseURL.endsWith("/")) && (!subURL.startsWith("/"))) {
+        if (!baseURL.endsWith("/") && !subURL.startsWith("/")) {
             baseURL = baseURL + "/";
         }