Some bug fixes and Minor Chages.
[music.git] / src / main / java / org / onap / music / eelf / healthcheck / MusicHealthCheck.java
index 3e962a0..cf4b2bc 100644 (file)
@@ -26,17 +26,17 @@ package org.onap.music.eelf.healthcheck;
 
 import java.util.UUID;
 
+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.MusicLockingException;
+import org.onap.music.exceptions.MusicQueryException;
 import org.onap.music.exceptions.MusicServiceException;
-import org.onap.music.lockingservice.zookeeper.MusicLockingService;
 import org.onap.music.main.MusicUtil;
 import org.onap.music.main.ResultType;
-import org.onap.music.service.impl.MusicZKCore;
 import org.onap.music.main.MusicCore;
 
 import com.datastax.driver.core.ConsistencyLevel;
@@ -50,30 +50,39 @@ public class MusicHealthCheck {
     private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicUtil.class);
 
     private String cassandrHost;
-    private String zookeeperHost;
 
     public String getCassandraStatus(String consistency) {
         logger.info(EELFLoggerDelegate.applicationLogger, "Getting Status for Cassandra");
         
         boolean result = false;
+        UUID randomUUID = UUID.randomUUID();
         try {
-            result = getAdminKeySpace(consistency);
-        } catch(Exception e) {
+            result = getAdminKeySpace(consistency, randomUUID);
+        } catch( Exception e) {
             if(e.getMessage().toLowerCase().contains("unconfigured table healthcheck")) {
                 logger.error("Error", e);
                 logger.debug("Creating table....");
-                boolean ksresult = createKeyspace();
-                if(ksresult)
-                    try {
-                        result = getAdminKeySpace(consistency);
-                    } catch (MusicServiceException e1) {
-                      logger.error(EELFLoggerDelegate.errorLogger, e1.getMessage(),AppMessages.UNKNOWNERROR, ErrorSeverity.ERROR, ErrorTypes.UNKNOWN);
+                try {
+                    boolean ksresult = createKeyspace();
+                    if(ksresult) {
+                        result = getAdminKeySpace(consistency, randomUUID);
                     }
+                } catch (MusicServiceException e1) {
+                    logger.error(EELFLoggerDelegate.errorLogger, e1.getMessage(), AppMessages.UNKNOWNERROR, ErrorSeverity.ERROR, ErrorTypes.UNKNOWN);
+                } catch (MusicQueryException e1) {
+                    logger.error(EELFLoggerDelegate.errorLogger, e1.getMessage(), AppMessages.UNKNOWNERROR, ErrorSeverity.ERROR, ErrorTypes.UNKNOWN,e1);
+                }
             } else {
                 logger.error("Error", e);
                 return "One or more nodes are down or not responding.";
             }
         }
+        try {
+                       cleanHealthCheckId(randomUUID);
+               } catch (MusicServiceException | MusicQueryException e) {
+                       // TODO Auto-generated catch block
+                       logger.error("Error while cleaning healthcheck record id...", e);
+               }
         if (result) {
             return "ACTIVE";
         } else {
@@ -82,54 +91,34 @@ public class MusicHealthCheck {
         }
     }
 
-    private Boolean getAdminKeySpace(String consistency) throws MusicServiceException {
-
-
+    private Boolean getAdminKeySpace(String consistency, UUID randomUUID) throws MusicServiceException,MusicQueryException {
         PreparedQueryObject pQuery = new PreparedQueryObject();
         pQuery.appendQueryString("insert into admin.healthcheck (id) values (?)");
-        pQuery.addValue(UUID.randomUUID());
-            ResultType rs = MusicCore.nonKeyRelatedPut(pQuery, consistency);
-            logger.info(rs.toString());
-            if (rs != null) {
-                return Boolean.TRUE;
-            } else {
-                return Boolean.FALSE;
-            }
-
-
+        pQuery.addValue(randomUUID);
+        ResultType rs = null;
+        rs = MusicCore.nonKeyRelatedPut(pQuery, consistency);
+        logger.info(rs.toString());
+        return null != rs;
+        
     }
+
+       private void cleanHealthCheckId(UUID randomUUID) throws MusicServiceException, MusicQueryException {
+               String cleanQuery = "delete  from admin.healthcheck where id = ?";
+        PreparedQueryObject deleteQueryObject = new PreparedQueryObject();
+        deleteQueryObject.appendQueryString(cleanQuery);
+        deleteQueryObject.addValue(randomUUID);
+        MusicDataStoreHandle.getDSHandle().executePut(deleteQueryObject, "eventual");  
+        logger.info(EELFLoggerDelegate.applicationLogger, "Cassandra healthcheck responded and cleaned up.");
+       }
+    
     
-    private boolean createKeyspace() {
+    
+    private boolean createKeyspace() throws MusicServiceException,MusicQueryException {
         PreparedQueryObject pQuery = new PreparedQueryObject();
         pQuery.appendQueryString("CREATE TABLE admin.healthcheck (id uuid PRIMARY KEY)");
         ResultType rs = null ;
-        try {
-            rs = MusicCore.nonKeyRelatedPut(pQuery, ConsistencyLevel.ONE.toString());
-        } catch (MusicServiceException e) {
-            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(),AppMessages.UNKNOWNERROR, ErrorSeverity.ERROR, ErrorTypes.UNKNOWN);
-        }
-        if(rs != null && rs.getResult().toLowerCase().contains("success"))
-            return true;
-        else
-            return false;
-    }
-
-    public String getZookeeperStatus() {
-
-        String host = MusicUtil.getMyZkHost();
-        logger.info(EELFLoggerDelegate.applicationLogger, "Getting Status for Zookeeper Host: " + host);
-        try {
-            MusicLockingService lockingService = MusicZKCore.getLockingServiceHandle();
-            // additionally need to call the ZK to create,aquire and delete lock
-        } catch (MusicLockingException e) {
-            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(), AppMessages.LOCKINGERROR,
-                    ErrorTypes.CONNECTIONERROR, ErrorSeverity.CRITICAL);
-            return "INACTIVE";
-        }
-
-        logger.info(EELFLoggerDelegate.applicationLogger, "Zookeeper is Active and Running");
-        return "ACTIVE";
-
+        rs = MusicCore.nonKeyRelatedPut(pQuery, ConsistencyLevel.ONE.toString());
+        return rs != null && rs.getResult().toLowerCase().contains("success");
     }
 
     public String getCassandrHost() {
@@ -140,12 +129,4 @@ public class MusicHealthCheck {
         this.cassandrHost = cassandrHost;
     }
 
-    public String getZookeeperHost() {
-        return zookeeperHost;
-    }
-
-    public void setZookeeperHost(String zookeeperHost) {
-        this.zookeeperHost = zookeeperHost;
-    }
-
-}
+}
\ No newline at end of file