15737 Package Manager very slow after doing update
authorPadraig O'Briain <padraig.obriain@oracle.com>
Wed, 28 Apr 2010 15:30:14 +0100
changeset 1880 684773e8a373
parent 1879 7dc50f542f19
child 1881 6120f2c6b4cb
15737 Package Manager very slow after doing update
src/gui/modules/installupdate.py
src/gui/modules/uarenamebe.py
--- a/src/gui/modules/installupdate.py	Mon Apr 26 02:19:08 2010 -0700
+++ b/src/gui/modules/installupdate.py	Wed Apr 28 15:30:14 2010 +0100
@@ -95,6 +95,7 @@
                 self.operations_done = False
                 self.operations_done_ex = False
                 self.prev_ind_phase = None
+                self.reboot_needed = False
                 self.uarenamebe_o = None
                 self.prev_pkg = None
                 self.progress_stop_timer_running = False
@@ -1069,7 +1070,7 @@
                         if self.uarenamebe_o:
                                 be_rename_dialog = \
                                     self.uarenamebe_o.show_rename_dialog(
-                                    self.update_list)
+                                    self.update_list, self.reboot_needed)
                                 if be_rename_dialog == True:
                                         self.w_dialog.hide()
 
@@ -1095,6 +1096,7 @@
                 plan_desc = self.api_o.describe()
                 if plan_desc == None:
                         return
+                self.reboot_needed = plan_desc.reboot_needed
                 plan = plan_desc.get_changes()
                 self.update_details_text("\n")
                 for pkg_plan in plan:
--- a/src/gui/modules/uarenamebe.py	Mon Apr 26 02:19:08 2010 -0700
+++ b/src/gui/modules/uarenamebe.py	Wed Apr 28 15:30:14 2010 +0100
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 import pkg.gui.misc as gui_misc
@@ -61,15 +61,7 @@
                         msgbox.destroy()
                         return
 
-                # Before performing update all (image-update) task, we are storing
-                # the active on reboot be name. If the be name after update is different
-                # it means that new BE was created and we can show BE rename dialog
-                # otherwise we can show update completed dialog.
-                # Also we need to store original BE name to work-around the bug: 6472202
-                self.active_be_before_update_all = self.__get_activated_be_name()
-
                 self.parent = parent
-                self.updated_packages_list = None
                 self.stop_progress_bouncing = False
                 self.stopped_bouncing_progress = True
                 gladefile = os.path.join(self.parent.application_dir,
@@ -142,17 +134,15 @@
                             "Check declare_signals()") \
                             % error
 
-        def show_rename_dialog(self, updated_packages_list):
+        def show_rename_dialog(self, updated_packages_list, reboot_needed):
                 '''Returns False if no BE rename is needed'''
-                self.updated_packages_list = updated_packages_list
-                self.__set_release_notes_url()
-                self.__setup_be_name()
-                orig_name = self.__get_activated_be_name()
-                if orig_name == self.active_be_before_update_all:
+                if not reboot_needed:
                         self.w_ua_completed_dialog.hide()
-                        self.parent.update_package_list(self.updated_packages_list)
+                        self.parent.update_package_list(updated_packages_list)
                         return False
                 else:
+                        self.__set_release_notes_url()
+                        self.__setup_be_name()
                         self.w_ua_completed_dialog.show_all()
                         return True
 
@@ -220,9 +210,6 @@
                                 gobject.idle_add(self.__g_be_reboot_problem_dialog)
                         else:
                                 gobject.idle_add(self.parent.shutdown_after_image_update)
-                else:
-                        gobject.idle_add(self.parent.update_package_list,
-                            self.updated_packages_list)
                 self.__stop_bouncing_progress()
                 gobject.idle_add(self.parent.shutdown_after_image_update, False)