}
// next file
+ // this file we will restore using Bacula Core functionality, so it is crucial
write_plugin('I', "TEST6");
snprintf(buf, BIGBUFLEN, "FNAME:%s/bucket/%d/etc/issue\n", PLUGINPREFIX, mypid);
write_plugin('C', buf);
int len;
int fsize;
bool loopgo = true;
+ bool restore_skip_create = false;
+ bool restore_with_core = false;
if (regress_error_restore_stderr) {
// test some stderror handling
}
/* check if FNAME then follow file parameters */
if (strncmp(buf, "FNAME:", 6) == 0) {
+ restore_with_core = strstr(buf, "/_restore_with_core/") != NULL && strstr(buf, "/etc/issue") != NULL;
+ restore_skip_create = strstr(buf, "/_restore_skip_create/") != NULL;
+
/* we read here a file parameters */
while (read_plugin(buf) > 0);
- /* signal OK */
-#if 1
+
+ if (restore_skip_create){
+ // simple skipall
+ write_plugin('I', "TEST5R - create file skipped.");
+ write_plugin('C', "SKIP\n");
+ continue;
+ }
+
+ if (restore_with_core){
+ // signal Core
+ write_plugin('I', "TEST5R - handle file with Core.");
+ write_plugin('C', "CORE\n");
+ continue;
+ }
+
+ // signal OK
write_plugin('I', "TEST5R - create file ok.");
write_plugin('C', "OK\n");
-#else
- write_plugin('I', "TEST5R - create file skipped.");
- write_plugin('C', "SKIP\n");
-#endif
continue;
}
// handle metadata
read_plugin_data_stream();
/* signal OK */
+ LOG("#> METADATA_STREAM data saved.");
+ write_plugin('I', "TEST5R - metadata saved.");
write_plugin('C', "OK\n");
continue;
}
run_bconsole
+# restore with skip all files
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@#
+@# Restore
+@#
+@output /dev/null
+messages
+@$out ${cwd}/tmp/rlog3.out
+setdebug level=500 client=$CLIENT trace=1
+restore fileset=$FilesetBackup5 where=${cwd}/tmp/_restore_skip_create/ select all storage=File done
+yes
+wait
+messages
+llist job=RestoreFiles
+@output
+quit
+END_OF_DATA
+
+run_bconsole
+
+# restore with core
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@#
+@# Restore
+@#
+@output /dev/null
+messages
+@$out ${cwd}/tmp/rlog4.out
+setdebug level=500 client=$CLIENT trace=1
+restore fileset=$FilesetBackup5 where=${cwd}/tmp/_restore_with_core/ select all storage=File done
+yes
+wait
+messages
+llist job=RestoreFiles
+@output
+quit
+END_OF_DATA
+
+run_bconsole
+
# and finally test listing mode
TEST=1
for ppath in / containers containers/bucket1 containers/bucket2
if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ]
then
echo "rlog2" "$RET" "$REND"
- rstat=1
+ rstat=2
+fi
+
+RET=$(grep "jobstatus:" ${cwd}/tmp/rlog3.out | tail -1 | awk '{print $2}')
+REND=$(grep -w -c "TESTEND" ${cwd}/tmp/rlog3.out)
+if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ]
+then
+ echo "rlog3" "$RET" "$REND"
+ rstat=3
+fi
+
+RET=$(grep "jobstatus:" ${cwd}/tmp/rlog4.out | tail -1 | awk '{print $2}')
+REND=$(grep -w -c "TESTEND" ${cwd}/tmp/rlog4.out)
+diff ${cwd}/tmp/_restore_with_core/*/bucket/*/etc/issue /etc/issue > /dev/null 2>&1
+RDIFF=$?
+if [ "x$RET" != "xT" ] || [ "$REND" -ne 1 ] || [ $RDIFF -ne 0 ]
+then
+ echo "rlog4" "$RET" "$REND"
+ rstat=4
fi
end_test