Exemple #1
0
    def __init__(self, system_bus, mainloop):
        # Init dbus service.
        dbus.service.Object.__init__(self, system_bus, DSC_SERVICE_PATH)
        # Init.
        self.mainloop = mainloop
        self.pkg_cache = AptCache()
        self.exit_flag = False
        self.simulate = False
        self.all_upgrade_pkg_names = []
        self.download_dir = "/var/cache/apt/archives"

        self.is_upgrading = False
        self.in_update_list = False

        self.apt_action_pool = AptActionPool(self.pkg_cache)
        self.apt_action_pool.start()

        global_event.register_event('parse-download-error',
                                    self.send_parse_download_error)

        global_event.register_event("action-start", self.action_start)
        global_event.register_event("action-update", self.action_update)
        global_event.register_event("action-finish", self.action_finish)
        global_event.register_event("action-failed", self.action_failed)

        global_event.register_event("download-start", self.download_start)
        global_event.register_event("download-update", self.download_update)
        global_event.register_event("download-finish", self.download_finish)
        global_event.register_event("download-stop", self.download_stop)
        global_event.register_event("download-error", self.download_failed)

        global_event.register_event("update-list-start",
                                    self.update_list_start)
        global_event.register_event("update-list-finish",
                                    self.update_list_finish)
        global_event.register_event("update-list-failed",
                                    self.update_list_failed)
        global_event.register_event("update-list-update",
                                    self.update_list_update)

        self.packages_status = {}

        self.exit_manager = ExitManager(self.mainloop,
                                        self.is_update_list_running,
                                        self.is_download_action_running,
                                        self.is_apt_action_running,
                                        self.have_exit_request)
        self.exit_manager.start()

        self.set_download_dir('/var/cache/apt/archives')
        self.download_manager = DownloadManager(global_event, verbose=True)