src/modules/gui/globalexceptionhandler.py
author david.comay@oracle.com
Mon, 24 Oct 2011 09:33:16 -0700
branch2010.2H
changeset 2578 630e1ffc7a19
parent 2572 20cf41d565de
permissions -rw-r--r--
7104247 Remove platform exclude dependencies in Solaris 11 Express SRU 7104266 packagemanager stack traces should tell customers to report issues to service
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2572
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     2
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     4
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     8
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    13
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    19
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    21
#
2578
630e1ffc7a19 7104247 Remove platform exclude dependencies in Solaris 11 Express SRU
david.comay@oracle.com
parents: 2572
diff changeset
    22
# Copyright (c) 2010, 2011, Oracle and/or its affiliates.  All rights reserved.
2572
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    23
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    24
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    25
import sys
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    26
import threading
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    27
import traceback
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    28
from cStringIO import StringIO
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    29
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    30
try:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    31
        import gobject
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    32
        import gtk
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    33
        import pango
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    34
except ImportError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    35
        sys.exit(1)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    36
import pkg.misc as misc
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    37
import pkg.gui.misc as gui_misc
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    38
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    39
class GlobalExceptionHandler:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    40
        def __init__(self):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    41
                self.parent = None
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    42
                sys.excepthook = self.global_exception_handler
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    43
                self.installThreadExcepthook()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    44
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    45
        def set_parent(self, parent):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    46
                self.parent = parent
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    47
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    48
        def global_exception_handler(self, exctyp, value, tb):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    49
                if self.parent:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    50
                        if self.parent.child:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    51
                                self.parent.child.cleanup()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    52
                trace = StringIO()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    53
                traceback.print_exception (exctyp, value, tb, None, trace)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    54
                if exctyp is MemoryError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    55
                        gobject.idle_add(self.__display_memory_err)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    56
                else:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    57
                        gobject.idle_add(self.__display_unknown_err_ex, trace)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    58
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    59
        def installThreadExcepthook(self):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    60
                """
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    61
                Workaround for sys.excepthook python thread bug from:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    62
                Bug: sys.excepthook doesn't work in threads
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    63
                http://bugs.python.org/issue1230540#msg91244
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    64
                """
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    65
                init_old = threading.Thread.__init__
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    66
                def init(self, *ite_args, **ite_kwargs):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    67
                        init_old(self, *ite_args, **ite_kwargs)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    68
                        run_old = self.run
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    69
                        def run_with_except_hook(*rweh_args, **rweh_kwargs):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    70
                                try:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    71
                                        run_old(*rweh_args, **rweh_kwargs)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    72
                                except (KeyboardInterrupt, SystemExit):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    73
                                        raise
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    74
                                except:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    75
                                        if not sys:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    76
                                                raise
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    77
                                        sys.excepthook(*sys.exc_info())
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    78
                        self.run = run_with_except_hook
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    79
                threading.Thread.__init__ = init
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    80
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    81
        def __display_memory_err(self):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    82
                try:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    83
                        dmsg = misc.out_of_memory()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    84
                        msg_stripped = dmsg.replace("\n", " ")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    85
                        gui_misc.error_occurred(None, msg_stripped, _("Package Manager"),
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    86
                            gtk.MESSAGE_ERROR)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    87
                except MemoryError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    88
                        print dmsg
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    89
                except Exception:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    90
                        pass
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    91
                if self.parent:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    92
                        self.parent.unhandled_exception_shutdown()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    93
                else:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    94
                        sys.exit()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    95
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    96
        def __display_unknown_err_ex(self, trace):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    97
                try:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    98
                        self.__display_unknown_err(trace)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    99
                except MemoryError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   100
                        print trace
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   101
                except Exception:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   102
                        pass
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   103
                if self.parent:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   104
                        self.parent.unhandled_exception_shutdown()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   105
                else:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   106
                        sys.exit()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   107
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   108
        def __display_unknown_err(self, trace):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   109
                dmsg = _("An unknown error occurred")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   110
                md = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, message_format=dmsg)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   111
                close_btn = md.add_button(gtk.STOCK_CLOSE, 100)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   112
                md.set_default_response(100)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   113
2578
630e1ffc7a19 7104247 Remove platform exclude dependencies in Solaris 11 Express SRU
david.comay@oracle.com
parents: 2572
diff changeset
   114
                dmsg = misc.get_traceback_message()
630e1ffc7a19 7104247 Remove platform exclude dependencies in Solaris 11 Express SRU
david.comay@oracle.com
parents: 2572
diff changeset
   115
                # We remove all \n except the initial one.
630e1ffc7a19 7104247 Remove platform exclude dependencies in Solaris 11 Express SRU
david.comay@oracle.com
parents: 2572
diff changeset
   116
                dmsg = "\n" + dmsg.replace("\n", " ").lstrip()
2572
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   117
                md.format_secondary_text(dmsg)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   118
                md.set_title(_('Unexpected Error'))
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   119
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   120
                textview = gtk.TextView()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   121
                textview.show()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   122
                textview.set_editable(False)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   123
                textview.set_wrap_mode(gtk.WRAP_WORD)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   124
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   125
                sw = gtk.ScrolledWindow()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   126
                sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   127
                sw.add(textview)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   128
                fr = gtk.Frame()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   129
                fr.set_shadow_type(gtk.SHADOW_IN)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   130
                fr.add(sw)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   131
                ca = md.get_content_area()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   132
                ca.pack_start(fr)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   133
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   134
                textbuffer = textview.get_buffer()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   135
                textbuffer.create_tag("bold", weight=pango.WEIGHT_BOLD)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   136
                textbuffer.create_tag("level1", left_margin=30, right_margin=10)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   137
                textiter = textbuffer.get_end_iter()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   138
                textbuffer.insert_with_tags_by_name(textiter,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   139
                     _("Error details:\n"), "bold")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   140
                textbuffer.insert_with_tags_by_name(textiter, trace.getvalue(), "level1")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   141
                publisher_str = ""
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   142
                if self.parent:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   143
                        publisher_str = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   144
                                gui_misc.get_publishers_for_output(
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   145
                                    self.parent.get_api_object())
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   146
                        if publisher_str != "":
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   147
                                textbuffer.insert_with_tags_by_name(textiter,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   148
                                    _("\nList of configured publishers:"), "bold")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   149
                                textbuffer.insert_with_tags_by_name(
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   150
                                    textiter, publisher_str + "\n", "level1")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   151
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   152
                if publisher_str == "":
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   153
                        textbuffer.insert_with_tags_by_name(textiter,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   154
                            _("\nPlease include output from:\n"), "bold")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   155
                        textbuffer.insert(textiter, "$ pkg publisher\n")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   156
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   157
                md.set_size_request(550, 400)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   158
                md.set_resizable(True)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   159
                close_btn.grab_focus()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   160
                md.show_all()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   161
                md.run()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   162
                md.destroy()