Create Cassandra Backup Scripts 43/43143/1
authorInstrumental <jcgmisc@stl.gathman.org>
Mon, 16 Apr 2018 19:28:44 +0000 (14:28 -0500)
committerInstrumental <jcgmisc@stl.gathman.org>
Mon, 16 Apr 2018 19:28:56 +0000 (14:28 -0500)
Issue-ID: AAF-249
Change-Id: I014a925545b9be1171e625dfd751e77350843405
Signed-off-by: Instrumental <jcgmisc@stl.gathman.org>
auth/auth-cass/docker/backup/backup.sh [new file with mode: 0644]
auth/auth-cass/docker/backup/cbackup.sh [new file with mode: 0644]
auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java

diff --git a/auth/auth-cass/docker/backup/backup.sh b/auth/auth-cass/docker/backup/backup.sh
new file mode 100644 (file)
index 0000000..db59d16
--- /dev/null
@@ -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 (file)
index 0000000..9c91d0c
--- /dev/null
@@ -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
index 4cf2dd5..6ef6a76 100644 (file)
@@ -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
+                       }
                }
        }