Skip to content

ProcMan: dedicated gRPC message types#501

Merged
PawelPlesniak merged 32 commits intodevelopfrom
jamesturner246/simpler_grpc_pm
Aug 5, 2025
Merged

ProcMan: dedicated gRPC message types#501
PawelPlesniak merged 32 commits intodevelopfrom
jamesturner246/simpler_grpc_pm

Conversation

@jamesturner246
Copy link
Contributor

Resolves #495.

This is the second in a series of changes replacing the generic Any-packed messages with dedicated ones. In this change, the ProcessManager is addressed. Took a bit longer than expected -- I wanted to be sure that I wasn't accidentally leaving something out. Might need a quick chat to step through the changes.

I am working on separating the 'drivers' out into separate classes, since caveats in each driver type make subclassing more messier than not. Even the gRPC stub classes are not covariant.

NB: As for which messages, I just used existing ones for now, and left deciding on a proper set of messages for later. Token can be omitted from these messages as we can pass this information in via metadata, as intended.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes generic Any-packed messages from the ProcessManager gRPC interface in favor of dedicated message types. The change simplifies the gRPC communication by using strongly-typed messages directly instead of wrapping them in generic Any containers.

Key changes:

  • Updated ProcessManager gRPC service methods to use dedicated message types instead of Any-packed payloads
  • Refactored driver classes to directly handle typed gRPC requests and responses
  • Modified return types to consistently use ProcessInstanceList for batch operations

Reviewed Changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/drunc/utils/shell_utils.py Removed aio_channel support and simplified response handling
src/drunc/utils/grpc_utils.py Added handle_grpc_error and copy_token utility functions
src/drunc/unified_shell/shell.py Updated to handle typed responses without data wrapping
src/drunc/unified_shell/commands.py Modified to access values directly from ProcessInstanceList
src/drunc/session_manager/session_manager_driver.py Refactored to use dedicated message types and direct gRPC calls
src/drunc/session_manager/session_manager.py Removed session field from Description response
src/drunc/process_manager/ssh_process_manager.py Updated to return properly structured ProcessInstanceList responses
src/drunc/process_manager/process_manager_driver.py Complete refactoring to use typed gRPC requests/responses
src/drunc/process_manager/process_manager.py Removed Any message unpacking and simplified service methods
src/drunc/process_manager/k8s_process_manager.py Updated to return ProcessInstanceList consistently
src/drunc/process_manager/interface/shell.py Modified to access Description fields directly
src/drunc/process_manager/interface/context.py Disabled aio_channel usage
src/drunc/process_manager/interface/commands.py Updated to handle ProcessInstanceList responses
src/drunc/controller/controller_driver.py Simplified constructor and removed create_stub method

@wanyunSu
Copy link
Contributor

Some PM commands do not work in unified shell, ie:

drunc-unified-shell > ps
TypeError: ProcessManagerDriver.ps() got an unexpected keyword argument 'query'

I am using ssh-standalone and local-1x1-config

@jamesturner246
Copy link
Contributor Author

Some PM commands do not work in unified shell, ie:

drunc-unified-shell > ps
TypeError: ProcessManagerDriver.ps() got an unexpected keyword argument 'query'

I am using ssh-standalone and local-1x1-config

Thanks @wanyunSu. Good spot. Should be fixed now.

@wanyunSu
Copy link
Contributor

Thanks, PM commands work now, but sequence commands do not work:

[2025/07/31 15:01:50] INFO shell_utils.py:288 utils.ShellContext: Current FSM status is initial. Available transitions are conf. Available sequence commands are start-run.
drunc-unified-shell > start-run --run-number 123
[2025/07/31 15:02:02] INFO shell_utils.py:13 unified_shell.shell_utils: Running sequence:
['boot', 'conf', 'start', 'enable-triggers']
AttributeError: data

@jamesturner246
Copy link
Contributor Author

jamesturner246 commented Jul 31, 2025

Cheers again. A sneaky one. Fixed.

Might be worth us having a chat to discuss your testing process. Seems mine is a bit lacking!

ED: Oh, and the accompanying druncschema change: DUNE-DAQ/druncschema#59

@wanyunSu
Copy link
Contributor

LGTM.

My testing process is simply to execute the Process manager commands and FSM commands, using both the local and ehn1 configurations, to ensure that all commands behave as expected.
Then one can run the integration test

@PawelPlesniak
Copy link
Collaborator

@wanyunSu @jamesturner246 has the testing finished succesfully?

@jamesturner246
Copy link
Contributor Author

All good my end.

@wanyunSu
Copy link
Contributor

