power: warn if a package manager is running before shutdown/restart

- red colors for warning about running package manager

- red buttons to indicate danger if installation/upgrade runs
This commit is contained in:
Johannes Keyser 2017-07-10 00:45:40 +02:00 committed by James Valleroy
parent 8d75e3ef8d
commit 4bd6929d69
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
4 changed files with 58 additions and 7 deletions

View File

@ -23,6 +23,15 @@
{% block configuration %}
{% if pkg_manager_is_busy %}
<div class="alert alert-danger">
{% blocktrans trimmed %}
Currently an installation or upgrade is running.
Consider waiting until it's finished before shutting down or restarting.
{% endblocktrans %}
</div>
{% endif %}
<p>
<a class="btn btn-default btn-md" href="{% url 'power:restart' %}">
{% trans "Restart &raquo;" %}</a>

View File

@ -33,13 +33,28 @@
{% endblocktrans %}
</p>
{% if pkg_manager_is_busy %}
<div class="alert alert-danger">
{% blocktrans trimmed %}
Currently an installation or upgrade is running.
Consider waiting until it's finished before restarting.
{% endblocktrans %}
</div>
{% endif %}
<form class="form" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<input type="submit" class="btn btn-primary"
value="{% trans "Restart Now" %}"/>
{% if pkg_manager_is_busy %}
<input type="submit" class="btn btn-danger"
value="{% trans "Restart Now" %}"/>
{% else %}
<input type="submit" class="btn btn-primary"
value="{% trans "Restart Now" %}"/>
{% endif %}
</form>
{% endblock %}

View File

@ -32,13 +32,28 @@
{% endblocktrans %}
</p>
{% if pkg_manager_is_busy %}
<div class="alert alert-danger">
{% blocktrans trimmed %}
Currently an installation or upgrade is running.
Consider waiting until it's finished before shutting down.
{% endblocktrans %}
</div>
{% endif %}
<form class="form" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<input type="submit" class="btn btn-primary"
value="{% trans "Shut Down Now" %}"/>
{% if pkg_manager_is_busy %}
<input type="submit" class="btn btn-danger"
value="{% trans "Shut Down Now" %}"/>
{% else %}
<input type="submit" class="btn btn-primary"
value="{% trans "Shut Down Now" %}"/>
{% endif %}
</form>

View File

@ -33,7 +33,8 @@ def index(request):
"""Serve power controls page."""
return TemplateResponse(request, 'power.html',
{'title': power.title,
'description': power.description})
'description': power.description,
'pkg_manager_is_busy': _is_pkg_manager_busy()})
def restart(request):
@ -48,7 +49,8 @@ def restart(request):
return TemplateResponse(request, 'power_restart.html',
{'title': _('Power'),
'form': form})
'form': form,
'pkg_manager_is_busy': _is_pkg_manager_busy()})
def shutdown(request):
@ -63,4 +65,14 @@ def shutdown(request):
return TemplateResponse(request, 'power_shutdown.html',
{'title': _('Power'),
'form': form})
'form': form,
'pkg_manager_is_busy': _is_pkg_manager_busy()})
def _is_pkg_manager_busy():
"""Return whether a package manager is running."""
try:
actions.superuser_run('packages', ['is-package-manager-busy'])
return True
except actions.ActionError:
return False