X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-batch%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fbatch%2Fhelpers%2FBatchDataView.java;h=b5d25a435eabcc305ee5615296538e3c4cbe0149;hb=07fb3ece74a9aa1fad8e2a9fab73b4de3e36853b;hp=e934bda640d66e9315c529f8e8d1c51077848a9a;hpb=59ffb7d529245c3bd0233dbf6cb0ae9fe9ccb856;p=aaf%2Fauthz.git diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/BatchDataView.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/BatchDataView.java index e934bda6..b5d25a43 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/BatchDataView.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/BatchDataView.java @@ -20,12 +20,9 @@ */ package org.onap.aaf.auth.batch.helpers; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.onap.aaf.auth.batch.actions.ApprovalAdd; -import org.onap.aaf.auth.batch.actions.FutureAdd; import org.onap.aaf.auth.batch.approvalsets.DataView; import org.onap.aaf.auth.dao.cass.ApprovalDAO; import org.onap.aaf.auth.dao.cass.FutureDAO; @@ -35,92 +32,155 @@ import org.onap.aaf.auth.dao.cass.UserRoleDAO; import org.onap.aaf.auth.dao.cass.UserRoleDAO.Data; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; -import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.cadi.Hash; import org.onap.aaf.misc.env.TimeTaken; import org.onap.aaf.misc.env.Trans; +import org.onap.aaf.misc.env.util.Chrono; -import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; public class BatchDataView implements DataView { - private FutureAdd futureAdd; - private ApprovalAdd approvalAdd; + private static final String QUOTE_PAREN_SEMI = "');\n"; + private static final String QUOTE_COMMA = "',"; + private static final String QUOTE_COMMA_QUOTE = "','"; + private static final String COMMA_QUOTE = ",'"; + private final CQLBatchLoop cqlBatch; + private final Session session; - public BatchDataView(final AuthzTrans trans, final Cluster cluster, final boolean dryRun ) throws APIException, IOException { - futureAdd = new FutureAdd(trans, cluster, dryRun); - approvalAdd = new ApprovalAdd(trans, futureAdd); - } + public BatchDataView(final AuthzTrans trans, final Session session, final boolean dryRun ){ + this.session = session; + cqlBatch = new CQLBatchLoop(new CQLBatch(trans.info(),session),50,dryRun); + } - public Session getSession(AuthzTrans trans) throws APIException, IOException { - TimeTaken tt = trans.start("Get Session", Trans.SUB); - try { - return futureAdd.getSession(trans); - } finally { - tt.done(); - } - } - - public Result ns(AuthzTrans trans, String id) { - NS n; - TimeTaken tt = trans.start("Get NS by ID %s", Trans.SUB, id); - try { - n=NS.data.get(id); - } finally { - tt.done(); - } - - if(n==null || n.ndd==null) { - return Result.err(Result.ERR_Backend,"Namespace '%s' does not exist", id); - } - return Result.ok(n.ndd); - } + public Session getSession(AuthzTrans trans){ + return session; + } + + public Result ns(AuthzTrans trans, String id) { + NS n; + TimeTaken tt = trans.start("Get NS by ID %s", Trans.SUB, id); + try { + n=NS.data.get(id); + } finally { + tt.done(); + } + + if(n==null || n.ndd==null) { + return Result.err(Result.ERR_Backend,"Namespace '%s' does not exist", id); + } + return Result.ok(n.ndd); + } - - @Override - public Result roleByName(AuthzTrans trans, String name) { - Role r = Role.byName.get(name); - if(r==null || r.rdd==null) { - return Result.err(Result.ERR_Backend,"Role '%s' does not exist", name); - } - return Result.ok(r.rdd); - } + + @Override + public Result roleByName(AuthzTrans trans, String name) { + Role r = Role.byName.get(name); + if(r==null || r.rdd==null) { + return Result.err(Result.ERR_Backend,"Role '%s' does not exist", name); + } + return Result.ok(r.rdd); + } - @Override - public Result> ursByRole(AuthzTrans trans, String role) { - List urs = UserRole.getByRole().get(role); - if(urs==null) { - return Result.err(Result.ERR_Backend, "UserRoles for Role '%s' does not exist", role); - } - return toLURDD(urs); - } + @Override + public Result> ursByRole(AuthzTrans trans, String role) { + List urs = UserRole.getByRole().get(role); + if(urs==null) { + return Result.err(Result.ERR_Backend, "UserRoles for Role '%s' does not exist", role); + } + return toLURDD(urs); + } - private Result> toLURDD(List urs) { - List rv = new ArrayList<>(); - if(urs!=null) { - for(UserRole ur : urs) { - rv.add(ur.urdd()); - } - } - return Result.ok(rv); - } + private Result> toLURDD(List urs) { + List rv = new ArrayList<>(); + if(urs!=null) { + for(UserRole ur : urs) { + rv.add(ur.urdd()); + } + } + return Result.ok(rv); + } - @Override - public Result> ursByUser(AuthzTrans trans, String user) { - List urs = UserRole.getByUser().get(user); - if(urs==null) { - return Result.err(Result.ERR_Backend, "UserRoles for User '%s' does not exist", user); - } - return toLURDD(urs); - } + @Override + public Result> ursByUser(AuthzTrans trans, String user) { + List urs = UserRole.getByUser().get(user); + if(urs==null) { + return Result.err(Result.ERR_Backend, "UserRoles for User '%s' does not exist", user); + } + return toLURDD(urs); + } - @Override - public Result write(AuthzTrans trans, FutureDAO.Data fdd) { - return futureAdd.exec(trans, fdd, null); - } + @Override + public Result delete(AuthzTrans trans, FutureDAO.Data fdd) { + StringBuilder sb = cqlBatch.inc(); + sb.append("DELETE from authz.future WHERE id = "); + sb.append(fdd.id.toString()); + return Result.ok(fdd); + } + + @Override + public Result delete(AuthzTrans trans, ApprovalDAO.Data add) { + StringBuilder sb = cqlBatch.inc(); + sb.append("DELETE from authz.approval WHERE id = "); + sb.append(add.id.toString()); + return Result.ok(add); + } - @Override - public Result write(AuthzTrans trans, ApprovalDAO.Data add) { - return approvalAdd.exec(trans, add, null); - } + @Override + public Result insert(AuthzTrans trans, ApprovalDAO.Data add) { + StringBuilder sb = cqlBatch.inc(); + sb.append("INSERT INTO authz.approval (id,approver,memo,operation,status,ticket,type,user) VALUES ("); + sb.append(add.id.toString()); + sb.append(COMMA_QUOTE); + sb.append(add.approver); +// sb.append(QUOTE_COMMA_QUOTE); +// sb.append(Chrono.utcStamp(add.last_notified)); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(add.memo.replace("'", "''")); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(add.operation); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(add.status); + sb.append(QUOTE_COMMA); + sb.append(add.ticket.toString()); + sb.append(COMMA_QUOTE); + sb.append(add.type); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(add.user); + sb.append(QUOTE_PAREN_SEMI); + return Result.ok(add); + } + + @Override + public Result insert(AuthzTrans trans, FutureDAO.Data fdd) { + StringBuilder sb = cqlBatch.inc(); + sb.append("INSERT INTO authz.future (id,construct,expires,memo,start,target,target_key,target_date) VALUES ("); + sb.append(fdd.id.toString()); + sb.append(','); + fdd.construct.hasArray(); + sb.append(Hash.toHex(fdd.construct.array())); + sb.append(COMMA_QUOTE); + sb.append(Chrono.utcStamp(fdd.expires)); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(fdd.memo.replace("'", "''")); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(Chrono.utcStamp(fdd.expires)); + sb.append(QUOTE_COMMA_QUOTE); + sb.append(fdd.target); + if(fdd.target_key==null) { + sb.append("',,'"); + } else { + sb.append(QUOTE_COMMA_QUOTE); + sb.append(fdd.target_key==null?"":fdd.target_key); + sb.append(QUOTE_COMMA_QUOTE); + } + sb.append(Chrono.utcStamp(fdd.target_date)); + sb.append(QUOTE_PAREN_SEMI); + return Result.ok(fdd); + } + + @Override + public void flush() { + cqlBatch.flush(); + } }