def run(command, parser, cl_args, unknown_args):
action = cl_args["<STR_LIT:action>"]<EOL>if action == Action.SET:<EOL><INDENT>call_editor(get_inventory_file(cl_args))<EOL>update_config_files(cl_args)<EOL><DEDENT>elif action == Action.CLUSTER:<EOL><INDENT>action_type = cl_args["<STR_LIT:type>"]<EOL>if action_type == Cluster.START:<EOL><INDENT>start_cluster(cl_args)<EOL><DEDENT>elif action_type == Cluster.STOP:<EOL><INDENT>if check_sure(cl_args, "<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"):<EOL><INDENT>stop_cluster(cl_args)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" % action_type)<EOL><DEDENT><DEDENT>elif action == Action.TEMPLATE:<EOL><INDENT>update_config_files(cl_args)<EOL><DEDENT>elif action == Action.GET:<EOL><INDENT>action_type = cl_args["<STR_LIT:type>"]<EOL>if action_type == Get.SERVICE_URL:<EOL><INDENT>print(get_service_url(cl_args))<EOL><DEDENT>elif action_type == Get.HERON_UI_URL:<EOL><INDENT>print(get_heron_ui_url(cl_args))<EOL><DEDENT>elif action_type == Get.HERON_TRACKER_URL:<EOL><INDENT>print(get_heron_tracker_url(cl_args))<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" % action_type)<EOL><DEDENT><DEDENT>elif action == Action.INFO:<EOL><INDENT>print_cluster_info(cl_args)<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" % action)<EOL><DEDENT>return SimpleResult(Status.Ok)<EOL>
runs parser