X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aaf%2Fauthz.git;a=blobdiff_plain;f=auth%2Fauth-batch%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fbatch%2Fupdate%2FApprovals.java;h=03c812ae75004121b59d2c957e7e132c388a1f5f;hp=2047098a871c761215e81241f98b2b11ebb45244;hb=a174f8ddbc5eb78a648fb68b33ef18cb64d81fda;hpb=9dc1cd2632d1dda9c8f072e99616e73e0517f1aa diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Approvals.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Approvals.java index 2047098a..03c812ae 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Approvals.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Approvals.java @@ -38,15 +38,21 @@ import org.onap.aaf.auth.batch.approvalsets.ApprovalSet; import org.onap.aaf.auth.batch.approvalsets.Pending; import org.onap.aaf.auth.batch.approvalsets.URApprovalSet; import org.onap.aaf.auth.batch.helpers.BatchDataView; +import org.onap.aaf.auth.batch.helpers.CQLBatch; +import org.onap.aaf.auth.batch.helpers.CQLBatchLoop; +import org.onap.aaf.auth.batch.helpers.LastNotified; import org.onap.aaf.auth.batch.helpers.NS; import org.onap.aaf.auth.batch.helpers.Notification; +import org.onap.aaf.auth.batch.helpers.Notification.TYPE; import org.onap.aaf.auth.batch.helpers.Role; import org.onap.aaf.auth.batch.helpers.UserRole; +import org.onap.aaf.auth.batch.reports.Notify; import org.onap.aaf.auth.batch.reports.bodies.NotifyPendingApprBody; import org.onap.aaf.auth.dao.cass.UserRoleDAO; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; import org.onap.aaf.auth.org.OrganizationException; +import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.CadiException; import org.onap.aaf.cadi.client.Holder; import org.onap.aaf.cadi.util.CSV; @@ -56,15 +62,18 @@ import org.onap.aaf.misc.env.Trans; import org.onap.aaf.misc.env.util.Chrono; public class Approvals extends Batch { - private final AuthzTrans noAvg; + private final Access access; + private final AuthzTrans noAvg; private BatchDataView dataview; private List csvList; private GregorianCalendar now; + private final Notify notify; public Approvals(AuthzTrans trans) throws APIException, IOException, OrganizationException { super(trans.env()); - + notify = new Notify(trans); + access = env.access(); noAvg = env.newTransNoAvg(); noAvg.setUser(new BatchPrincipal("batch:Approvals")); session = cluster.connect(); @@ -94,13 +103,13 @@ public class Approvals extends Batch { trans.error().printf("CSV File %s does not exist",f.getAbsolutePath()); } } - } @Override protected void run(AuthzTrans trans) { Map mpending = new TreeMap<>(); Holder count = new Holder<>(0); + final CQLBatchLoop cbl = new CQLBatchLoop(new CQLBatch(noAvg.info(),session),100,dryRun); for(CSV approveCSV : csvList) { TimeTaken tt = trans.start("Load Analyzed Reminders",Trans.SUB,approveCSV.name()); try { @@ -170,19 +179,36 @@ public class Approvals extends Batch { trans.info().printf("Processed %d UserRoles", count.get()); count.set(0); - NotifyPendingApprBody npab; + NotifyPendingApprBody npab = new NotifyPendingApprBody(access); + GregorianCalendar gc = new GregorianCalendar(); gc.add(GregorianCalendar.DAY_OF_MONTH, 7); Date oneWeek = gc.getTime(); + CSV.Saver rs = new CSV.Saver(); + + tt = trans.start("Obtain Last Notifications", Trans.SUB); + LastNotified lastN; + try { + lastN = new LastNotified(session); + lastN.add(mpending.keySet()); + } finally { + tt.done(); + } Pending p; tt = trans.start("Notify for Pending", Trans.SUB); try { for(Entry es : mpending.entrySet()) { p = es.getValue(); - Date earliest = p.earliest(); - if(p.newApprovals() || earliest==null || earliest.before(oneWeek) ) { - System.out.println("update"); + Date dateLastNotified = lastN.lastNotified(es.getKey()); + if(p.newApprovals() || dateLastNotified==null || dateLastNotified.after(oneWeek) ) { + rs.row("appr", es.getKey(),p.qty(),batchEnv); + npab.store(rs.asList()); + if(notify.notify(noAvg, npab)>0) { + // Update + cbl.preLoop(); + update(cbl.inc(),es.getKey(),Notification.TYPE.OA); + } } } } finally { @@ -192,7 +218,16 @@ public class Approvals extends Batch { } } - @Override + private void update(StringBuilder sb, String user, TYPE oa) { + sb.append("UPDATE authz.notify SET last=dateof(now()) WHERE user='"); + sb.append(user); + sb.append("' AND type="); + sb.append(oa.idx()); + sb.append(';'); + + } + + @Override protected void _close(AuthzTrans trans) { if(session!=null) { session.close();