Author: jsuchome
Date: Thu Feb 3 15:31:22 2011
New Revision: 63334
URL: http://svn.opensuse.org/viewcvs/yast?rev=63334&view=rev
Log:
should the diff call look like this?
Modified:
branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.cc
branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.h
Modified: branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.cc?rev=63334&r1=63333&r2=63334&view=diff
==============================================================================
--- branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.cc (original)
+++ branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.cc Thu Feb 3 15:31:22 2011
@@ -27,6 +27,25 @@
}
/**
+ * Search the map for value of given key
+ * @param map YCP Map to look in
+ * @param key key we are looking for
+ * @param deflt the default value to be returned if key is not found
+ */
+int SnapperAgent::getIntValue (const YCPMap map, const string key, int deflt)
+{
+ if (!map->value(YCPString(key)).isNull() && map->value(YCPString(key))->isInteger()) {
+ return map->value(YCPString(key))->asInteger()->value();
+ }
+ else if (!map->value(YCPString(key)).isNull() &&
+ map->value(YCPString(key))->isString()) {
+ YCPInteger i (map->value(YCPString(key))->asString()->value().c_str());
+ return i->value();
+ }
+ return deflt;
+}
+
+/**
* Constructor
*/
SnapperAgent::SnapperAgent() : SCRAgent()
@@ -86,7 +105,7 @@
if (PC(0) == "snapshots") {
YCPList retlist;
snapshots.assertInit();
- for (vector<Snapshot>::const_iterator it = snapshots.begin(); it != snapshots.end(); ++it)
+ for (list<Snapshot>::const_iterator it = snapshots.begin(); it != snapshots.end(); ++it)
{
YCPMap s;
@@ -111,6 +130,25 @@
}
return retlist;
}
+
+ /**
+ * Read(.snapper.diff) -> show difference between snapnots num1 and num2.
+ */
+ if (PC(0) == "diff") {
+ YCPMap retmap;
+ unsigned int num1 = getIntValue (argmap, "from", 0);
+ unsigned int num2 = getIntValue (argmap, "to", 0);
+ setComparisonNums(snapshots.find(num1), snapshots.find(num2));
+
+ for (vector<File>::const_iterator it = files.begin(); it != files.end(); ++it)
+ {
+// cout << statusToString(it->getPreToPostStatus()) << " " << it->getName() << endl;
+ y2internal ("file :%s ", it->getName().c_str ());
+ y2internal ("status: %d", it->getPreToPostStatus());
+ }
+
+ return retmap;
+ }
else {
y2error("Wrong path '%s' in Read().", path->toString().c_str());
}
Modified: branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.h?rev=63334&r1=63333&r2=63334&view=diff
==============================================================================
--- branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.h (original)
+++ branches/tmp/jsuchome/snapper/agent-snapper/src/SnapperAgent.h Thu Feb 3 15:31:22 2011
@@ -15,6 +15,8 @@
#include