From: Arvin Schnell Date: Wed, 21 Nov 2012 10:57:21 +0000 (+0100) Subject: - handle userdata in zypp plugin (fate #312521) X-Git-Tag: v0.1.3~65 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=971480a5d675f58bfb2f35dc83e344f84d894ca8;p=thirdparty%2Fsnapper.git - handle userdata in zypp plugin (fate #312521) --- diff --git a/package/snapper.changes b/package/snapper.changes index 592c7107..24f9df45 100644 --- a/package/snapper.changes +++ b/package/snapper.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Nov 21 11:55:28 CET 2012 - aschnell@suse.de + +- handle userdata in zypp plugin (fate #312521) + ------------------------------------------------------------------- Mon Nov 12 15:37:25 CET 2012 - aschnell@suse.de diff --git a/scripts/zypp-plugin.py b/scripts/zypp-plugin.py index e893bd9c..af115250 100755 --- a/scripts/zypp-plugin.py +++ b/scripts/zypp-plugin.py @@ -2,16 +2,36 @@ from os import readlink, getppid from os.path import basename +from sys import stderr from dbus import SystemBus, Interface from zypp_plugin import Plugin class MyPlugin(Plugin): + def parse_userdata(self, s): + ud = {} + for kv in s.split(","): + k, v = kv.split("=", 1) + k = k.strip() + if not k: + raise ValueError + ud[k] = v.strip() + return ud + def PLUGINBEGIN(self, headers, body): exe = basename(readlink("/proc/%d/exe" % getppid())) - self.num1 = snapper.CreatePreSnapshot("root", "zypp(%s)" % exe, "number", {}) + userdata = {} + + try: + userdata = self.parse_userdata(headers['userdata']) + except KeyError: + pass + except ValueError: + stderr.write("invalid userdata") + + self.num1 = snapper.CreatePreSnapshot("root", "zypp(%s)" % exe, "number", userdata) self.ack()