diff --git a/ion/core/containerui.py b/ion/core/containerui.py index b6c9823ba..9572e63e0 100644 --- a/ion/core/containerui.py +++ b/ion/core/containerui.py @@ -90,7 +90,7 @@ def process_index(): return build_page(content) except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) # ---------------------------------------------------------------------------------------- @@ -113,7 +113,7 @@ def process_list_resource_types(): return build_page(content) except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) # ---------------------------------------------------------------------------------------- @@ -155,7 +155,7 @@ def process_list_resources(resource_type): except NotFound: return flask.redirect("/") except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def build_res_extends(restype): fragments = [ @@ -246,7 +246,7 @@ def process_view_resource(resource_id): except NotFound: return flask.redirect("/") except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def build_nested_obj(obj, prefix): fragments = [] @@ -271,24 +271,26 @@ def build_associations(resid): fragments.append("
Type | Name | ID | Predicate | |
---|---|---|---|---|
Type | Name | ID | Predicate | Command |
%s | %s | %s | %s | %s | %s | %s | %s | %s | " % ( + build_type_link(obj._get_type()), obj.name, build_link(assoc.s, "/view/%s" % assoc.s), + build_link(assoc.p, "/assoc?predicate=%s" % assoc.p), build_link("Delete", "/cmd/delete?rid=%s" % assoc._id))) fragments.append("
Type | Name | ID | Predicate | |
---|---|---|---|---|
Type | Name | ID | Predicate | Command |
%s | %s | %s | %s | %s | %s | %s | %s | %s | " % ( + build_type_link(obj._get_type()), obj.name, build_link(assoc.o, "/view/%s" % assoc.o), + build_link(assoc.p, "/assoc?predicate=%s" % assoc.p), build_link("Delete", "/cmd/delete?rid=%s" % assoc._id))) fragments.append("
", ] @@ -338,12 +362,27 @@ def process_command(cmd): return build_page(content) except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def _process_cmd_delete(resource_id): Container.instance.resource_registry.delete(resource_id) return "OK" +def _process_cmd_link_model(resource_id): + model_id = get_arg('model') + from interface.services.sa.iinstrument_management_service import InstrumentManagementServiceClient + ims_cl = InstrumentManagementServiceClient() + ims_cl.assign_instrument_model_to_instrument_device(model_id, resource_id) + redir_link = flask.redirect("/") + return "OK" + +def _process_cmd_unlink_model(resource_id): + model_id = get_arg('model') + from interface.services.sa.iinstrument_management_service import InstrumentManagementServiceClient + ims_cl = InstrumentManagementServiceClient() + ims_cl.unassign_instrument_model_from_instrument_device(model_id, resource_id) + redir_link = flask.redirect("/") + return "OK" # ---------------------------------------------------------------------------------------- @@ -375,7 +414,7 @@ def process_assoc_list(): except NotFound: return flask.redirect("/") except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) # ---------------------------------------------------------------------------------------- @@ -395,7 +434,7 @@ def process_nested(rid): return build_page(content) except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def find_subordinate_entity(self, parent_resource_id='', child_resource_type_list=None): @@ -472,7 +511,7 @@ def process_dir_path(path): except NotFound: return flask.redirect("/") except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def build_dir_path(path): if path.startswith('/'): @@ -524,7 +563,7 @@ def process_events(): except NotFound: return flask.redirect("/") except Exception, e: - return build_simple_page("Error: %s" % traceback.format_exc()) + return build_error_page(traceback.format_exc()) def build_events_table(events_list): fragments = [ @@ -558,6 +597,15 @@ def build_link(text, link): def build_standard_menu(): return "
" +def build_error_page(msg): + fragments = [ + build_standard_menu(), + "%s" % msg, + ] + content = "\n".join(fragments) + return build_page(content) + def build_simple_page(content): return build_page("
" + content + "") @@ -569,13 +617,25 @@ def build_page(content, title=""): "table,th,td {font-size:small;border: 1px solid black;border-collapse:collapse;padding-left:3px;padding-right:3px;vertical-align:top;}", "th {background-color:lightgray;}", ".preform {white-space:pre;font-family:monospace;font-size:120%;}", - "", + "", + "" "", content, "