def _serve_graph(self, query_params): """Given a single run, return the graph definition in json format.""" run = query_params.get('run', None) if run is None: self.send_error(400, 'query parameter "run" is required') return try: graph = self._multiplexer.Graph(run) except ValueError: self.send_response(404) return limit_attr_size = query_params.get('limit_attr_size', None) if limit_attr_size is not None: try: limit_attr_size = int(limit_attr_size) except ValueError: self.send_error(400, 'The query param `limit_attr_size` must be' 'an integer') return large_attrs_key = query_params.get('large_attrs_key', None) try: process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) except ValueError as e: self.send_error(400, e.message) return # Serialize the graph to pbtxt format. graph_pbtxt = str(graph) # Gzip it and send it to the user. self._send_gzip_response(graph_pbtxt, 'text/plain')
def _serve_graph(self, request): """Given a single run, return the graph definition in json format.""" run = request.args.get('run', None) if run is None: return http_util.Respond(request, 'query parameter "run" is required', 'text/plain', 400) try: graph = self._multiplexer.Graph(run) except ValueError: return http_util.Respond(request, '404 Not Found', code=404) limit_attr_size = request.args.get('limit_attr_size', None) if limit_attr_size is not None: try: limit_attr_size = int(limit_attr_size) except ValueError: return http_util.Respond( request, 'query parameter `limit_attr_size` must be integer', 'text/plain', 400) large_attrs_key = request.args.get('large_attrs_key', None) try: process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) except ValueError as e: return http_util.Respond(request, e.message, 'text/plain', 400) return http_util.Respond(request, str(graph), 'text/x-protobuf') # pbtxt
def _serve_graph(self, query_params): """Given a single run, return the graph definition in json format.""" run = query_params.get('run', None) if run is None: self.respond('query parameter "run" is required', 'text/plain', 400) return try: graph = self._multiplexer.Graph(run) except ValueError: self.send_response(404) return limit_attr_size = query_params.get('limit_attr_size', None) if limit_attr_size is not None: try: limit_attr_size = int(limit_attr_size) except ValueError: self.respond( 'query parameter `limit_attr_size` must be integer', 'text/plain', 400) return large_attrs_key = query_params.get('large_attrs_key', None) try: process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) except ValueError as e: self.respond(e.message, 'text/plain', 400) return self.respond(str(graph), 'text/x-protobuf') # pbtxt
def _serve_graph(self, query_params): """Given a single run, return the graph definition in json format.""" run = query_params.get('run', None) if run is None: self.respond('query parameter "run" is required', 'text/plain', 400) return try: graph = self._multiplexer.Graph(run) except ValueError: self.send_response(404) return limit_attr_size = query_params.get('limit_attr_size', None) if limit_attr_size is not None: try: limit_attr_size = int(limit_attr_size) except ValueError: self.respond('query parameter `limit_attr_size` must be integer', 'text/plain', 400) return large_attrs_key = query_params.get('large_attrs_key', None) try: process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) except ValueError as e: self.respond(e.message, 'text/plain', 400) return self.respond(str(graph), 'text/x-protobuf') # pbtxt
def _serve_graph(self, request): """Given a single run, return the graph definition in json format.""" run = request.args.get('run', None) if run is None: return http_util.Respond( request, 'query parameter "run" is required', 'text/plain', 400) try: graph = self._multiplexer.Graph(run) except ValueError: return http_util.Respond( request, '404 Not Found', 'text/plain; charset=UTF-8', code=404) limit_attr_size = request.args.get('limit_attr_size', None) if limit_attr_size is not None: try: limit_attr_size = int(limit_attr_size) except ValueError: return http_util.Respond( request, 'query parameter `limit_attr_size` must be integer', 'text/plain', 400) large_attrs_key = request.args.get('large_attrs_key', None) try: process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) except ValueError as e: return http_util.Respond(request, e.message, 'text/plain', 400) return http_util.Respond(request, str(graph), 'text/x-protobuf') # pbtxt
def graph_impl(self, run, limit_attr_size=None, large_attrs_key=None): """Result of the form `(body, mime_type)`, or `None` if no graph exists.""" try: graph = self._multiplexer.Graph(run) except ValueError: return None # This next line might raise a ValueError if the limit parameters # are invalid (size is negative, size present but key absent, etc.). process_graph.prepare_graph_for_ui(graph, limit_attr_size, large_attrs_key) return (str(graph), 'text/x-protobuf') # pbtxt