From d6048f85742d44b5aed9d448940ef78fb588aa87 Mon Sep 17 00:00:00 2001 From: Caspian Baska Date: Wed, 12 Jan 2022 15:55:21 +1100 Subject: [PATCH] fix: pass `user_id` --- src/placeos-driver/protocol/management.cr | 12 +++++------- src/placeos-driver/protocol/request.cr | 6 ++++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/placeos-driver/protocol/management.cr b/src/placeos-driver/protocol/management.cr index e7682950..ed1c6f48 100644 --- a/src/placeos-driver/protocol/management.cr +++ b/src/placeos-driver/protocol/management.cr @@ -267,14 +267,12 @@ class PlaceOS::Driver::Protocol::Management io.flush end - private def exec(module_id : String, payload : String, seq : UInt64) : Nil - if (io = @io) && modules[module_id]? - json = %({"id":"#{module_id}","cmd":"exec","seq":#{seq},"payload":#{payload.to_json}}) - io.write_bytes json.bytesize - io.write json.to_slice + private def exec(request : Request) : Nil + if (io = @io) && modules[request.id]? + request.to_json(io) io.flush - elsif promise = request_lock.synchronize { @requests.delete(seq) } - promise.reject Exception.new("module #{module_id} not running on this host") + elsif promise = request_lock.synchronize { @requests.delete(request.seq) } + promise.reject Exception.new("module #{request.id} not running on this host") end end diff --git a/src/placeos-driver/protocol/request.cr b/src/placeos-driver/protocol/request.cr index 8b4922bc..f9723e2f 100644 --- a/src/placeos-driver/protocol/request.cr +++ b/src/placeos-driver/protocol/request.cr @@ -57,10 +57,16 @@ module PlaceOS property seq : UInt64? # For driver to driver comms to route the request back to the originating module + @[JSON::Field(emit_null: false)] property reply : String? + @[JSON::Field(converter: String::RawConverter)] property payload : String? + + @[JSON::Field(emit_null: false)] property error : String? + + @[JSON::Field(emit_null: false)] property backtrace : Array(String)? def set_error(error)