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%2FCQLBatch.java;h=a045b74a1cdb6981c87ccb40d43ea913e6321ba9;hb=0598a034592fdfb0bf7a971066f325e7b6594994;hp=efd1ec9e2be59c639b7ff17462b649ede45594f2;hpb=1321c6e63c90a40fad36d2a4a3fef912b4169130;p=aaf%2Fauthz.git diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatch.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatch.java index efd1ec9e..a045b74a 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatch.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatch.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,60 +26,107 @@ import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Session; public class CQLBatch { - private Session session; - private StringBuilder sb; - private int hasAdded; - private LogTarget log; + private Session session; + private StringBuilder sb; + private int hasAdded; + private LogTarget log; + private long sleep; + private long last; - public CQLBatch(LogTarget log, Session session) { - this.log = log; - this.session = session; - sb = new StringBuilder(); - hasAdded = 0; - } - public StringBuilder begin() { - sb.setLength(0); - sb.append("BEGIN BATCH\n"); - hasAdded = sb.length(); - return sb; - } - - private boolean end() { - if(sb.length()==hasAdded) { - return false; - } else { - sb.append("APPLY BATCH;\n"); - log.log(sb); - return true; - } - } - - public ResultSet execute() { - if(end()) { - return session.execute(sb.toString()); - } else { - return null; - } - } - - public ResultSet execute(boolean dryRun) { - if(dryRun) { - end(); - return null; - } else { - return execute(); - } - } - - public void touch(String table, int begin, int end, boolean dryRun) { - StringBuilder sb = begin(); - for(int i=begin;i0) { + long left = last - System.currentTimeMillis(); + if(left>0) { + try { + Thread.sleep(left); + } catch (InterruptedException e) { + // PER ORACLE, this isn't actually needed, but Sonar idiocy + // requires something or flags as error. + Thread.currentThread().interrupt(); + } + } + last = System.currentTimeMillis() + sleep; + } + return session.execute(sb.toString()); + } else { + return null; + } + } + + public ResultSet execute(boolean dryRun) { + ResultSet rv = null; + if(dryRun) { + if(sleep>0) { + long left = last - System.currentTimeMillis(); + if(left>0) { + try { + Thread.sleep(left); + } catch (InterruptedException e) { + // PER ORACLE, this isn't actually needed, but Sonar idiocy + // requires something or flags as error. + Thread.currentThread().interrupt(); + } + } + last = System.currentTimeMillis() + sleep; + } + end(); + } else { + rv = execute(); + } + sb.setLength(0); + return rv; + } + + public ResultSet singleExec(StringBuilder query, boolean dryRun) { + if(dryRun) { + return null; + } else { + return session.execute(query.toString()); + } + } + + public void touch(String table, int begin, int end, boolean dryRun) { + StringBuilder sb = begin(); + for(int i=begin; i