partly working security: registration form, authorization, simple authentification
[proteocache.git] / datadb / compbio / cassandra / CassandraNativeConnector.java
index 0a5a795..5e5cf5a 100644 (file)
@@ -3,6 +3,7 @@ package compbio.cassandra;
 import java.util.Calendar;
 
 import org.apache.log4j.Logger;
+import org.springframework.dao.DataIntegrityViolationException;
 
 import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Configuration;
@@ -17,6 +18,8 @@ import com.datastax.driver.core.Row;
 import com.datastax.driver.core.SocketOptions;
 
 import com.datastax.driver.core.Session;
+import com.datastax.driver.core.exceptions.QueryExecutionException;
+import com.datastax.driver.core.exceptions.QueryValidationException;
 import com.datastax.driver.core.policies.Policies;
 
 import compbio.engine.ProteoCachePropertyHelperManager;
@@ -82,14 +85,33 @@ public class CassandraNativeConnector {
                session.execute("CREATE TABLE IF NOT EXISTS JpredArchive "
                                + "(JobID ascii, Protein varchar, IP ascii, StartTime bigint, ExecTime int, FinalStatus ascii, ExecutionStatus ascii, alignment map<ascii,ascii>, "
                                + "predictions map<ascii,ascii>, ArchiveLink varchar, LOG varchar, PRIMARY KEY(JobID));");
-               
+
                session.execute("CREATE TABLE IF NOT EXISTS JobDateInfo "
                                + "(jobday bigint, Total bigint,  TotalOK bigint, TotalStopped bigint, TotalError bigint, TotalTimeOut bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
 
+               String com = "CREATE TABLE IF NOT EXISTS Users "
+                               + "(name varchar, id bigint, email varchar, password varchar, organisation varchar, position varchar, signedtolist boolean, registrationdate bigint, PRIMARY KEY(id));";
+               
+               
+               try {
+                       session.execute(com);
+               } catch (QueryExecutionException e) {
+                       String mess = "CassandraNativeConnector.CreateMainTables: query execution exception...";
+                       System.out.println(mess);
+                       log.error(mess);
+                       log.error(e.getLocalizedMessage(), e.getCause());
+               } catch (QueryValidationException e) {
+                       String mess = "CassandraNativeConnector.CreateMainTables: query validation exception... Command: " + com;
+                       System.out.println(mess);
+                       log.error(mess);
+                       log.error(e.getLocalizedMessage(), e.getCause());
+               }
+
                session.execute("CREATE INDEX IF NOT EXISTS ProteinSeq ON ProteinRow (protein);");
                session.execute("CREATE INDEX IF NOT EXISTS ProteinIp ON ProteinLog (ip);");
                session.execute("CREATE INDEX IF NOT EXISTS ON ProteinLog (ExecutionStatus);");
                session.execute("CREATE INDEX IF NOT EXISTS ON FailLog (FinalStatus);");
+               session.execute("CREATE INDEX IF NOT EXISTS ON Users (email);");
        //      session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinData (jobtime);");
        }