[Merge] lp:~brian-murray/ubuntu-release-upgrader/improve-inhibit-idle into lp:ubuntu-release-upgrader

Steve Langasek steve.langasek at canonical.com
Fri Jul 6 17:39:33 UTC 2018


Review: Approve

one wording suggestion.

Diff comments:

> === modified file 'DistUpgrade/DistUpgradeController.py'
> --- DistUpgrade/DistUpgradeController.py	2018-06-27 23:34:19 +0000
> +++ DistUpgrade/DistUpgradeController.py	2018-07-05 23:26:42 +0000
> @@ -1984,6 +1988,57 @@
>                                     _("The partial upgrade was completed."))
>          return True
>  
> +    def _inhibitIdle(self):
> +        if os.path.exists("/usr/bin/gnome-session-inhibit"):
> +            self._uid = os.environ.get('SUDO_UID', '')
> +            if not self._uid:
> +                self._uid = os.environ.get('PKEXEC_UID', '')
> +            if not self._uid:
> +                logging.debug("failed to determine user upgrading")
> +                logging.error("failed to inhibit gnome-session idle")
> +                return
> +            self._getUserEnv()
> +            if not self._user_env:
> +                return
> +            #seteuid so dbus user session can be accessed
> +            os.seteuid(int(self._uid))
> +
> +            logging.debug("inhibit gnome-session idle")
> +            try:
> +                xdg_desktop = self._user_env.get("XDG_CURRENT_DESKTOP", "")
> +                if not xdg_desktop:
> +                    logging.debug("failed to find XDG_CURRENT_DESKTOP")
> +                    logging.error("failed to inhibit gnome-session idle")
> +                    return
> +                idle = subprocess.Popen(["gnome-session-inhibit", "--inhibit",
> +                                         "idle", "--inhibit-only"],
> +                                        env=self._user_env)
> +                self._view.information(_("Lock screen disabled"),
> +                                       _("Your lock screen has been "
> +                                         "disabled and will continue "
> +                                         "to be so until you reboot."))

"and will remain disabled until you reboot"?

> +            except (OSError, ValueError):
> +                logging.exception("failed to inhibit gnome-session idle")
> +            os.seteuid(os.getuid())
> +
> +    def _getUserEnv(self):
> +        try:
> +            pid = subprocess.check_output(["pgrep", "-u", self._uid,
> +                                           "gnome-session"])
> +            pid = pid.decode().split('\n')[0]
> +            with open('/proc/' + pid + '/environ', 'r') as f:
> +                data = f.read().split('\x00')
> +            for line in data:
> +                if len(line):
> +                    env = line.split('=', 1)
> +                    self._user_env[env[0]] = env[1]
> +        except subprocess.CalledProcessError as e:
> +            if e.returncode == 1:
> +                logging.debug("gnome-session not running for user")
> +            else:
> +                logging.exception("failed to read user env")
> +
> +
>  
>  if __name__ == "__main__":
>      from .DistUpgradeViewText import DistUpgradeViewText


-- 
https://code.launchpad.net/~brian-murray/ubuntu-release-upgrader/improve-inhibit-idle/+merge/349028
Your team Ubuntu Core Development Team is subscribed to branch lp:ubuntu-release-upgrader.



More information about the Ubuntu-reviews mailing list