예제 #1
0
    def transaction(self):
        """
        Call after successful transaction
        See https://rpm-software-management.github.io/dnf/api_transaction.html
        """
        # Don't run tracer when uninstalling it
        if dnfpluginsextras.is_erasing(self.base.transaction,
                                       "tracer"):
            return

        # Don't run tracer when preparing chroot for mock
        if self.base.conf.installroot != "/":
            return

        # Don't run tracer when "nothing to do"
        if not len(self.base.transaction):
            return

        installed = set([package.name for package in
                         self.base.transaction.install_set])
        erased = set([package.name for package in
                      self.base.transaction.remove_set])

        args = ["tracer", "-n"] + list(installed | erased)
        process = subprocess.Popen(
            args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = process.communicate()
        _print_output(out, err)

        if len(out) != 0:
            print("\n" + _("For more information run:"))
            print("    sudo tracer -iat " + str(self.timestamp))
예제 #2
0
    def transaction(self):
        """
        Call after successful transaction
        See https://rpm-software-management.github.io/dnf/api_transaction.html
        """
        # Don't run tracer when uninstalling it
        if dnfpluginsextras.is_erasing(self.base.transaction,
                                       "tracer"):
            return

        # Don't run tracer when preparing chroot for mock
        if self.base.conf.installroot != "/":
            return

        # Don't run tracer when "nothing to do"
        if not len(self.base.transaction):
            return

        installed = set([package.name for package in
                         self.base.transaction.install_set])
        erased = set([package.name for package in
                      self.base.transaction.remove_set])
        packages = [Package(p, time.time()) for p in list(installed | erased)]

        try:
            tracer = TracerFacade(packages)
            tracer.render()

            if len(tracer.apps) != 0:
                print("\n" + _("For more information run:"))
                print("    sudo tracer -iat " + str(self.timestamp))

        except Exception:
            render_error(traceback.format_exc())
예제 #3
0
    def transaction(self):
        """
        Call after successful transaction
        See https://rpm-software-management.github.io/dnf/api_transaction.html
        """
        # Don't run tracer when uninstalling it
        if dnfpluginsextras.is_erasing(self.base.transaction,
                                       "tracer"):
            return

        # Don't run tracer when preparing chroot for mock
        if self.base.conf.installroot != "/":
            return

        installed = set([package.name for package in
                         self.base.transaction.install_set])
        erased = set([package.name for package in
                      self.base.transaction.remove_set])

        args = ["tracer", "-n"] + list(installed | erased)
        process = subprocess.Popen(
            args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = process.communicate()
        _print_output(out, err)

        if len(out) != 0:
            print("\n" + _("For more information run:"))
            print("    sudo tracer -iat " + str(self.timestamp))
예제 #4
0
 def transaction(self):
     if dnfpluginsextras.is_erasing(self.base.transaction,
                                    "snapper"):
         return
     try:
         bus = SystemBus()
         snapper = Interface(bus.get_object('org.opensuse.Snapper',
                                            '/org/opensuse/Snapper'),
                             dbus_interface='org.opensuse.Snapper')
     except DBusException as e:
         logger.critical(
             "snapper: " + _("connect to snapperd failed: %s"), e
         )
         return
     try:
         logger.debug(
             "snapper: " + _("creating snapshot")
         )
         snap = snapper.CreateSingleSnapshot("root", self.description, "", {})
         logger.debug(
             "snapper: " + _("created snapshot %d"), snap
         )
     except DBusException as e:
         logger.critical(
             "snapper: " + _("creating snapshot failed: %s"), e
         )
예제 #5
0
 def transaction(self):
     if dnfpluginsextras.is_erasing(self.base.transaction, "snapper"):
         return
     try:
         bus = SystemBus()
         snapper = Interface(bus.get_object('org.opensuse.Snapper',
                                            '/org/opensuse/Snapper'),
                             dbus_interface='org.opensuse.Snapper')
     except DBusException as e:
         logger.critical("snapper: " + _("connect to snapperd failed: %s"),
                         e)
         return
     try:
         logger.debug("snapper: " + _("creating snapshot"))
         snap = snapper.CreateSingleSnapshot("root", self.description, "",
                                             {})
         logger.debug("snapper: " + _("created snapshot %d"), snap)
     except DBusException as e:
         logger.critical("snapper: " + _("creating snapshot failed: %s"), e)