Signed-off-by: Richard Marko <rma...@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 _______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel