Add package name to needs{Restart,Reboot} list if an update requires one of these actions.
IMHO, update_databases() method in Install class is suitable for this operation, feel free to move/refactor code if I'm wrong.
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
2009-12-08 Bahadır Kandemir <bahadir@pardus.org.tr>
|
||||||
|
* pisi/atomicoperations.py: Add package name to needs{Restart,Reboot}
|
||||||
|
list if an update requires one of these actions.
|
||||||
|
|
||||||
2009-12-07 Bahadır Kandemir <bahadir@pardus.org.tr>
|
2009-12-07 Bahadır Kandemir <bahadir@pardus.org.tr>
|
||||||
* pisi/api.py, pisi/db/install.db, pisi/constants.py: Install DB
|
* pisi/api.py, pisi/db/install.db, pisi/constants.py: Install DB
|
||||||
changes and API methods for needs{Restart,Reboot} feature.
|
changes and API methods for needs{Restart,Reboot} feature.
|
||||||
|
|||||||
@@ -449,6 +449,19 @@ class Install(AtomicOperation):
|
|||||||
if self.config_later:
|
if self.config_later:
|
||||||
self.installdb.mark_pending(self.pkginfo.name)
|
self.installdb.mark_pending(self.pkginfo.name)
|
||||||
|
|
||||||
|
# get update history
|
||||||
|
if self.installdb.has_package(self.pkginfo.name):
|
||||||
|
(version, release, build) = self.installdb.get_version(self.pkginfo.name)
|
||||||
|
updates = [i for i in self.pkginfo.history if pisi.version.Version(i.release) > pisi.version.Version(release)]
|
||||||
|
else:
|
||||||
|
updates = self.pkginfo.history
|
||||||
|
|
||||||
|
# need service or system restart?
|
||||||
|
if pisi.util.any(lambda u:"serviceRestart" in u.required_actions(), updates):
|
||||||
|
pisi.api.add_needs_restart(self.pkginfo.name)
|
||||||
|
if pisi.util.any(lambda u:"systemRestart" in u.required_actions(), updates):
|
||||||
|
pisi.api.add_needs_reboot(self.pkginfo.name)
|
||||||
|
|
||||||
# filesdb
|
# filesdb
|
||||||
self.filesdb.add_files(self.metadata.package.name, self.files)
|
self.filesdb.add_files(self.metadata.package.name, self.files)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user