[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[PATCH 3/5] Everything from savers.py has moved into report.



---
 meh/savers.py |  191 ---------------------------------------------------------
 1 files changed, 0 insertions(+), 191 deletions(-)
 delete mode 100644 meh/savers.py

diff --git a/meh/savers.py b/meh/savers.py
deleted file mode 100644
index 8179c12..0000000
--- a/meh/savers.py
+++ /dev/null
@@ -1,191 +0,0 @@
-# Copyright (C) 2008  Red Hat, Inc.
-# All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Author(s): Chris Lumens <clumens redhat com>
-#            Will Woods <wwoods redhat com>
-#
-from filer import *
-import os
-import pty
-import rpmUtils.arch
-import xmlrpclib
-
-import gettext
-_ = lambda x: gettext.ldgettext("python-meh", x)
-
-def saveToBugzilla(conf, exnFile, exn, (user, password, summary)):
-    def withBugzillaDo(bz, fn):
-        try:
-            retval = fn(bz)
-            return retval
-        except CommunicationError, e:
-            msg = _("Your bug could not be filed due to the following error "
-                    "when communicating with bugzilla:\n\n%s" % str(e))
-        except (TypeError, ValueError), e:
-            msg = _("Your bug could not be filed due to bad information in "
-                    "the bug fields.  This is most likely an error in "
-                    "the bug filing program:\n\n%s" % str(e))
-
-        conf._intf.messageWindow(_("Unable To File Bug"), msg)
-        return None
-
-    filer = conf.bugFiler
-
-    if not filer or not filer.supportsFiling() or not filer.bugUrl:
-        conf._intf.messageWindow(_("Bug Filing Not Supported"),
-            _("Your distribution does not provide a "
-              "supported bug filing system, so you "
-              "cannot save your exception this way."))
-        return False
-
-    if user.strip() == "" or password.strip() == "" or summary.strip() == "":
-        conf._intf.messageWindow(_("Invalid Bug Information"),
-            _("Please provide a valid username, "
-              "password, and short bug description."))
-        return False
-
-    try:
-        withBugzillaDo(filer, lambda b: b.login(user, password))
-    except LoginError:
-        conf._intf.messageWindow(_("Unable To Login"),
-            _("There was an error logging into %s "
-              "using the provided username and "
-              "password.") % filer.displayUrl)
-        return False
-
-    # Are there any existing bugs with this hash value?  If so we will just
-    # add this traceback to the bug report and put the reporter on the CC
-    # list.  Otherwise, we need to create a new bug.
-    wb = "%s_trace_hash:%s" % (conf.programName, exn.hash)
-    buglist = withBugzillaDo(filer, lambda b: b.query({'status_whiteboard': wb,
-                                                       'status_whiteboard_type':'allwordssubstr',
-                                                       'bug_status': []}))
-    if buglist is None:
-        return False
-
-    if len(buglist) == 0:
-        bug = withBugzillaDo(filer, lambda b: b.createbug(product=filer.getproduct(),
-                                       component=conf.programName,
-                                       version=filer.getversion(),
-                                       platform=rpmUtils.arch.getBaseArch(),
-                                       bug_severity="medium",
-                                       priority="medium",
-                                       op_sys="Linux",
-                                       bug_file_loc="http://";,
-                                       summary=summary,
-                                       comment="The following was filed automatically by %s:\n%s" % (conf.programName, str(exn)),
-                                       status_whiteboard=wb))
-        if bug is None:
-            return False
-
-        withBugzillaDo(bug, lambda b: b.attachfile(exnFile,
-                               "Attached traceback automatically from %s." % conf.programName,
-                               contenttype="text/plain", filename=os.path.basename(exnFile)))
-
-        # Tell the user we created a new bug for them and that they should
-        # go add a descriptive comment.
-        if filer.displayUrl.endswith("/"):
-            bugUrl = "%s%s" % (filer.displayUrl, bug.id())
-        else:
-            bugUrl = "%s/%s" % (filer.displayUrl, bug.id())
-
-        conf._intf.exitWindow(_("Bug Created"),
-            _("A new bug has been created with your traceback attached. "
-              "Please add additional information such as what you were doing "
-              "when you encountered the bug, screenshots, and whatever else "
-              "is appropriate to the following bug:\n\n%s") % bugUrl)
-        return True
-    else:
-        bug = buglist[0]
-        withBugzillaDo(bug, lambda b: b.attachfile(exnFile,
-                               "Attached traceback automatically from %s." % conf.programName,
-                               contenttype="text/plain", filename=os.path.basename(exnFile)))
-        withBugzillaDo(bug, lambda b: b.addCC(user))
-
-        # Tell the user which bug they've been CC'd on and that they should
-        # go add a descriptive comment.
-        if filer.displayUrl.endswith("/"):
-            bugUrl = "%s%s" % (filer.displayUrl, bug.id())
-        else:
-            bugUrl = "%s/%s" % (filer.displayUrl, bug.id())
-
-        conf._intf.exitWindow(_("Bug Updated"),
-            _("A bug with your information already exists.  Your account has "
-              "been added to the CC list and your traceback added as a "
-              "comment.  Please add additional descriptive information to the "
-              "following bug:\n\n%s") % bugUrl)
-        return True
-
-def scpAuthenticate(master, childpid, password):
-    while True:
-        # Read up to password prompt.  Propagate OSError exceptions, which
-        # can occur for anything that causes scp to immediately die (bad
-        # hostname, host down, etc.)
-        buf = os.read(master, 4096)
-        if buf.lower().find("password: ") != -1:
-            os.write(master, password+"\n")
-            # read the space and newline that get echoed back
-            os.read(master, 2)
-            break
-
-    while True:
-        buf = ""
-        try:
-            buf = os.read(master, 4096)
-        except (OSError, EOFError):
-            break
-
-    (pid, childstatus) = os.waitpid (childpid, 0)
-    return childstatus
-
-def copyExceptionToRemote(conf, srcFile, exn, (user, password, host, path)):
-    if host.find(":") != -1:
-        (host, port) = host.split(":")
-
-        # Try to convert the port to an integer just as a check to see
-        # if it's a valid port number.  If not, they'll get a chance to
-        # correct the information when scp fails.
-        try:
-            int(port)
-            portArgs = ["-P", port]
-        except ValueError:
-            portArgs = []
-    else:
-        portArgs = []
-
-    # Fork ssh into its own pty
-    (childpid, master) = pty.fork()
-    if childpid < 0:
-        raise RuntimeError("Could not fork process to run scp")
-    elif childpid == 0:
-        # child process - run scp
-        args = ["scp", "-oNumberOfPasswordPrompts=1",
-                "-oStrictHostKeyChecking=no"] + portArgs + \
-               [srcFile, "%s %s:%s" % (user, host, path)]
-        os.execvp("scp", args)
-
-    # parent process
-    try:
-        childstatus = scpAuthenticate(master, childpid, password)
-    except OSError:
-        return False
-
-    os.close(master)
-
-    if os.WIFEXITED(childstatus) and os.WEXITSTATUS(childstatus) == 0:
-        return True
-    else:
-        return False
-- 
1.6.5.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]