From: Arvin Schnell Date: Tue, 3 May 2011 08:13:26 +0000 (+0200) Subject: - extended callback for rollback infos X-Git-Tag: v0.1.3~394 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa384556f39f83b3032c10b065a3f5085eb2d27f;p=thirdparty%2Fsnapper.git - extended callback for rollback infos --- diff --git a/snapper/File.cc b/snapper/File.cc index 0a7437ff..0f2e780e 100644 --- a/snapper/File.cc +++ b/snapper/File.cc @@ -377,8 +377,8 @@ namespace snapper { if (getPreToPostStatus() & CREATED || getPreToPostStatus() & TYPE) { - if (getSnapper()->getRollbackProgressCallback()) - getSnapper()->getRollbackProgressCallback()->deleteInfo(name); + if (getSnapper()->getRollbackCallback()) + getSnapper()->getRollbackCallback()->deleteInfo(name); struct stat fs; getLStat(getAbsolutePath(LOC_POST), fs); @@ -401,8 +401,8 @@ namespace snapper if (getPreToPostStatus() & DELETED || getPreToPostStatus() & TYPE) { - if (getSnapper()->getRollbackProgressCallback()) - getSnapper()->getRollbackProgressCallback()->createInfo(name); + if (getSnapper()->getRollbackCallback()) + getSnapper()->getRollbackCallback()->createInfo(name); struct stat fs; getLStat(getAbsolutePath(LOC_PRE), fs); @@ -431,8 +431,8 @@ namespace snapper if (getPreToPostStatus() & (CONTENT | PERMISSIONS | USER | GROUP)) { - if (getSnapper()->getRollbackProgressCallback()) - getSnapper()->getRollbackProgressCallback()->modifyInfo(name); + if (getSnapper()->getRollbackCallback()) + getSnapper()->getRollbackCallback()->modifyInfo(name); struct stat fs; getLStat(getAbsolutePath(LOC_PRE), fs); @@ -497,6 +497,9 @@ namespace snapper { y2mil("begin rollback"); + if (getSnapper()->getRollbackCallback()) + getSnapper()->getRollbackCallback()->start(); + for (vector::reverse_iterator it = entries.rbegin(); it != entries.rend(); ++it) { if (it->getRollback()) @@ -519,6 +522,9 @@ namespace snapper } } + if (getSnapper()->getRollbackCallback()) + getSnapper()->getRollbackCallback()->stop(); + y2mil("end rollback"); return true; diff --git a/snapper/Snapper.cc b/snapper/Snapper.cc index 3052b7b7..a64fb0a9 100644 --- a/snapper/Snapper.cc +++ b/snapper/Snapper.cc @@ -46,7 +46,7 @@ namespace snapper Snapper::Snapper(const string& config_name) : config_name(config_name), config(NULL), subvolume("/"), snapshots(this), - compare_callback(NULL), rollback_progress_callback(NULL) + compare_callback(NULL), rollback_callback(NULL) { y2mil("Snapper constructor"); y2mil("libsnapper version " VERSION); diff --git a/snapper/Snapper.h b/snapper/Snapper.h index c973b594..d2b9db4b 100644 --- a/snapper/Snapper.h +++ b/snapper/Snapper.h @@ -47,10 +47,13 @@ namespace snapper }; - struct RollbackProgressCallback + struct RollbackCallback { - RollbackProgressCallback() {} - virtual ~RollbackProgressCallback() {} + RollbackCallback() {} + virtual ~RollbackCallback() {} + + virtual void start() = 0; + virtual void stop() = 0; virtual void createInfo(const string& name) = 0; virtual void modifyInfo(const string& name) = 0; @@ -125,8 +128,8 @@ namespace snapper void setCompareCallback(CompareCallback* p) { compare_callback = p; } CompareCallback* getCompareCallback() const { return compare_callback; } - void setRollbackProgressCallback(RollbackProgressCallback* p) { rollback_progress_callback = p; } - RollbackProgressCallback* getRollbackProgressCallback() const { return rollback_progress_callback; } + void setRollbackCallback(RollbackCallback* p) { rollback_callback = p; } + RollbackCallback* getRollbackCallback() const { return rollback_callback; } const vector& getIgnorePatterns() const { return ignore_patterns; } @@ -152,7 +155,7 @@ namespace snapper Snapshots snapshots; CompareCallback* compare_callback; - RollbackProgressCallback* rollback_progress_callback; + RollbackCallback* rollback_callback; }; diff --git a/testsuite-real/common.cc b/testsuite-real/common.cc index e33b4aa2..309fb34e 100644 --- a/testsuite-real/common.cc +++ b/testsuite-real/common.cc @@ -30,21 +30,24 @@ Snapshots::iterator second; struct CompareCallbackImpl : public CompareCallback { - void start() { cout << "comparing snapshots..." << flush; } + void start() { cout << "comparing snapshots..." << flush; } void stop() { cout << " done" << endl; } }; CompareCallbackImpl compare_callback_impl; -struct RollbackProgressCallbackImpl : public RollbackProgressCallback +struct RollbackCallbackImpl : public RollbackCallback { + void start() { cout << "running rollback..." << endl; } + void stop() { cout << "rollback done" << endl; } + void createInfo(const string& name) { cout << "create " << name << endl; } void modifyInfo(const string& name) { cout << "modify " << name << endl; } void deleteInfo(const string& name) { cout << "delete " << name << endl; } }; -RollbackProgressCallbackImpl rollback_progress_callback_impl; +RollbackCallbackImpl rollback_callback_impl; void @@ -58,7 +61,7 @@ setup() sh = createSnapper("testsuite"); sh->setCompareCallback(&compare_callback_impl); - sh->setRollbackProgressCallback(&rollback_progress_callback_impl); + sh->setRollbackCallback(&rollback_callback_impl); } diff --git a/tools/snapper.cc b/tools/snapper.cc index 0f0abdb1..7de47e11 100644 --- a/tools/snapper.cc +++ b/tools/snapper.cc @@ -27,6 +27,7 @@ map cmds; GetOpts getopts; bool quiet = false; +bool verbose = false; string config_name = "root"; Snapper* sh = NULL; @@ -677,6 +678,7 @@ command_help() cout << _(" Global options:") << endl << _("\t--quiet, -q\t\t\tSuppress normal output.") << endl + << _("\t--verbose, -v\t\t\tIncrease verbosity.") << endl << _("\t--table-style, -t