Commit cb95f714 by Kálmán Viktor

dashboard: shut off button

parent 54080b7a
...@@ -36,6 +36,13 @@ ...@@ -36,6 +36,13 @@
<input type="hidden" name="reset" value="dummy"/> <input type="hidden" name="reset" value="dummy"/>
<button title="{% trans "Reset (power cycle)" %}" class="btn btn-default btn-xs" type="submit"><i class="icon-bolt"></i></button> <button title="{% trans "Reset (power cycle)" %}" class="btn btn-default btn-xs" type="submit"><i class="icon-bolt"></i></button>
</form> </form>
<form style="display: inline;" method="POST" action="{% url "dashboard.views.detail" pk=instance.pk %}">
{% csrf_token %}
<input type="hidden" name="shut_off"/>
<button title="{% trans "Shut off" %}" class="btn btn-default btn-xs" type="submit">
<i class="icon-ban-circle"></i>
</button>
</form>
<a title="Migrate" data-vm-pk="{{ instance.pk }}" href="{% url "dashboard.views.vm-migrate" pk=instance.pk %}" class="btn btn-default btn-xs vm-migrate"> <a title="Migrate" data-vm-pk="{{ instance.pk }}" href="{% url "dashboard.views.vm-migrate" pk=instance.pk %}" class="btn btn-default btn-xs vm-migrate">
<i class="icon-truck"></i> <i class="icon-truck"></i>
</a> </a>
......
...@@ -231,6 +231,7 @@ class VmDetailView(CheckedDetailView): ...@@ -231,6 +231,7 @@ class VmDetailView(CheckedDetailView):
'deploy': self.__deploy, 'deploy': self.__deploy,
'reset': self.__reset, 'reset': self.__reset,
'reboot': self.__reboot, 'reboot': self.__reboot,
'shut_off': self.__shut_off,
} }
for k, v in options.iteritems(): for k, v in options.iteritems():
if request.POST.get(k) is not None: if request.POST.get(k) is not None:
...@@ -465,6 +466,14 @@ class VmDetailView(CheckedDetailView): ...@@ -465,6 +466,14 @@ class VmDetailView(CheckedDetailView):
self.object.reboot_async(request.user) self.object.reboot_async(request.user)
return redirect("%s#activity" % self.object.get_absolute_url()) return redirect("%s#activity" % self.object.get_absolute_url())
def __shut_off(self, request):
self.object = self.get_object()
if not self.object.has_level(request.user, 'owner'):
raise PermissionDenied()
self.object.shut_off_async(request.user)
return redirect("%s#activity" % self.object.get_absolute_url())
class NodeDetailView(LoginRequiredMixin, SuperuserRequiredMixin, DetailView): class NodeDetailView(LoginRequiredMixin, SuperuserRequiredMixin, DetailView):
template_name = "dashboard/node-detail.html" template_name = "dashboard/node-detail.html"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment