Create Cassandra Backup Scripts
Issue-ID: AAF-249
Change-Id: I014a925545b9be1171e625dfd751e77350843405
Signed-off-by: Instrumental <jcgmisc@stl.gathman.org>
diff --git a/auth/auth-cass/docker/backup/backup.sh b/auth/auth-cass/docker/backup/backup.sh
new file mode 100644
index 0000000..db59d16
--- /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 0000000..9c91d0c
--- /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 4cf2dd5..6ef6a76 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 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
+ }
}
}