Change agent.sh to work with K8s
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / CQLBatch.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  */
20
21 package org.onap.aaf.auth.batch.helpers;
22
23 import com.datastax.driver.core.ResultSet;
24 import com.datastax.driver.core.Session;
25
26 public class CQLBatch {
27         private Session session;
28         private StringBuilder sb;
29         private int hasAdded;
30
31         public CQLBatch(Session session) {
32                 this.session = session;
33                 sb = new StringBuilder();
34                 hasAdded = 0;
35         }
36         public StringBuilder begin() {
37                 sb.setLength(0);
38                 sb.append("BEGIN BATCH\n");
39                 hasAdded = sb.length();
40                 return sb;
41         }
42         
43         private boolean end() {
44                 if(sb.length()==hasAdded) {
45                         System.out.println("Nothing to Process");
46                         return false;
47                 } else {
48                         sb.append("APPLY BATCH;\n");
49                         System.out.println(sb);
50                         return true;
51                 }
52         }
53         
54         public ResultSet execute() {
55                 if(end()) {
56                         return session.execute(sb.toString());
57                 } else {
58                         return null;
59                 }
60         }
61         
62         public ResultSet execute(boolean dryRun) {
63                 if(dryRun) {
64                         end();
65                         return null;
66                 } else {
67                         return execute();
68                 }
69         }
70         
71         public void touch(String table, int begin, int end, boolean dryRun) {
72                 StringBuilder sb = begin();
73                 for(int i=begin;i<end;++i) {
74                         sb.append("UPDATE cache SET touched=dateof(now()) WHERE name='");
75                         sb.append(table);
76                         sb.append("' AND seg=");
77                         sb.append(i);
78                         sb.append(";\n");
79                 }
80                 execute(dryRun);
81         }
82 }