wanyunSu commented Aug 5, 2025

LGTM

@PawelPlesniak
Copy link
Collaborator

PawelPlesniak commented Aug 5, 2025

I ran the MSQT which passed, but when I run the unified shell manually there are some issues. Using the following commands I see issues:

drunc-unified-shell ssh-standalone config/daqsystemtest/example-configs.data.xml local-1x1-config PawelTest
... runs fine
ps 
... runs fine
restart hsi-fake-01
... When running status after this, the application is in error
recompute-status
Command 'recompute_status' failed on 'root-controller' (response flag 'UNHANDLED_EXCEPTION_THROWN') AttributeError: 'StatefulNode' object has no attribute 'stateful_node'
kill --name hsi-fake-01
... Works fine
status
The controller now no longer exists or is no longer accessible

Before this gets merged, I think it would be useful to define additional tests - the basic tests do not cover all the bases
Full stack for reference:

$ drunc-unified-shell ssh-standalone config/daqsystemtest/example-configs.data.xml local-1x1-config PawelTest
[2025/08/05 11:46:04] INFO       shell.py:126                   unified_shell:                                Setting up to use process_manager with configuration ssh-standalone and configuration id "local-1x1-config" from oksconflibs:config/daqsystemtest/example-configs.data.xml                                      
[2025/08/05 11:46:04] INFO       process_manager.py:90          process_manager:                              process_manager communicating through address 10.73.136.38:36639                                                                                                                                                
[2025/08/05 11:46:05] INFO       shell.py:343                   unified_shell:                                unified_shell ready with process_manager and controller commands                                                                                                                                                
drunc-unified-shell > boot
[2025/08/05 11:46:05] INFO       process_manager_driver.py:171  utils.GRPCDriver:                             Booting session PawelTest                                                                                                                                                                                       
[2025/08/05 11:46:06] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'local-connection-server' from session 'PawelTest' with UUID 849842c5-c904-4617-9572-23744f501cdc                                                                                                        
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'root-controller' from session 'PawelTest' with UUID 0f693b8f-d2d2-4d2d-aaff-966414ed4b1a                                                                                                                
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'ru-controller' from session 'PawelTest' with UUID 0874dd4b-1554-4589-a819-ae96e999b22b                                                                                                                  
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'ru-01' from session 'PawelTest' with UUID 6f60b10a-6eeb-44e2-8dec-6d99d39b6af5                                                                                                                          
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'df-controller' from session 'PawelTest' with UUID 4e2d47b1-f55c-4474-8edc-b5f368594303                                                                                                                  
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'tp-stream-writer' from session 'PawelTest' with UUID fdf146c6-6f4f-4550-9669-a68bebef9113                                                                                                               
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'dfo-01' from session 'PawelTest' with UUID 6aa5a596-b3b9-4633-822d-73c321646006                                                                                                                         
[2025/08/05 11:46:07] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'df-01' from session 'PawelTest' with UUID a5a2a2cd-f3c5-4db7-9d8d-447291d6c65e                                                                                                                          
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'trg-controller' from session 'PawelTest' with UUID 5c4f28e6-4304-4493-b338-d5ba85353952                                                                                                                 
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'tc-maker-1' from session 'PawelTest' with UUID e69af117-1002-4046-a61d-226fa5edcfeb                                                                                                                     
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'mlt' from session 'PawelTest' with UUID e0bf9414-6e72-4b7c-a9a9-82cfeec25d52                                                                                                                            
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'hsi-fake-controller' from session 'PawelTest' with UUID 41fea666-ff3b-42e8-aaa6-bbfa13d0fd17                                                                                                            
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'hsi-fake-01' from session 'PawelTest' with UUID 97fe2429-24b3-422c-9f82-fa256a59e306                                                                                                                    
[2025/08/05 11:46:08] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'hsi-fake-to-tc-app' from session 'PawelTest' with UUID 7f4b95b0-0c49-476d-a420-6ba2743b710e                                                                                                             
  Looking for root-controller on the connectivity service... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0:00:00 0:00:00
