From: Michael Tremer Date: Thu, 2 Nov 2017 18:56:44 +0000 (+0100) Subject: Allow removing packages X-Git-Tag: 0.9.28~1285^2~1312 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f1289eb2a2e68f02e162908466e5f0c7f28b195;p=pakfire.git Allow removing packages Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/base.py b/src/pakfire/base.py index 74b9d0fb0..2b3e26c20 100644 --- a/src/pakfire/base.py +++ b/src/pakfire/base.py @@ -232,6 +232,15 @@ class PakfireContext(object): """ raise NotImplementedError + def erase(self, pkgs, **kwargs): + request = _pakfire.Request(self.pakfire.pool) + + for pkg in pkgs: + relation = _pakfire.Relation(self.pakfire.pool, pkg) + request.erase(relation) + + return request.solve(**kwargs) + def update(self, reqs=None, excludes=None, **kwargs): request = _pakfire.Request(self.pakfire.pool) @@ -296,32 +305,6 @@ class PakfireContext(object): t.run() - def remove(self, pkgs, logger=None): - if logger is None: - logger = logging.getLogger("pakfire") - - # Create a new request. - request = self.pakfire.pool.create_request(remove=pkgs) - - # Solve the request. - solver = self.pakfire.pool.solve(request, allow_uninstall=True) - assert solver.status is True - - # Create the transaction. - t = transaction.Transaction.from_solver(self.pakfire, solver) - t.dump() - - if not t: - log.info(_("Nothing to do")) - return - - # Ask the user if okay. - if not t.cli_yesno(): - return - - # Process the transaction. - t.run() - class PakfireBuilder(Pakfire): mode = "builder" diff --git a/src/pakfire/cli.py b/src/pakfire/cli.py index c4e470a66..a4cc53107 100644 --- a/src/pakfire/cli.py +++ b/src/pakfire/cli.py @@ -346,7 +346,7 @@ class Cli(object): def handle_remove(self, ns): with self.pakfire(ns) as p: - transaction = p.remove(ns.package) + transaction = p.erase(ns.package) self._execute_transaction(transaction)