11 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
7b68dd55f2
upgrades: Run status operations as non-root
Current check whether the package manager is busy and getting the
unattended upgrades log requires root.  This will not allow Plinth to
run as non-root.  Fix this by moving the operations to actions script.
2016-08-16 18:51:37 -04:00
Sunil Mohan Adapa
afb00f98ab
upgrades: Make manual upgrade a background process
- Closes #366 and closes #304 (all sub-tasks).

- Start new process group with setsid() by sending
  start_new_session=True

- Detach from parent process fds by closing all FDs and attaching stdin,
  stdou and stderr to /dev/null.

- Don't wait for the process to complete.

- This allows for upgrading Plinth while upgrades are trigged from
  Plinth itself.

- Show log of upgrade exection instead of output and error log of the
  process which can no longer be collected.  This has the advantage of
  showing automatic executions also.

- Rewrite the mechanism to detect whether upgrades can be run.  It is
  now based on whether the package manager is busy.  This has the
  advantage of working properly if other apt processes are running,
  automatic upgrades are running, etc.

- Busy status works even if Plinth is restarted while upgrades are in
  progress.

- More descriptive messages showing that upgrades don't have to be
  triggered manually.

- Warn that other packages can't be installed while upgrades are
  running, which may take a long time.

- Warn the users of potential temporary unavailability of
  Plinth/Apache2.
2016-01-20 21:13:18 -05:00
Sunil Mohan Adapa
921f7c8767 upgrades: Make sure error output shows up 2015-11-26 11:05:26 +05:30
Sunil Mohan Adapa
1f43be95a0 upgrades: Handle action errors using error codes
- This is more reliable than string parsing in the output.

- We will be using pythonic try/catches instead of if conditions.
2015-02-22 17:48:35 -05:00
Sunil Mohan Adapa
82fbbe1fec upgrades: Handle upgrade interval other than 1 day properly
- We must assume that apart from Plinth there will be user or user-agent
  changes to the configuration files.  In this case the value may be set
  something other than '1' day.
2015-02-22 17:48:35 -05:00
Sunil Mohan Adapa
d33e60c74a upgrades: Minor styling fixes
- Remove emacs mode line as emacs automatically detect Python files
  based on the #! line.

- End comments with a '.'.

- Use single quotes instead of double quotes for string for consistensy.

- Update message to say that it take more than a minute to finish
  upgrades.  Some times it takes a lot more than that.
2015-02-22 17:48:34 -05:00
fonfon
4a19dcc807 Minor improvement of auto-update check
Instead of relying on /etc/apt/apt.conf.d/20auto-upgrades having the
according entries we now verify the auto-upgrade entries via apt-config
2015-01-28 19:50:27 +00:00
James Valleroy
cd057994d3 Include { in Origins-Pattern regex pattern. 2015-01-28 19:50:27 +00:00
James Valleroy
6292b47e54 Use regexs to match more valid configs for unattended-upgrades. 2015-01-28 19:50:27 +00:00
James Valleroy
304e2aea62 Add form for enabling automatic upgrades. 2015-01-28 19:50:26 +00:00
James Valleroy
80eff7fd6e Add upgrades module that can run unattended-upgrades. 2015-01-28 19:50:26 +00:00