⠋ Trying to talk to the root controller... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -:--:-- 0:00:00
                                            PawelTest status                                            
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                   ┃ Info ┃ State   ┃ Substate ┃ In error ┃ Included ┃ Endpoint                  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ root-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:46577 │
│   df-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:39163 │
│     df-01              │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:42939 │
│     dfo-01             │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:36803 │
│     tp-stream-writer   │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:54193 │
│   hsi-fake-controller  │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:40771 │
│     hsi-fake-01        │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:52827 │
│     hsi-fake-to-tc-app │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:57573 │
│   ru-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:35365 │
│     ru-01              │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:35065 │
│   trg-controller       │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:45041 │
│     mlt                │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:38159 │
│     tc-maker-1         │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:37265 │
└────────────────────────┴──────┴─────────┴──────────┴──────────┴──────────┴───────────────────────────┘
Waiting on tree initialisation... ━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  11% 0:01:03
[2025/08/05 11:46:17] INFO       commands.py:71                 unified_shell.boot:                           Booted successfully                                                                                                                                                                                             
drunc-unified-shell > ps
                                                    Processes running                                                    
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━┓
┃ session   ┃ friendly name           ┃ user     ┃ host      ┃ uuid                                 ┃ alive ┃ exit-code ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━┩
│ PawelTest │ root-controller         │ pplesnia │ localhost │ 0f693b8f-d2d2-4d2d-aaff-966414ed4b1a │ True  │ 0         │
│ PawelTest │   ru-controller         │ pplesnia │ localhost │ 0874dd4b-1554-4589-a819-ae96e999b22b │ True  │ 0         │
│ PawelTest │     ru-01               │ pplesnia │ localhost │ 6f60b10a-6eeb-44e2-8dec-6d99d39b6af5 │ True  │ 0         │
│ PawelTest │   df-controller         │ pplesnia │ localhost │ 4e2d47b1-f55c-4474-8edc-b5f368594303 │ True  │ 0         │
│ PawelTest │     tp-stream-writer    │ pplesnia │ localhost │ fdf146c6-6f4f-4550-9669-a68bebef9113 │ True  │ 0         │
│ PawelTest │     dfo-01              │ pplesnia │ localhost │ 6aa5a596-b3b9-4633-822d-73c321646006 │ True  │ 0         │
│ PawelTest │     df-01               │ pplesnia │ localhost │ a5a2a2cd-f3c5-4db7-9d8d-447291d6c65e │ True  │ 0         │
│ PawelTest │   trg-controller        │ pplesnia │ localhost │ 5c4f28e6-4304-4493-b338-d5ba85353952 │ True  │ 0         │
│ PawelTest │     tc-maker-1          │ pplesnia │ localhost │ e69af117-1002-4046-a61d-226fa5edcfeb │ True  │ 0         │
│ PawelTest │     mlt                 │ pplesnia │ localhost │ e0bf9414-6e72-4b7c-a9a9-82cfeec25d52 │ True  │ 0         │
│ PawelTest │   hsi-fake-controller   │ pplesnia │ localhost │ 41fea666-ff3b-42e8-aaa6-bbfa13d0fd17 │ True  │ 0         │
│ PawelTest │     hsi-fake-01         │ pplesnia │ localhost │ 97fe2429-24b3-422c-9f82-fa256a59e306 │ True  │ 0         │
│ PawelTest │     hsi-fake-to-tc-app  │ pplesnia │ localhost │ 7f4b95b0-0c49-476d-a420-6ba2743b710e │ True  │ 0         │
│ PawelTest │ local-connection-server │ pplesnia │ localhost │ 849842c5-c904-4617-9572-23744f501cdc │ True  │ 0         │
└───────────┴─────────────────────────┴──────────┴───────────┴──────────────────────────────────────┴───────┴───────────┘
drunc-unified-shell > restart hsi-fake-01
Usage: PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME restart 
           [OPTIONS]
Try 'PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME restart --help' for help.

Error: Got unexpected extra argument (hsi-fake-01)
drunc-unified-shell > restart --name hsi-fake-01
[2025/08/05 11:46:29] INFO       ssh_process_manager.py:442     process_manager.SSH_process_manager:          process_manager restarting ['hsi-fake-01'] in session pplesnia                                                                                                                                                  
[2025/08/05 11:46:29] INFO       ssh_process_manager.py:339     process_manager.SSH_process_manager:          Booted 'hsi-fake-01' from session 'PawelTest' with UUID 97fe2429-24b3-422c-9f82-fa256a59e306                                                                                                                    
drunc-unified-shell > [2025/08/05 11:46:29] INFO       ssh_process_manager.py:228     process_manager.SSH_process_manager:          Process 'hsi-fake-01' (session: 'PawelTest', user: 'pplesnia') process exited with exit code 255                                                                                                                
logs --name hsi-fake-01
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 97fe2429-24b3-422c-9f82-fa256a59e306 logs ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
SSHPM: Starting process 173831 on host np04-srv-019 as user pplesnia
2025-Aug-05 11:46:29,696 LOG [dunedaq::appfwk::ConfigurationManager::ConfigurationManager(std::string&, std::string&, std::string&) at /tmp/root/spack-stage/spack-stage-appfwk-NB_DEV_250805_A9-5rfufomkqr5qxj2bf2ziqt7wy4tftzjw/spack-src/src/ConfigurationManager.cpp:35] configSpec 
<oksconflibs:config/daqsystemtest/example-configs.data.xml> session name local-1x1-config application name hsi-fake-01
2025-Aug-05 11:46:29,697 LOG [std::shared_ptr<dunedaq::opmonlib::OpMonFacility> dunedaq::opmonlib::makeOpMonFacility(const std::string&, OptionalOrigin) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/OpMonFacility.cpp:16] FACILITY = file://./info.json
2025-Aug-05 11:46:29,728 LOG [restCommandFacility::restCommandFacility(std::string, std::string, const dunedaq::confmodel::ConnectivityService*) at /tmp/root/spack-stage/spack-stage-restcmd-NB_DEV_250805_A9-qdd7xmb5o2pzua6hqs2qxvikyoiwwlyf/spack-src/plugins/restCommandFacility.cpp:96] Endpoint open on: localhost:0 
host:rest://localhost port:0
2025-Aug-05 11:46:29,732 LOG [void dunedaq::appfwk::ConfigurationManager::initialize() at /tmp/root/spack-stage/spack-stage-appfwk-NB_DEV_250805_A9-5rfufomkqr5qxj2bf2ziqt7wy4tftzjw/spack-src/src/ConfigurationManager.cpp:104] initialising HSIDataHandlerModule module DLH-1
2025-Aug-05 11:46:29,732 LOG [void dunedaq::appfwk::ConfigurationManager::initialize() at /tmp/root/spack-stage/spack-stage-appfwk-NB_DEV_250805_A9-5rfufomkqr5qxj2bf2ziqt7wy4tftzjw/spack-src/src/ConfigurationManager.cpp:116] Adding queue hsi_link_1
2025-Aug-05 11:46:29,733 LOG [void dunedaq::appfwk::ConfigurationManager::initialize() at /tmp/root/spack-stage/spack-stage-appfwk-NB_DEV_250805_A9-5rfufomkqr5qxj2bf2ziqt7wy4tftzjw/spack-src/src/ConfigurationManager.cpp:104] initialising FakeHSIEventGeneratorModule module FakeHSI-1
2025-Aug-05 11:46:29,733 LOG [dunedaq::appfwk::Application::Application(std::string, std::string, std::string, std::string, std::string) at /tmp/root/spack-stage/spack-stage-appfwk-NB_DEV_250805_A9-5rfufomkqr5qxj2bf2ziqt7wy4tftzjw/spack-src/src/Application.cpp:50] 
confimpl=<oksconflibs:config/daqsystemtest/example-configs.data.xml>
2025-Aug-05 11:46:29,733 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node queues registered to PawelTest.hsi-fake-01
2025-Aug-05 11:46:29,734 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node senders registered to PawelTest.hsi-fake-01
2025-Aug-05 11:46:29,734 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node receivers registered to PawelTest.hsi-fake-01
2025-Aug-05 11:46:29,795 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node DLH-1 registered to PawelTest.hsi-fake-01
2025-Aug-05 11:46:29,798 LOG [std::shared_ptr<dunedaq::iomanager::ReceiverConcept<Datatype> > dunedaq::iomanager::IOManager::get_receiver(dunedaq::iomanager::ConnectionId) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/detail/IOManager.hxx:70] Creating QueueReceiverModel for uid hsi_link_1, datatype HSIFrame
2025-Aug-05 11:46:29,798 LOG [dunedaq::iomanager::QueueReceiverModel<Datatype>::QueueReceiverModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/queue/detail/QueueReceiverModel.hxx:22] QueueReceiverModel created with DT! Addr: 0x2132220
2025-Aug-05 11:46:29,798 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node hsi_link_1 registered to PawelTest.hsi-fake-01.queues
2025-Aug-05 11:46:29,798 LOG [dunedaq::iomanager::QueueReceiverModel<Datatype>::QueueReceiverModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/queue/detail/QueueReceiverModel.hxx:27] QueueReceiverModel m_queue=0x2138280
2025-Aug-05 11:46:29,799 LOG [std::shared_ptr<dunedaq::iomanager::ReceiverConcept<Datatype> > dunedaq::iomanager::IOManager::get_receiver(dunedaq::iomanager::ConnectionId) [with Datatype = dunedaq::dfmessages::DataRequest] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/detail/IOManager.hxx:73] Creating NetworkReceiverModel for uid data_requests_for_hsi-fake-01, datatype 
DataRequest in session PawelTest
2025-Aug-05 11:46:29,799 LOG [dunedaq::iomanager::NetworkReceiverModel<Datatype>::NetworkReceiverModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::dfmessages::DataRequest] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/network/detail/NetworkReceiverModel.hxx:24] NetworkReceiverModel created with DT! ID: 
data_requests_for_hsi-fake-01 Addr: 0x1e11dc0
2025-Aug-05 11:46:29,816 LOG [virtual std::string dunedaq::ipm::ZmqReceiver::connect_for_receives(const nlohmann::json_abi_v3_11_2::json&) at /tmp/root/spack-stage/spack-stage-ipm-NB_DEV_250805_A9-yilcaamyaax7rlktnbp6mamysoasuobo/spack-src/plugins/ZmqReceiver.cpp:88] Connection String is tcp://10.73.136.38:34009
2025-Aug-05 11:46:29,816 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node data_requests_for_hsi-fake-01 registered to 
PawelTest.hsi-fake-01.receivers
2025-Aug-05 11:46:29,820 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node hsi-fake-latencybuffer registered to 
2025-Aug-05 11:46:29,820 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node hsi-fake-processor registered to 
2025-Aug-05 11:46:29,820 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node hsi-fake-requesthandler registered to 
2025-Aug-05 11:46:29,820 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node data_handler registered to PawelTest.hsi-fake-01.DLH-1
2025-Aug-05 11:46:29,830 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node FakeHSI-1 registered to PawelTest.hsi-fake-01
2025-Aug-05 11:46:29,831 LOG [std::shared_ptr<dunedaq::iomanager::SenderConcept<Datatype> > dunedaq::iomanager::IOManager::get_sender(dunedaq::iomanager::ConnectionId) [with Datatype = dunedaq::dfmessages::HSIEvent] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/detail/IOManager.hxx:113] Creating NetworkSenderModel for uid hsi_event, datatype HSIEvent in session 
PawelTest
2025-Aug-05 11:46:29,831 LOG [dunedaq::iomanager::NetworkSenderModel<Datatype>::NetworkSenderModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::dfmessages::HSIEvent] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/network/detail/NetworkSenderModel.hxx:22] NetworkSenderModel created with DT! Addr: 0x2131280, uid=hsi_event, 
data_type=HSIEvent
2025-Aug-05 11:46:29,845 LOG [virtual std::string dunedaq::ipm::ZmqPublisher::connect_for_sends(const nlohmann::json_abi_v3_11_2::json&) at /tmp/root/spack-stage/spack-stage-ipm-NB_DEV_250805_A9-yilcaamyaax7rlktnbp6mamysoasuobo/spack-src/plugins/ZmqPublisher.cpp:78] Connection String is tcp://10.73.136.38:39869
2025-Aug-05 11:46:29,845 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node hsi_event registered to PawelTest.hsi-fake-01.senders
2025-Aug-05 11:46:29,847 LOG [void dunedaq::iomanager::NetworkSenderModel<Datatype>::get_sender(const dunedaq::iomanager::Sender::timeout_t&) [with Datatype = dunedaq::dfmessages::HSIEvent; dunedaq::iomanager::Sender::timeout_t = std::chrono::duration<long int, std::ratio<1, 1000> >] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/network/detail/NetworkSenderModel.hxx:88] Setting topic to HSIEvent
2025-Aug-05 11:46:29,847 LOG [std::shared_ptr<dunedaq::iomanager::SenderConcept<Datatype> > dunedaq::iomanager::IOManager::get_sender(dunedaq::iomanager::ConnectionId) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/detail/IOManager.hxx:110] Creating QueueSenderModel for uid hsi_link_1, datatype HSIFrame
2025-Aug-05 11:46:29,847 LOG [dunedaq::iomanager::QueueSenderModel<Datatype>::QueueSenderModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/queue/detail/QueueSenderModel.hxx:68] QueueSenderModel created with DT! Addr: 0x21950b0
2025-Aug-05 11:46:29,847 LOG [dunedaq::iomanager::QueueSenderModel<Datatype>::QueueSenderModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::hsilibs::HSI_FRAME_STRUCT] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/queue/detail/QueueSenderModel.hxx:70] QueueSenderModel m_queue=0x2138280
2025-Aug-05 11:46:29,847 LOG [std::shared_ptr<dunedaq::iomanager::ReceiverConcept<Datatype> > dunedaq::iomanager::IOManager::get_receiver(dunedaq::iomanager::ConnectionId) [with Datatype = dunedaq::dfmessages::TimeSync] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/detail/IOManager.hxx:73] Creating NetworkReceiverModel for uid time_sync_.*, datatype TimeSync in session 
PawelTest
2025-Aug-05 11:46:29,847 LOG [dunedaq::iomanager::NetworkReceiverModel<Datatype>::NetworkReceiverModel(const dunedaq::iomanager::ConnectionId&) [with Datatype = dunedaq::dfmessages::TimeSync] at 
/cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_250805_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-13.2.0/iomanager-NB_DEV_250805_A9-ovpjz7mp7futdytdbk6vwjfcspljef27/include/iomanager/network/detail/NetworkReceiverModel.hxx:24] NetworkReceiverModel created with DT! ID: time_sync_.* Addr: 
0x1e11830
2025-Aug-05 11:46:29,856 LOG [void dunedaq::opmonlib::MonitorableObject::register_node(ElementId, NewNodePtr) at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/MonitorableObject.cpp:54] Node time_sync_.* registered to PawelTest.hsi-fake-01.receivers
2025-Aug-05 11:46:29,856 LOG [void dunedaq::opmonlib::OpMonManager::start_monitoring() at /tmp/root/spack-stage/spack-stage-opmonlib-NB_DEV_250805_A9-cjupj6oz5fpwf5ka6mq4mmjdyvfrqvd4/spack-src/src/OpMonManager.cpp:30] Starting a new monitoring thread with interval 10 seconds, at level 4294967295
2025-Aug-05 11:46:29,859 LOG [void dunedaq::restcmd::RestEndpoint::start() at /tmp/root/spack-stage/spack-stage-restcmd-NB_DEV_250805_A9-qdd7xmb5o2pzua6hqs2qxvikyoiwwlyf/spack-src/src/RestEndpoint.cpp:40] REST server started on port 51501
2025-Aug-05 11:46:29,859 LOG [virtual void restCommandFacility::run(std::atomic<bool>&) at /tmp/root/spack-stage/spack-stage-restcmd-NB_DEV_250805_A9-qdd7xmb5o2pzua6hqs2qxvikyoiwwlyf/spack-src/plugins/restCommandFacility.cpp:125] Registering the control endpoint (hsi-fake-01_control) on the connectivity service: 
10.73.136.38:51501
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── End ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
drunc-unified-shell > ps
                                                    Processes running                                                    
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━┓
┃ session   ┃ friendly name           ┃ user     ┃ host      ┃ uuid                                 ┃ alive ┃ exit-code ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━┩
│ PawelTest │ root-controller         │ pplesnia │ localhost │ 0f693b8f-d2d2-4d2d-aaff-966414ed4b1a │ True  │ 0         │
│ PawelTest │   ru-controller         │ pplesnia │ localhost │ 0874dd4b-1554-4589-a819-ae96e999b22b │ True  │ 0         │
│ PawelTest │     ru-01               │ pplesnia │ localhost │ 6f60b10a-6eeb-44e2-8dec-6d99d39b6af5 │ True  │ 0         │
│ PawelTest │   df-controller         │ pplesnia │ localhost │ 4e2d47b1-f55c-4474-8edc-b5f368594303 │ True  │ 0         │
│ PawelTest │     tp-stream-writer    │ pplesnia │ localhost │ fdf146c6-6f4f-4550-9669-a68bebef9113 │ True  │ 0         │
│ PawelTest │     dfo-01              │ pplesnia │ localhost │ 6aa5a596-b3b9-4633-822d-73c321646006 │ True  │ 0         │
│ PawelTest │     df-01               │ pplesnia │ localhost │ a5a2a2cd-f3c5-4db7-9d8d-447291d6c65e │ True  │ 0         │
│ PawelTest │   trg-controller        │ pplesnia │ localhost │ 5c4f28e6-4304-4493-b338-d5ba85353952 │ True  │ 0         │
│ PawelTest │     tc-maker-1          │ pplesnia │ localhost │ e69af117-1002-4046-a61d-226fa5edcfeb │ True  │ 0         │
│ PawelTest │     mlt                 │ pplesnia │ localhost │ e0bf9414-6e72-4b7c-a9a9-82cfeec25d52 │ True  │ 0         │
│ PawelTest │   hsi-fake-controller   │ pplesnia │ localhost │ 41fea666-ff3b-42e8-aaa6-bbfa13d0fd17 │ True  │ 0         │
│ PawelTest │     hsi-fake-01         │ pplesnia │ localhost │ 97fe2429-24b3-422c-9f82-fa256a59e306 │ True  │ 0         │
│ PawelTest │     hsi-fake-to-tc-app  │ pplesnia │ localhost │ 7f4b95b0-0c49-476d-a420-6ba2743b710e │ True  │ 0         │
│ PawelTest │ local-connection-server │ pplesnia │ localhost │ 849842c5-c904-4617-9572-23744f501cdc │ True  │ 0         │
└───────────┴─────────────────────────┴──────────┴───────────┴──────────────────────────────────────┴───────┴───────────┘
drunc-unified-shell > status
                                            PawelTest status                                            
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                   ┃ Info ┃ State   ┃ Substate ┃ In error ┃ Included ┃ Endpoint                  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ root-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:46577 │
│   df-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:39163 │
│     df-01              │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:42939 │
│     dfo-01             │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:36803 │
│     tp-stream-writer   │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:54193 │
│   hsi-fake-controller  │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:40771 │
│     hsi-fake-01        │      │ initial │ idle     │ Yes      │ Yes      │ rest://10.73.136.38:52827 │
│     hsi-fake-to-tc-app │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:57573 │
│   ru-controller        │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:35365 │
│     ru-01              │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:35065 │
│   trg-controller       │      │ initial │ initial  │ No       │ Yes      │ grpc://10.73.136.38:45041 │
│     mlt                │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:38159 │
│     tc-maker-1         │      │ initial │ idle     │ No       │ Yes      │ rest://10.73.136.38:37265 │
└────────────────────────┴──────┴─────────┴──────────┴──────────┴──────────┴───────────────────────────┘
[2025/08/05 11:47:03] INFO       shell_utils.py:288             utils.ShellContext:                           Current FSM status is initial. Available transitions are conf. Available sequence commands are start-run.                                                                                                       
drunc-unified-shell > recompute-status
[2025/08/05 11:47:11] ERROR      shell_utils.py:161             utils.GRPCDriver:                             Command 'recompute_status' failed on 'root-controller' (response flag 'UNHANDLED_EXCEPTION_THROWN') AttributeError: 'StatefulNode' object has no attribute 'stateful_node'                                      
ValueError: Protocol message Stacktrace has no "run_info" field.
drunc-unified-shell > recompute-status -h
Usage: PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME recompute-status 
           [OPTIONS]
