diff options
-rw-r--r-- | auth/auth-cass/docker/backup/backup.sh | 28 | ||||
-rw-r--r-- | auth/auth-cass/docker/backup/cbackup.sh | 8 | ||||
-rw-r--r-- | auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java | 95 |
3 files changed, 86 insertions, 45 deletions
diff --git a/auth/auth-cass/docker/backup/backup.sh b/auth/auth-cass/docker/backup/backup.sh new file mode 100644 index 00000000..db59d16e --- /dev/null +++ b/auth/auth-cass/docker/backup/backup.sh @@ -0,0 +1,28 @@ +# BEGIN Store prev +if [ -e "6day" ]; then + rm -Rf 6day +fi + +PREV=6day +for D in 5day 4day 3day 2day yesterday; do + if [ -e "$D" ]; then + mv "$D" "$PREV" + fi + PREV="$D" +done + +if [ -e "today" ]; then + mv today yesterday + gzip yesterday/* +fi + +# END Store prev +date +docker exec -t aaf_cass bash -c "mkdir -p /opt/app/cass_backup" +docker container cp cbackup.sh aaf_cass:/opt/app/cass_backup/backup.sh +# echo "login as Root, then run \nbash /opt/app/cass_backup/backup.sh" +docker exec -t aaf_cass bash /opt/app/cass_backup/backup.sh +mkdir today +docker container cp aaf_cass:/opt/app/cass_backup/. today + +date diff --git a/auth/auth-cass/docker/backup/cbackup.sh b/auth/auth-cass/docker/backup/cbackup.sh new file mode 100644 index 00000000..9c91d0c6 --- /dev/null +++ b/auth/auth-cass/docker/backup/cbackup.sh @@ -0,0 +1,8 @@ +cd /opt/app/cass_backup +DATA="ns role perm ns_attrib user_role cred cert x509 delegate approval approved future notify artifact health history" +PWD=cassandra +CQLSH="cqlsh -u cassandra -k authz -p $PWD" +for T in $DATA ; do + echo "Creating $T.dat" + $CQLSH -e "COPY authz.$T TO '$T.dat' WITH DELIMITER='|'" +done diff --git a/auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java b/auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java index 4cf2dd5d..6ef6a769 100644 --- a/auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java +++ b/auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java @@ -125,65 +125,70 @@ public class TextIndex { } public void create(final Trans trans,final DataFile data, int maxLine, char delim, int fieldOffset, int skipLines) throws IOException { - RandomAccessFile raf; FileChannel fos; List<Idx> list = new LinkedList<Idx>(); // Some hashcodes will double... DO NOT make a set TimeTaken tt2 = trans.start("Open Files", Env.SUB); + RandomAccessFile raf=null; try { - raf = new RandomAccessFile(file,"rw"); - raf.setLength(0L); - fos = raf.getChannel(); - } finally { - tt2.done(); - } - - try { - - Token t = data.new Token(maxLine); - Field f = t.new Field(delim); - - int count = 0; - if(skipLines>0) { - trans.info().log("Skipping",skipLines,"line"+(skipLines==1?" in":"s in"),data.file().getName()); - } - for(int i=0;i<skipLines;++i) { - t.nextLine(); - } - tt2 = trans.start("Read", Env.SUB); try { - while(t.nextLine()) { - list.add(new Idx(f.at(fieldOffset),t.pos())); - ++count; - } + raf = new RandomAccessFile(file,"rw"); + raf.setLength(0L); + fos = raf.getChannel(); } finally { tt2.done(); } - trans.checkpoint(" Read " + count + " records"); - tt2 = trans.start("Sort List", Env.SUB); - Collections.sort(list); - tt2.done(); - tt2 = trans.start("Write Idx", Env.SUB); + try { - ByteBuffer bb = ByteBuffer.allocate(8*1024); - IntBuffer ib = bb.asIntBuffer(); - for(Idx idx : list) { - if(!ib.hasRemaining()) { - fos.write(bb); - ib.clear(); - bb.rewind(); + + Token t = data.new Token(maxLine); + Field f = t.new Field(delim); + + int count = 0; + if(skipLines>0) { + trans.info().log("Skipping",skipLines,"line"+(skipLines==1?" in":"s in"),data.file().getName()); + } + for(int i=0;i<skipLines;++i) { + t.nextLine(); + } + tt2 = trans.start("Read", Env.SUB); + try { + while(t.nextLine()) { + list.add(new Idx(f.at(fieldOffset),t.pos())); + ++count; } - ib.put(idx.hash); - ib.put(idx.pos); + } finally { + tt2.done(); } - bb.limit(4*ib.position()); - fos.write(bb); - } finally { + trans.checkpoint(" Read " + count + " records"); + tt2 = trans.start("Sort List", Env.SUB); + Collections.sort(list); tt2.done(); - } + tt2 = trans.start("Write Idx", Env.SUB); + try { + ByteBuffer bb = ByteBuffer.allocate(8*1024); + IntBuffer ib = bb.asIntBuffer(); + for(Idx idx : list) { + if(!ib.hasRemaining()) { + fos.write(bb); + ib.clear(); + bb.rewind(); + } + ib.put(idx.hash); + ib.put(idx.pos); + } + bb.limit(4*ib.position()); + fos.write(bb); + } finally { + tt2.done(); + } + } finally { + fos.close(); + } } finally { - fos.close(); - raf.close(); // closed by fos + if(raf!=null) { + raf.close(); // closed by fos + } } } |