Improve Batches
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / Approval.java
index fb3aefb..1bc82f5 100644 (file)
@@ -23,6 +23,8 @@ package org.onap.aaf.auth.batch.helpers;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.TreeMap;
 import java.util.UUID;
@@ -30,6 +32,7 @@ import java.util.UUID;
 import org.onap.aaf.auth.dao.cass.ApprovalDAO;
 import org.onap.aaf.auth.env.AuthzTrans;
 import org.onap.aaf.auth.layer.Result;
+import org.onap.aaf.cadi.util.CSV;
 import org.onap.aaf.misc.env.Env;
 import org.onap.aaf.misc.env.TimeTaken;
 import org.onap.aaf.misc.env.Trans;
@@ -48,18 +51,19 @@ public class Approval implements CacheChange.Data  {
     public static TreeMap<String,List<Approval>> byApprover = new TreeMap<>();
     public static TreeMap<String,List<Approval>> byUser = new TreeMap<>();
     public static TreeMap<UUID,List<Approval>> byTicket = new TreeMap<>();
+    public static List<Approval> list = new LinkedList<>();
     private final static CacheChange<Approval> cache = new CacheChange<>(); 
     
     public final ApprovalDAO.Data add;
     private String role;
     
-    public Approval(UUID id, UUID ticket, String approver, Date last_notified, 
+    public Approval(UUID id, UUID ticket, String approver,// Date last_notified, 
             String user, String memo, String operation, String status, String type, long updated) {
         add = new ApprovalDAO.Data();
         add.id = id;
         add.ticket = ticket;
         add.approver = approver;
-        add.last_notified = last_notified;
+//        add.last_notified = last_notified;
         add.user = user;
         add.memo = memo;
         add.operation = operation;
@@ -90,6 +94,42 @@ public class Approval implements CacheChange.Data  {
         return null;
     }
 
+    public static void load(Trans trans, Session session, Creator<Approval> creator, Visitor<Approval> visitor) {
+        trans.info().log( "query: " + creator.select() );
+        TimeTaken tt = trans.start("Read Approval", Env.REMOTE);
+       
+        ResultSet results;
+        try {
+            Statement stmt = new SimpleStatement( creator.select() );
+            results = session.execute(stmt);
+        } finally {
+            tt.done();
+        }
+
+        int count = 0;
+        try {
+            Iterator<Row> iter = results.iterator();
+            Row row;
+            tt = trans.start("Load X509s", Env.SUB);
+            try {
+                while (iter.hasNext()) {
+                       ++count;
+                    row = iter.next();
+                    visitor.visit(creator.create(row));
+                }
+            } finally {
+                tt.done();
+            }
+        } finally {
+            trans.info().log("Found",count,"X509 Certificates");
+        }
+    }
+    
+       public static void row(CSV.RowSetter crs, Approval app) {
+               crs.row("approval",app.add.id,app.add.ticket,app.add.user,app.role,app.add.memo);
+       }
+
+
     public static void load(Trans trans, Session session, Creator<Approval> creator ) {
         trans.info().log( "query: " + creator.select() );
         TimeTaken tt = trans.start("Load Notify", Env.REMOTE);
@@ -110,6 +150,8 @@ public class Approval implements CacheChange.Data  {
                     ++count;
                     try {
                             Approval app = creator.create(row);
+                            list.add(app);
+                            
                             String person = app.getApprover();
                             if (person!=null) {
                             ln = byApprover.get(person);
@@ -169,41 +211,41 @@ public class Approval implements CacheChange.Data  {
         }
     }
 
-    public void update(AuthzTrans trans, ApprovalDAO apprDAO, boolean dryRun) {
-        if (dryRun) {
-            trans.info().printf("Would update Approval %s, %s, last_notified %s",add.id,add.status,add.last_notified);
-        } else {
-            trans.info().printf("Update Approval %s, %s, last_notified %s",add.id,add.status,add.last_notified);
-            apprDAO.update(trans, add);
-        }
-    }
+//    public void update(AuthzTrans trans, ApprovalDAO apprDAO, boolean dryRun) {
+//        if (dryRun) {
+//            trans.info().printf("Would update Approval %s, %s, last_notified %s",add.id,add.status,add.last_notified);
+//        } else {
+//            trans.info().printf("Update Approval %s, %s, last_notified %s",add.id,add.status,add.last_notified);
+//            apprDAO.update(trans, add);
+//        }
+//    }
 
     public static Creator<Approval> v2_0_17 = new Creator<Approval>() {
         @Override
         public Approval create(Row row) {
-            return new Approval(row.getUUID(0), row.getUUID(1), row.getString(2), row.getTimestamp(3),
-                    row.getString(4),row.getString(5),row.getString(6),row.getString(7),row.getString(8)
-                    ,row.getLong(9)/1000);
+            return new Approval(row.getUUID(0), row.getUUID(1), row.getString(2),
+                    row.getString(3),row.getString(4),row.getString(5),row.getString(6),row.getString(7),
+                    row.getLong(8)/1000);
         }
 
         @Override
         public String select() {
-            return "select id,ticket,approver,last_notified,user,memo,operation,status,type,WRITETIME(status) from authz.approval";
+            return "select id,ticket,approver,user,memo,operation,status,type,WRITETIME(status) from authz.approval";
         }
     };
 
-    /**
-     * @return the lastNotified
-     */
-    public Date getLast_notified() {
-        return add.last_notified;
-    }
-    /**
-     * @param lastNotified the lastNotified to set
-     */
-    public void setLastNotified(Date last_notified) {
-        add.last_notified = last_notified;
-    }
+//    /**
+//     * @return the lastNotified
+//     */
+//    public Date getLast_notified() {
+//        return add.last_notified;
+//    }
+//    /**
+//     * @param lastNotified the lastNotified to set
+//     */
+//    public void setLastNotified(Date last_notified) {
+//        add.last_notified = last_notified;
+//    }
     /**
      * @return the status
      */
@@ -306,4 +348,10 @@ public class Approval implements CacheChange.Data  {
         return cache.contains(a);
     }
 
+       public static void deleteByIDBatch(StringBuilder sb, String id) {
+               sb.append("DELETE from authz.approval where id=");
+               sb.append(id);
+               sb.append(";\n");
+       }
+
 }