[prev in list] [next in list] [prev in thread] [next in thread]
List: spacewalk-devel
Subject: [Spacewalk-devel] [PATCH 05/10] Add abrt data handling functionality
From: Richard Marko <rmarko () redhat ! com>
Date: 2012-07-18 13:38:13
Message-ID: 1342618698-18572-6-git-send-email-rmarko () redhat ! com
[Download RAW message or body]
Signed-off-by: Richard Marko <rmarko@redhat.com>
---
backend/server/handlers/xmlrpc/__init__.py | 2 +
backend/server/handlers/xmlrpc/abrt.py | 59 ++++++++++++++++++++++++++++
backend/server/rhnCapability.py | 1 +
3 files changed, 62 insertions(+)
create mode 100644 backend/server/handlers/xmlrpc/abrt.py
diff --git a/backend/server/handlers/xmlrpc/__init__.py b/backend/server/handlers/xmlrpc/__init__.py
index 9287d6a..afe29d6 100644
--- a/backend/server/handlers/xmlrpc/__init__.py
+++ b/backend/server/handlers/xmlrpc/__init__.py
@@ -24,6 +24,7 @@ import queue
import errata
import proxy
import get_handler
+import abrt
rpcClasses = {
"registration" : registration.Registration,
@@ -32,6 +33,7 @@ rpcClasses = {
"errata" : errata.Errata,
"proxy" : proxy.Proxy,
"servers" : up2date.Servers,
+ "abrt" : abrt.Abrt,
}
getHandler = get_handler.GetHandler
diff --git a/backend/server/handlers/xmlrpc/abrt.py b/backend/server/handlers/xmlrpc/abrt.py
new file mode 100644
index 0000000..dc3eaea
--- /dev/null
+++ b/backend/server/handlers/xmlrpc/abrt.py
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2012 Red Hat, Inc.
+#
+# This software is licensed to you under the GNU General Public License,
+# version 2 (GPLv2). There is NO WARRANTY for this software, express or
+# implied, including the implied warranties of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+# along with this software; if not, see
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+#
+# Red Hat trademarks are not licensed under GPLv2. No permission is
+# granted to use or replicate Red Hat trademarks that are incorporated
+# in this software or its documentation.
+#
+
+from spacewalk.server import rhnSQL
+from spacewalk.common.rhnLog import log_debug
+from spacewalk.server.rhnHandler import rhnHandler
+
+_query_delete_data = rhnSQL.Statement("""
+delete from rhnAbrtInfo where server_id = :server_id
+""")
+
+_query_store_data = rhnSQL.Statement("""
+insert into rhnAbrtInfo(
+ id,
+ server_id,
+ num_crashes,
+ created)
+values (
+ sequence_nextval('rhn_abrt_info_id_seq'),
+ :server_id,
+ :num_crashes,
+ current_timestamp
+ )
+""")
+
+class Abrt(rhnHandler):
+ def __init__(self):
+ rhnHandler.__init__(self)
+ self.functions.append('handle')
+
+ def handle(self, system_id, version, status, message, data):
+ self.auth_system(system_id)
+ log_debug(1, self.server_id, version, status, message, data)
+
+ if status == 0:
+ h = rhnSQL.prepare(_query_delete_data)
+ h.execute(server_id=self.server_id)
+
+ h = rhnSQL.prepare(_query_store_data)
+ h.execute(server_id=self.server_id,
+ num_crashes=data['num_crashes'])
+
+ rhnSQL.commit()
+
+ return True
+
+ return False
diff --git a/backend/server/rhnCapability.py b/backend/server/rhnCapability.py
index 4c54870..9f2a82f 100644
--- a/backend/server/rhnCapability.py
+++ b/backend/server/rhnCapability.py
@@ -166,6 +166,7 @@ def _set_server_capabilities():
'xmlrpc.errata.patch_names' : {'version' : 1, 'value' : 1},
'staging_content' : {'version' : 1, 'value' : 1},
'ipv6' : {'version' : 1, 'value' : 1},
+ 'abrt.handle' : {'version' : 1, 'value' : 1},
}
l = []
for name, hashval in capabilities.items():
--
1.7.10.4
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic