diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..abab469 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,26 @@ +# Description +Addresses issue # +_Please include a summary of the change and which issue is fixed (if any). Please also +include relevant motivation and context. List any dependencies that are required for +this change._ + +Fixes # (issue) + +## Type of change + +- [ ] Documentation (non-breaking change that adds or improves the documentation) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Optimization (non-breaking, back-end change that speeds up the code) +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] Breaking change (whatever its nature) + +## Key checklist + +- [ ] All tests pass (eg. `python -m pytest`) +- [ ] Pre-commit hooks run successfully (eg. `pre-commit run --all-files`) + +## Further checks + +- [ ] Code is commented, particularly in hard-to-understand areas +- [ ] Tests added or an issue has been opened to tackle that in the future. + (Indicate issue here: # (issue)) \ No newline at end of file diff --git a/python_not_for_dunedaq/druncschema/controller_pb2.py b/python_not_for_dunedaq/druncschema/controller_pb2.py index 2945ded..e93d245 100644 --- a/python_not_for_dunedaq/druncschema/controller_pb2.py +++ b/python_not_for_dunedaq/druncschema/controller_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x64runcschema/controller.proto\x12\x13\x64unedaq.druncschema\x1a\"druncschema/request_response.proto\x1a\x19google/protobuf/any.proto\"\xca\x01\n\x10\x41\x64\x64ressedCommand\x12\x14\n\x0c\x63ommand_name\x18\x01 \x01(\t\x12/\n\x0c\x63ommand_data\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x88\x01\x01\x12\x0e\n\x06target\x18\x03 \x01(\t\x12\x1a\n\x12\x65xecute_along_path\x18\x04 \x01(\x08\x12\x32\n*execute_on_all_subsequent_children_in_path\x18\x05 \x01(\x08\x42\x0f\n\r_command_data\"\xc9\x01\n\nFSMCommand\x12\x14\n\x0c\x63ommand_name\x18\x01 \x01(\t\x12\x41\n\targuments\x18\x02 \x03(\x0b\x32..dunedaq.druncschema.FSMCommand.ArgumentsEntry\x12\x11\n\x04\x64\x61ta\x18\x04 \x01(\tH\x00\x88\x01\x01\x1a\x46\n\x0e\x41rgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x42\x07\n\x05_data\"\x82\x01\n\x12\x46SMCommandResponse\x12\x32\n\x04\x66lag\x18\x01 \x01(\x0e\x32$.dunedaq.druncschema.FSMResponseFlag\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\"\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\xd8\x02\n\x08\x41rgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x08presence\x18\x02 \x01(\x0e\x32&.dunedaq.druncschema.Argument.Presence\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\".dunedaq.druncschema.Argument.Type\x12\x30\n\rdefault_value\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x88\x01\x01\x12%\n\x07\x63hoices\x18\x05 \x03(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04help\x18\x06 \x01(\t\"\'\n\x08Presence\x12\r\n\tMANDATORY\x10\x00\x12\x0c\n\x08OPTIONAL\x10\x01\"0\n\x04Type\x12\x07\n\x03INT\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x42\x10\n\x0e_default_value\"\x8d\x01\n\x15\x46SMCommandDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tdata_type\x18\x02 \x03(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x13\n\x0breturn_type\x18\x04 \x01(\t\x12\x30\n\targuments\x18\x05 \x03(\x0b\x32\x1d.dunedaq.druncschema.Argument\".\n\x0b\x46SMSequence\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x63ommand_ids\x18\x02 \x03(\t\"\xc9\x01\n\x16\x46SMCommandsDescription\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x07session\x18\x03 \x01(\tH\x00\x88\x01\x01\x12<\n\x08\x63ommands\x18\x04 \x03(\x0b\x32*.dunedaq.druncschema.FSMCommandDescription\x12\x33\n\tsequences\x18\x05 \x03(\x0b\x32 .dunedaq.druncschema.FSMSequenceB\n\n\x08_session\"\x90\x01\n\x06Status\x12\r\n\x05state\x18\x02 \x01(\t\x12\x11\n\tsub_state\x18\x03 \x01(\t\x12\x10\n\x08in_error\x18\x04 \x01(\x08\x12\x10\n\x08included\x18\x05 \x01(\x08\x12\x33\n\x08run_info\x18\x06 \x01(\x0b\x32\x1c.dunedaq.druncschema.RunInfoH\x00\x88\x01\x01\x42\x0b\n\t_run_info\"\xce\x01\n\x07RunInfo\x12\x10\n\x08run_type\x18\x01 \x01(\t\x12\x14\n\x0ctrigger_rate\x18\x02 \x01(\x01\x12\x12\n\nrun_number\x18\x03 \x01(\x04\x12\x1c\n\x14\x64isable_data_storage\x18\x04 \x01(\x08\x12\x19\n\x11run_time_at_start\x18\x05 \x01(\r\x12\x1c\n\x14run_time_since_start\x18\x06 \x01(\r\x12\x17\n\x0frun_config_file\x18\x07 \x01(\t\x12\x17\n\x0frun_config_name\x18\x08 \x01(\t*\x9a\x01\n\x0f\x46SMResponseFlag\x12\x1d\n\x19\x46SM_EXECUTED_SUCCESSFULLY\x10\x00\x12\x0e\n\nFSM_FAILED\x10\x01\x12\x1a\n\x16\x46SM_INVALID_TRANSITION\x10\x02\x12\x1d\n\x19\x46SM_NOT_EXECUTED_EXCLUDED\x10\x03\x12\x1d\n\x19\x46SM_NOT_EXECUTED_IN_ERROR\x10\x04\x32\xfb\x06\n\nController\x12I\n\x08\x64\x65scribe\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12G\n\x06status\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12M\n\x0c\x64\x65scribe_fsm\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12T\n\x13\x65xecute_fsm_command\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12W\n\x16\x65xecute_expert_command\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12H\n\x07include\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12H\n\x07\x65xclude\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12Q\n\x10recompute_status\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12M\n\x0ctake_control\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12R\n\x11surrender_control\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12Q\n\x10who_is_in_charge\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x64runcschema/controller.proto\x12\x13\x64unedaq.druncschema\x1a\"druncschema/request_response.proto\x1a\x19google/protobuf/any.proto\"\xca\x01\n\x10\x41\x64\x64ressedCommand\x12\x14\n\x0c\x63ommand_name\x18\x01 \x01(\t\x12/\n\x0c\x63ommand_data\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x88\x01\x01\x12\x0e\n\x06target\x18\x03 \x01(\t\x12\x1a\n\x12\x65xecute_along_path\x18\x04 \x01(\x08\x12\x32\n*execute_on_all_subsequent_children_in_path\x18\x05 \x01(\x08\x42\x0f\n\r_command_data\"\xc9\x01\n\nFSMCommand\x12\x14\n\x0c\x63ommand_name\x18\x01 \x01(\t\x12\x41\n\targuments\x18\x02 \x03(\x0b\x32..dunedaq.druncschema.FSMCommand.ArgumentsEntry\x12\x11\n\x04\x64\x61ta\x18\x04 \x01(\tH\x00\x88\x01\x01\x1a\x46\n\x0e\x41rgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\x42\x07\n\x05_data\"\x82\x01\n\x12\x46SMCommandResponse\x12\x32\n\x04\x66lag\x18\x01 \x01(\x0e\x32$.dunedaq.druncschema.FSMResponseFlag\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\"\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\xd8\x02\n\x08\x41rgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x08presence\x18\x02 \x01(\x0e\x32&.dunedaq.druncschema.Argument.Presence\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\".dunedaq.druncschema.Argument.Type\x12\x30\n\rdefault_value\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x88\x01\x01\x12%\n\x07\x63hoices\x18\x05 \x03(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04help\x18\x06 \x01(\t\"\'\n\x08Presence\x12\r\n\tMANDATORY\x10\x00\x12\x0c\n\x08OPTIONAL\x10\x01\"0\n\x04Type\x12\x07\n\x03INT\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x42\x10\n\x0e_default_value\"\x8d\x01\n\x15\x46SMCommandDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tdata_type\x18\x02 \x03(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x13\n\x0breturn_type\x18\x04 \x01(\t\x12\x30\n\targuments\x18\x05 \x03(\x0b\x32\x1d.dunedaq.druncschema.Argument\".\n\x0b\x46SMSequence\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x63ommand_ids\x18\x02 \x03(\t\"\xc9\x01\n\x16\x46SMCommandsDescription\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x07session\x18\x03 \x01(\tH\x00\x88\x01\x01\x12<\n\x08\x63ommands\x18\x04 \x03(\x0b\x32*.dunedaq.druncschema.FSMCommandDescription\x12\x33\n\tsequences\x18\x05 \x03(\x0b\x32 .dunedaq.druncschema.FSMSequenceB\n\n\x08_session\"\x90\x01\n\x06Status\x12\r\n\x05state\x18\x02 \x01(\t\x12\x11\n\tsub_state\x18\x03 \x01(\t\x12\x10\n\x08in_error\x18\x04 \x01(\x08\x12\x10\n\x08included\x18\x05 \x01(\x08\x12\x33\n\x08run_info\x18\x06 \x01(\x0b\x32\x1c.dunedaq.druncschema.RunInfoH\x00\x88\x01\x01\x42\x0b\n\t_run_info\"\xce\x01\n\x07RunInfo\x12\x10\n\x08run_type\x18\x01 \x01(\t\x12\x14\n\x0ctrigger_rate\x18\x02 \x01(\x01\x12\x12\n\nrun_number\x18\x03 \x01(\x04\x12\x1c\n\x14\x64isable_data_storage\x18\x04 \x01(\x08\x12\x19\n\x11run_time_at_start\x18\x05 \x01(\r\x12\x1c\n\x14run_time_since_start\x18\x06 \x01(\r\x12\x17\n\x0frun_config_file\x18\x07 \x01(\t\x12\x17\n\x0frun_config_name\x18\x08 \x01(\t*\x9a\x01\n\x0f\x46SMResponseFlag\x12\x1d\n\x19\x46SM_EXECUTED_SUCCESSFULLY\x10\x00\x12\x0e\n\nFSM_FAILED\x10\x01\x12\x1a\n\x16\x46SM_INVALID_TRANSITION\x10\x02\x12\x1d\n\x19\x46SM_NOT_EXECUTED_EXCLUDED\x10\x03\x12\x1d\n\x19\x46SM_NOT_EXECUTED_IN_ERROR\x10\x04\x32\xc6\x07\n\nController\x12I\n\x08\x64\x65scribe\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12G\n\x06status\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12M\n\x0c\x64\x65scribe_fsm\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12T\n\x13\x65xecute_fsm_command\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12W\n\x16\x65xecute_expert_command\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12H\n\x07include\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12H\n\x07\x65xclude\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12Q\n\x10recompute_status\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12M\n\x0ctake_control\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12R\n\x11surrender_control\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12Q\n\x10who_is_in_charge\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x12I\n\x08to_error\x12\x1c.dunedaq.druncschema.Request\x1a\x1d.dunedaq.druncschema.Response\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -62,5 +62,5 @@ _globals['_RUNINFO']._serialized_start=1549 _globals['_RUNINFO']._serialized_end=1755 _globals['_CONTROLLER']._serialized_start=1915 - _globals['_CONTROLLER']._serialized_end=2806 + _globals['_CONTROLLER']._serialized_end=2881 # @@protoc_insertion_point(module_scope) diff --git a/python_not_for_dunedaq/druncschema/controller_pb2_grpc.py b/python_not_for_dunedaq/druncschema/controller_pb2_grpc.py index 3745775..d9f210a 100644 --- a/python_not_for_dunedaq/druncschema/controller_pb2_grpc.py +++ b/python_not_for_dunedaq/druncschema/controller_pb2_grpc.py @@ -89,6 +89,11 @@ def __init__(self, channel): request_serializer=druncschema_dot_request__response__pb2.Request.SerializeToString, response_deserializer=druncschema_dot_request__response__pb2.Response.FromString, _registered_method=True) + self.to_error = channel.unary_unary( + '/dunedaq.druncschema.Controller/to_error', + request_serializer=druncschema_dot_request__response__pb2.Request.SerializeToString, + response_deserializer=druncschema_dot_request__response__pb2.Response.FromString, + _registered_method=True) class ControllerServicer(object): @@ -160,6 +165,12 @@ def who_is_in_charge(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def to_error(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_ControllerServicer_to_server(servicer, server): rpc_method_handlers = { @@ -218,6 +229,11 @@ def add_ControllerServicer_to_server(servicer, server): request_deserializer=druncschema_dot_request__response__pb2.Request.FromString, response_serializer=druncschema_dot_request__response__pb2.Response.SerializeToString, ), + 'to_error': grpc.unary_unary_rpc_method_handler( + servicer.to_error, + request_deserializer=druncschema_dot_request__response__pb2.Request.FromString, + response_serializer=druncschema_dot_request__response__pb2.Response.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'dunedaq.druncschema.Controller', rpc_method_handlers) @@ -525,3 +541,30 @@ def who_is_in_charge(request, timeout, metadata, _registered_method=True) + + @staticmethod + def to_error(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dunedaq.druncschema.Controller/to_error', + druncschema_dot_request__response__pb2.Request.SerializeToString, + druncschema_dot_request__response__pb2.Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/schema/druncschema/controller.proto b/schema/druncschema/controller.proto index 042f157..942d75e 100644 --- a/schema/druncschema/controller.proto +++ b/schema/druncschema/controller.proto @@ -19,6 +19,8 @@ service Controller { rpc take_control (Request) returns (Response) {} rpc surrender_control (Request) returns (Response) {} rpc who_is_in_charge (Request) returns (Response) {} + + rpc to_error (Request) returns (Response) {} } message AddressedCommand {