X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-batch%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fbatch%2Fapprovalsets%2FApprovalSet.java;h=45617f8b755321425d4e6307019e22a6555e9ceb;hb=e3163b2d5609753f874e2f52fd5ef67fa063af7a;hp=b7176c26b9b8f50f613b50b5fd4c796dd84d273e;hpb=d9c0bb04b77f6a637f1fc07b69c90898d672bd34;p=aaf%2Fauthz.git diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/ApprovalSet.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/ApprovalSet.java index b7176c26..45617f8b 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/ApprovalSet.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/ApprovalSet.java @@ -21,12 +21,11 @@ package org.onap.aaf.auth.batch.approvalsets; import java.nio.ByteBuffer; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; import java.util.ArrayList; import java.util.GregorianCalendar; +import java.util.HashSet; import java.util.List; -import java.util.UUID; +import java.util.Set; import org.onap.aaf.auth.dao.cass.ApprovalDAO; import org.onap.aaf.auth.dao.cass.FutureDAO; @@ -43,23 +42,12 @@ public class ApprovalSet { public ApprovalSet(final GregorianCalendar start, final String target, final DataView dv) throws CadiException { dataview = dv; fdd = new FutureDAO.Data(); - try { - fdd.id = newID(target); - } catch (NoSuchAlgorithmException e) { - throw new CadiException(e); - } + fdd.id = Chrono.dateToUUID(System.currentTimeMillis()); fdd.target = target; fdd.start = start.getTime(); ladd = new ArrayList<>(); } - protected UUID newID(String target) throws NoSuchAlgorithmException { - StringBuilder sb = new StringBuilder(new String(SecureRandom.getInstanceStrong().generateSeed(10))); - sb.append(target); - sb.append(System.currentTimeMillis()); - return Chrono.dateToUUID(System.currentTimeMillis()); - } - protected void setConstruct(final ByteBuffer bytes) { fdd.construct = bytes; } @@ -74,23 +62,40 @@ public class ApprovalSet { public Result write(AuthzTrans trans) { StringBuilder errs = null; - Result rf = dataview.insert(trans, fdd); - if(rf.notOK()) { - errs = new StringBuilder(); - errs.append(rf.errorString()); + if(ladd == null || ladd.isEmpty()) { + errs = new StringBuilder("No Approvers for "); + errs .append(fdd.memo); } else { - for(ApprovalDAO.Data add : ladd) { - Result af = dataview.insert(trans, add); - if(af.notOK()) { - if(errs==null) { - errs = new StringBuilder(); - } else { - errs.append('\n'); + Result rf = dataview.insert(trans, fdd); + if(rf.notOK()) { + errs = new StringBuilder(); + errs.append(rf.errorString()); + } else { + for(ApprovalDAO.Data add : ladd) { + Result af = dataview.insert(trans, add); + if(af.notOK()) { + if(errs==null) { + errs = new StringBuilder(); + } else { + errs.append('\n'); + } + errs.append(af.errorString()); } - errs.append(af.errorString()); } } } return errs==null?Result.ok():Result.err(Result.ERR_Backend,errs.toString()); } + + public boolean hasApprovals() { + return !ladd.isEmpty(); + } + + public Set approvers() { + Set rv = new HashSet<>(); + for(ApprovalDAO.Data app : ladd) { + rv.add(app.approver); + } + return rv; + } } \ No newline at end of file