def post(self, request, id, action): """Execute a action of the Containers.""" if action == 'start': return client.container_start(request, id) elif action == 'stop': timeout = request.DATA.get("timeout") or 10 return client.container_stop(request, id, timeout) elif action == 'restart': timeout = request.DATA.get("timeout") or 10 return client.container_restart(request, id, timeout) elif action == 'pause': return client.container_pause(request, id) elif action == 'unpause': return client.container_unpause(request, id) elif action == 'execute': command = request.DATA.get("command") return client.container_execute(request, id, command) elif action == 'kill': signal = request.DATA.get("signal") or None return client.container_kill(request, id, signal) elif action == 'attach': return client.container_attach(request, id) elif action == 'resize': width = request.DATA.get("width") or 500 height = request.DATA.get("height") or 400 return client.container_resize(request, id, width, height) elif action == 'network_attach': return client.container_network_attach(request, id) elif action == 'network_detach': return client.container_network_detach(request, id)
def get_context_data(self, **kwargs): context = super(SerialConsoleView, self).get_context_data(**kwargs) context['page_title'] = self.kwargs['container_id'] try: console_url = client.container_attach(self.request, self.kwargs['container_id']) context["console_url"] = console_url context["protocols"] = "['binary', 'base64']" except Exception: context["error_message"] = "Cannot get console for container %s." \ % self.kwargs['container_id'] return context