[yast-commit] r63916 - in /trunk/snapper/agent-snapper/src: SnapperAgent.cc SnapperAgent.h
Author: jsuchome Date: Thu May 5 17:43:20 2011 New Revision: 63916 URL: http://svn.opensuse.org/viewcvs/yast?rev=63916&view=rev Log: added initialziation code Modified: trunk/snapper/agent-snapper/src/SnapperAgent.cc trunk/snapper/agent-snapper/src/SnapperAgent.h Modified: trunk/snapper/agent-snapper/src/SnapperAgent.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/snapper/agent-snapper/src/SnapperAgent.cc?rev=63916&r1=63915&r2=63916&view=diff ============================================================================== --- trunk/snapper/agent-snapper/src/SnapperAgent.cc (original) +++ trunk/snapper/agent-snapper/src/SnapperAgent.cc Thu May 5 17:43:20 2011 @@ -86,7 +86,8 @@ */ SnapperAgent::SnapperAgent() : SCRAgent() { - sh = createSnapper(); + snapper_initialized = false; + snapper_error = ""; } /** @@ -94,7 +95,10 @@ */ SnapperAgent::~SnapperAgent() { - deleteSnapper(sh); + if (sh) + { + deleteSnapper(sh); + } } @@ -133,14 +137,21 @@ YCPMap argmap; if (!arg.isNull() && arg->isMap()) argmap = arg->asMap(); + + if (!snapper_initialized && PC(0) != "error") { + y2error ("snapper not initialized: use Execute (.snapper) first!"); + snapper_error = "not_initialized"; + return YCPVoid(); + } if (path->length() == 1) { /** - * error: Read(.snapper.error) -> returns last error message + * error: Read (.snapper.error) -> returns last error message */ if (PC(0) == "error") { YCPMap retmap; + retmap->add (YCPString ("type"), YCPString (snapper_error)); return retmap; } /** @@ -286,6 +297,36 @@ if (!arg.isNull() && arg->isMap()) argmap = arg->asMap(); + /** + * Execute (.snapper) call: Initialize snapper object + */ + if (path->length() == 0) { + + try { + sh = createSnapper(); + } + catch (const ConfigNotFoundException& e) + { + y2error ("Config not found."); + snapper_error = "config_not_found"; + return YCPBoolean (false); + } + catch (const InvalidConfigException& e) + { + y2error ("Config is invalid."); + snapper_error = "config_invalid"; + return YCPBoolean (false); + } + snapper_initialized = true; + return ret; + } + + if (!snapper_initialized) { + y2error ("snapper not initialized: use Execute (.snapper) first!"); + snapper_error = "not_initialized"; + return YCPVoid(); + } + if (path->length() == 1) { /** Modified: trunk/snapper/agent-snapper/src/SnapperAgent.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/snapper/agent-snapper/src/SnapperAgent.h?rev=63916&r1=63915&r2=63916&view=diff ============================================================================== --- trunk/snapper/agent-snapper/src/SnapperAgent.h (original) +++ trunk/snapper/agent-snapper/src/SnapperAgent.h Thu May 5 17:43:20 2011 @@ -29,6 +29,10 @@ * Agent private variables and methods */ + snapper::Snapper* sh; + bool snapper_initialized; + string snapper_error; + /** * search the map for value of given key; both key and value have to be strings * when key is not present, empty string is returned @@ -92,11 +96,6 @@ * Used for mounting the agent. */ virtual YCPValue otherCommand(const YCPTerm& term); - -private: - - snapper::Snapper* sh; - }; #endif /* _SnapperAgent_h */ -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
jsuchome@svn2.opensuse.org