Try 'PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME recompute-status --help' for help.

Error: No such option: -h
drunc-unified-shell > recompute-status hsi-fake-01
Usage: PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME recompute-status 
           [OPTIONS]
Try 'PROCESS_MANAGER CONFIGURATION_FILE CONFIGURATION_ID SESSION_NAME recompute-status --help' for help.

Error: Got unexpected extra argument (hsi-fake-01)
drunc-unified-shell > recompute-status 
[2025/08/05 11:47:27] ERROR      shell_utils.py:161             utils.GRPCDriver:                             Command 'recompute_status' failed on 'root-controller' (response flag 'UNHANDLED_EXCEPTION_THROWN') AttributeError: 'StatefulNode' object has no attribute 'stateful_node'                                      
ValueError: Protocol message Stacktrace has no "run_info" field.
drunc-unified-shell > kill --name hsi-fake-01
[2025/08/05 11:47:49] INFO       ssh_process_manager.py:472     process_manager.SSH_process_manager:          process_manager killing ['hsi-fake-01'] in session pplesnia                                                                                                                                                     
[2025/08/05 11:47:49] INFO       ssh_process_manager.py:228     process_manager.SSH_process_manager:          Process 'hsi-fake-01' (session: 'PawelTest', user: 'pplesnia') process exited with exit code 255                                                                                                                
[2025/08/05 11:47:49] INFO       ssh_process_manager.py:88      process_manager.SSH_process_manager:          Killed 'hsi-fake-01' with UUID 97fe2429-24b3-422c-9f82-fa256a59e306                                                                                                                                             
                                                 Killed process                                                  
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━┓
┃ session   ┃ friendly name   ┃ user     ┃ host      ┃ uuid                                 ┃ alive ┃ exit-code ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━┩
│ PawelTest │     hsi-fake-01 │ pplesnia │ localhost │ 97fe2429-24b3-422c-9f82-fa256a59e306 │ False │ 255       │
└───────────┴─────────────────┴──────────┴───────────┴──────────────────────────────────────┴───────┴───────────┘
[2025/08/05 11:47:49] INFO       shell_utils.py:256             utils.ShellContext:                           You will not be able to issue command to root-controller.PawelTest anymore.                                                                                                                                     
[2025/08/05 11:47:49] INFO       shell_utils.py:260             utils.ShellContext:                           Driver 'controller' has been deleted.                                                                                                                                                                           
drunc-unified-shell > ps
                                                    Processes running                                                    
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━┓
┃ session   ┃ friendly name           ┃ user     ┃ host      ┃ uuid                                 ┃ alive ┃ exit-code ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━┩
│ PawelTest │ root-controller         │ pplesnia │ localhost │ 0f693b8f-d2d2-4d2d-aaff-966414ed4b1a │ True  │ 0         │
│ PawelTest │   ru-controller         │ pplesnia │ localhost │ 0874dd4b-1554-4589-a819-ae96e999b22b │ True  │ 0         │
│ PawelTest │     ru-01               │ pplesnia │ localhost │ 6f60b10a-6eeb-44e2-8dec-6d99d39b6af5 │ True  │ 0         │
│ PawelTest │   df-controller         │ pplesnia │ localhost │ 4e2d47b1-f55c-4474-8edc-b5f368594303 │ True  │ 0         │
│ PawelTest │     tp-stream-writer    │ pplesnia │ localhost │ fdf146c6-6f4f-4550-9669-a68bebef9113 │ True  │ 0         │
│ PawelTest │     dfo-01              │ pplesnia │ localhost │ 6aa5a596-b3b9-4633-822d-73c321646006 │ True  │ 0         │
│ PawelTest │     df-01               │ pplesnia │ localhost │ a5a2a2cd-f3c5-4db7-9d8d-447291d6c65e │ True  │ 0         │
│ PawelTest │   trg-controller        │ pplesnia │ localhost │ 5c4f28e6-4304-4493-b338-d5ba85353952 │ True  │ 0         │
│ PawelTest │     tc-maker-1          │ pplesnia │ localhost │ e69af117-1002-4046-a61d-226fa5edcfeb │ True  │ 0         │
│ PawelTest │     mlt                 │ pplesnia │ localhost │ e0bf9414-6e72-4b7c-a9a9-82cfeec25d52 │ True  │ 0         │
│ PawelTest │   hsi-fake-controller   │ pplesnia │ localhost │ 41fea666-ff3b-42e8-aaa6-bbfa13d0fd17 │ True  │ 0         │
│ PawelTest │     hsi-fake-to-tc-app  │ pplesnia │ localhost │ 7f4b95b0-0c49-476d-a420-6ba2743b710e │ True  │ 0         │
│ PawelTest │ local-connection-server │ pplesnia │ localhost │ 849842c5-c904-4617-9572-23744f501cdc │ True  │ 0         │
└───────────┴─────────────────────────┴──────────┴───────────┴──────────────────────────────────────┴───────┴───────────┘
drunc-unified-shell > status
[2025/08/05 11:47:52] ERROR      shell_utils.py:242             utils.ShellContext:                           Controller-specific commands cannot be sent until the session is booted                                                                                                                                         
                                 ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
                                 │ /nfs/home/pplesnia/nightlyDev/250805/sourcecode/drunc/src/drunc/utils/shell_utils.py:234 in get_driver                                                                                                                                                                                    │
                                 │                                                                                                                                                                                                                                                                                           │
                                 │   231 │   def get_driver(self, name: str = None, quiet_fail: bool = False) -> GRPCDriver:                                                                                                                                                                                                 │
                                 │   232 │   │   try:                                                                                                                                                                                                                                                                        │
                                 │   233 │   │   │   if name:                                                                                                                                                                                                                                                                │
                                 │ ❱ 234 │   │   │   │   return self._drivers[name]                                                                                                                                                                                                                                          │
                                 │   235 │   │   │   elif len(self._drivers) > 1:                                                                                                                                                                                                                                            │
                                 │   236 │   │   │   │   raise DruncShellException("More than one driver in this context")                                                                                                                                                                                                   │
                                 │   237 │   │   │   return list(self._drivers.values())[0]                                                                                                                                                                                                                                  │
                                 ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
                                 KeyError: 'controller'  

@PawelPlesniak
Copy link
Collaborator

The reported issues were found to be independent of this PR, they are being investigated now

@PawelPlesniak
Copy link
Collaborator

Thanks @jamesturner246
Tested with MSQT. LGTM

@PawelPlesniak PawelPlesniak merged commit e696627 into develop Aug 5, 2025
1 check passed
@PawelPlesniak PawelPlesniak deleted the jamesturner246/simpler_grpc_pm branch August 5, 2025 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gRPC dedicated messages: Process Manager

3 participants