def render_resource(self, request, response, location): # Force mime-type to html response.set_mime_type("text/html") response.set_header("Cache-Control", "no-store") response.set_header("connection", "close") if self.enable_actions and request.method == http.Methods.POST: data = "\n".join(request.readlines()) params = http.urldecode(data, request.encoding) if 'terminate_agent' in params: d = self.model.terminate_agent() d.addCallback(self._move_up) return d if 'kill_agent' in params: d = self.model.kill_agent() d.addCallback(self._move_up) return d doc = [] self.render_header(doc) self._update_document(request, response, doc) if self.enable_actions: self._update_actions(request, response, doc) self.render_footer(doc) response.writelines(doc)
def render_resource(self, request, response, location): # Force mime-type to html response.set_mime_type("text/html") response.set_header("Cache-Control", "no-store") response.set_header("connection", "close") if request.method == http.Methods.POST: if self.enable_actions: data = "\n".join(request.readlines()) params = http.urldecode(data, request.encoding) if 'start_agent' in params: agent_type = params['agent_type'][0] if agent_type in self.startable_agents: d = self.model.spawn_agent(agent_type) d.addCallback(defer.drop_param, self.redirect, request.path) return d self.redirect(request.path) return self.render_response(request, response)
def render_resource(self, request, response, location): # Force mime-type to html response.set_mime_type("text/html") response.set_header("Cache-Control", "no-store") response.set_header("connection", "close") if self.enable_actions and request.method == http.Methods.POST: data = "\n".join(request.readlines()) params = http.urldecode(data, request.encoding) if 'set_logging_filter' in params: filter = params["filter"][0] self.model.set_logging_filter(filter) if 'shutdown_agency' in params: time.callLater(1, self.model.shutdown_agency) return self._redirect_to_top(request) if 'terminate_agency' in params: time.callLater(1, self.model.terminate_agency) return self._redirect_to_top(request) if 'kill_agency' in params: time.callLater(1, self.model.kill_agency) return self._redirect_to_top(request) agents_url = "/agents" doc = [] self.render_header(doc) doc.extend(["<H2>Agency</H2>" "<TABLE>" "<TR>" "<TD><B>Identifier:</B></TD>" "<TD>", self.model.agency_id, "</TD>" "</TR>", "<TR>" "<TD><B>Role:</B></TD>" "<TD>", self.model.role.name, "</TD>" "</TR>" "</TABLE>" "<UL>" "<LI><H4><A href='", agents_url, "'>Agents</A></H4></LI>" "</UL>"]) if self.enable_actions: dbg = self.model.get_logging_filter() doc.extend(["</TABLE>" "<H2>Actions</H2>" "<TABLE>" "<TR>" "<TD valign='top'><B>Global Logging Filter:</TD>" "<TD colspan='2'>" "<DIV>" "<FORM method='post'>" "<INPUT type='text' name='filter' value='", dbg, "'>" "<INPUT type='submit' name='set_logging_filter'" " value='Update'>" "</FORM>" "</DIV>" "</TD>" "</TR>" "<TR>" "<TD>" "<FORM method='post'>" "<INPUT type='submit' name='shutdown_agency'" " value='Shutdown'>" "</FORM>" "</TD>" "<TD>" "<FORM method='post'>" "<INPUT type='submit' name='terminate_agency'" " value='Terminate'>" "</FORM>" "</TD>" "<TD>" "<FORM method='post'>" "<INPUT type='submit' name='kill_agency'" " value='Kill'>" "</FORM>" "</TD>" "</TR>" "</TABLE>"]) self.render_footer(doc) response.writelines(doc)
def render_resource(self, request, response, location): # Only the master agency knows the other ones self._ensure_master(request) # Force mime-type to html response.set_mime_type("text/html") response.set_header("Cache-Control", "no-store") response.set_header("connection", "close") if request.method == http.Methods.POST: if self.enable_actions and self.model.is_master(): data = "\n".join(request.readlines()) params = http.urldecode(data, request.encoding) if 'full_shutdown' in params: time.callLater(0, self.model.full_shutdown) doc = ["<HTML><HEAD>" "<TITLE>F3AT Gateway</TITLE></HEAD><BODY>" "<H2>Offline</H2>" "</BODY></HTML>"] response.writelines(doc) return if 'start_agent' in params: agent_type = params['agent_type'][0] if agent_type in self.startable_agents: d = self.model.spawn_agent(agent_type) d.addCallback(defer.drop_param, self.redirect, request.path) return d self.redirect(request.path) doc = [] self.render_header(doc) doc.extend(["<H2>Agencies</H2>" "<TABLE border='0'>"]) for agency_id in self.model.iter_agency_ids(): agency_url = self.create_url(request, agency_id) doc.extend(["<TR><TD><A href='", agency_url, "'>", agency_id, "</A>" "</TD></TR>"]) doc.extend(["</TABLE>"]) if self.enable_actions: if self.startable_agents and self.model.is_master(): doc.extend(["</TABLE>" "<H2>Actions</H2>" "<TABLE>" "<TR>" "<TD valign='top'><B>Start Agent:</B></TD>" "<TD>" "<FORM method='post'>" "<DIV>" "<SELECT name='agent_type'>" "<option value='' selected>" "(select type)</option>"]) startable = self.startable_agents.items() startable.sort(key=operator.itemgetter(0)) for k, v in startable: doc.extend(["<option value='", k, "'>", v, "</option>"]) doc.extend(["</SELECT>" "<INPUT type='submit' name='start_agent'" " value='Start'>" "</DIV>" "</FORM>" "</TD>" "</TR>" "<TR>" "<TD>" "<FORM method='post'>" "<INPUT type='submit' name='full_shutdown'" " value='Full Shutdown'>" "</FORM>" "</TD>" "</TR>" "</TABLE>"]) self.render_footer(doc) response.writelines(doc)