Remove zookeeper reference
[music.git] / src / main / java / org / onap / music / main / MusicUtil.java
index 805f459..aa82ea9 100755 (executable)
@@ -4,7 +4,8 @@
  * ===================================================================
  *  Copyright (c) 2017 AT&T Intellectual Property
  * ===================================================================
- * Modifications Copyright (c) 2018 IBM.
+ *  Modifications Copyright (c) 2018 IBM.
+ *  Modifications Copyright (c) 2019 Samsung.
  * ===================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
 
 package org.onap.music.main;
 
+import com.datastax.driver.core.ColumnDefinitions;
+import com.datastax.driver.core.ColumnDefinitions.Definition;
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -43,14 +48,16 @@ import java.util.concurrent.ConcurrentMap;
 
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
-
+import org.onap.music.datastore.MusicDataStoreHandle;
 import org.onap.music.datastore.PreparedQueryObject;
 import org.onap.music.eelf.logging.EELFLoggerDelegate;
+import org.onap.music.eelf.logging.format.AppMessages;
+import org.onap.music.eelf.logging.format.ErrorSeverity;
+import org.onap.music.eelf.logging.format.ErrorTypes;
 import org.onap.music.exceptions.MusicQueryException;
 import org.onap.music.exceptions.MusicServiceException;
 import org.onap.music.service.MusicCoreService;
 import org.onap.music.service.impl.MusicCassaCore;
-import org.onap.music.service.impl.MusicZKCore;
 
 import com.datastax.driver.core.ConsistencyLevel;
 import com.datastax.driver.core.DataType;
@@ -86,7 +93,6 @@ public class MusicUtil {
     public static final String USERID = "userId";
     public static final String PASSWORD = "password";
     public static final String CASSANDRA = "cassandra";
-    public static final String ZOOKEEPER = "zookeeper";
 
     public static final String AUTHORIZATION = "Authorization";
 
@@ -780,8 +786,6 @@ public class MusicUtil {
     public static MusicCoreService  getMusicCoreService() {
         if(getLockUsing().equals(MusicUtil.CASSANDRA))
             return MusicCassaCore.getInstance();
-        else if (getLockUsing().equals(MusicUtil.ZOOKEEPER))
-            return MusicZKCore.getInstance();
         else
             return MusicCassaCore.getInstance();
     }
@@ -806,13 +810,58 @@ public class MusicUtil {
 
 
     public static void setIsCadi(boolean isCadi) {
-        // TODO Auto-generated method stub
         MusicUtil.isCadi = isCadi;
     }
+
+    public static void writeBackToQuorum(PreparedQueryObject selectQuery, String primaryKeyName,
+        PreparedQueryObject updateQuery, String keyspace, String table,
+        Object cqlFormattedPrimaryKeyValue)
+        throws Exception {
+        try {
+            ResultSet results = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(selectQuery);
+            // write it back to a quorum
+            Row row = results.one();
+            ColumnDefinitions colInfo = row.getColumnDefinitions();
+            int totalColumns = colInfo.size();
+            int counter = 1;
+            StringBuilder fieldValueString = new StringBuilder("");
+            for (Definition definition : colInfo) {
+                String colName = definition.getName();
+                if (colName.equals(primaryKeyName))
+                    continue;
+                DataType colType = definition.getType();
+                Object valueObj = MusicDataStoreHandle.getDSHandle().getColValue(row, colName, colType);
+                Object valueString = MusicUtil.convertToActualDataType(colType, valueObj);
+                fieldValueString.append(colName + " = ?");
+                updateQuery.addValue(valueString);
+                if (counter != (totalColumns - 1))
+                    fieldValueString.append(",");
+                counter = counter + 1;
+            }
+            updateQuery.appendQueryString("UPDATE " + keyspace + "." + table + " SET "
+                + fieldValueString + " WHERE " + primaryKeyName + "= ? " + ";");
+            updateQuery.addValue(cqlFormattedPrimaryKeyValue);
+
+            MusicDataStoreHandle.getDSHandle().executePut(updateQuery, "critical");
+        } catch (MusicServiceException | MusicQueryException e) {
+            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.QUERYERROR +""+updateQuery ,
+                ErrorSeverity.MAJOR, ErrorTypes.QUERYERROR);
+        }
+    }
     
     public static boolean getIsCadi() {
         return MusicUtil.isCadi;
     }
 
+
+    /**
+     * @return a random uuid
+     */
+    public static String generateUUID() {
+        String uuid = UUID.randomUUID().toString();
+        logger.info(EELFLoggerDelegate.applicationLogger,"New AID generated: "+uuid);
+        return uuid;
+    }
+
 }