Skip to content

Commit bdfc404

Browse files
committed
fix(am-relay): fix args for dbg rotation
1 parent cce9b31 commit bdfc404

2 files changed

Lines changed: 21 additions & 16 deletions

File tree

‎tools/relay/relay.go‎

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
ssam "github.com/pancsta/asyncmachine-go/pkg/states"
3232
"github.com/pancsta/asyncmachine-go/pkg/telemetry/dbg"
3333
"github.com/pancsta/asyncmachine-go/tools/debugger/server"
34-
typesDbg "github.com/pancsta/asyncmachine-go/tools/debugger/types"
34+
typesdbg "github.com/pancsta/asyncmachine-go/tools/debugger/types"
3535
"github.com/pancsta/asyncmachine-go/tools/relay/states"
3636
"github.com/pancsta/asyncmachine-go/tools/relay/types"
3737
)
@@ -139,8 +139,10 @@ func (r *Relay) StartState(e *am.Event) {
139139
if cmd.OutputClients {
140140
_ = r.hExportClients()
141141
}
142-
dbgParams := typesDbg.Params{
143-
FwdData: cmd.FwdAddr,
142+
dbgParams := func() *typesdbg.Params {
143+
return &typesdbg.Params{
144+
FwdData: cmd.FwdAddr,
145+
}
144146
}
145147
srvMux, _, err := server.New(r.Mach, cmd.ListenAddr, dbgParams)
146148
if err != nil {
@@ -498,17 +500,18 @@ var _ = ssR.ClientMsg
498500
// ///// HANDLERS (DBG)
499501

500502
// ///// ///// /////
501-
// TODO typed args for dbg server
503+
504+
var _ = ssR.ClientMsg
502505

503506
func (r *Relay) ClientMsgEnter(e *am.Event) bool {
504-
_, ok1 := e.Args["msgs_tx"].([]*dbg.DbgMsgTx)
505-
_, ok2 := e.Args["conn_ids"].([]string)
506-
return ok1 && ok2
507+
args, ok := am.ParseArgsCheck[typesdbg.A](e.Args)
508+
return ok && args.MsgsTx != nil && args.ConnIds != nil
507509
}
508510

509511
func (r *Relay) ClientMsgState(e *am.Event) {
510-
msgs := e.Args["msgs_tx"].([]*dbg.DbgMsgTx)
511-
connIds := e.Args["conn_ids"].([]string)
512+
args := am.ParseArgs[typesdbg.A](e.Args)
513+
msgs := args.MsgsTx
514+
connIds := args.ConnIds
512515

513516
updatedClients := make(map[string]*server.Client)
514517

@@ -559,9 +562,8 @@ func (r *Relay) ClientMsgState(e *am.Event) {
559562
var _ = ssR.ConnectEvent
560563

561564
func (r *Relay) ConnectEventEnter(e *am.Event) bool {
562-
msg, ok1 := e.Args["msg_struct"].(*dbg.DbgMsgStruct)
563-
_, ok2 := e.Args["conn_id"].(string)
564-
if !ok1 || !ok2 || msg.ID == "" {
565+
args, ok := am.ParseArgsCheck[typesdbg.A](e.Args)
566+
if !ok || args.MsgStruct == nil || args.MsgStruct.ID == "" {
565567
r.Mach.Log("Error: msg_struct malformed\n")
566568
return false
567569
}
@@ -571,8 +573,9 @@ func (r *Relay) ConnectEventEnter(e *am.Event) bool {
571573

572574
func (r *Relay) ConnectEventState(e *am.Event) {
573575
// initial structure data
574-
msg := e.Args["msg_struct"].(*dbg.DbgMsgStruct)
575-
connId := e.Args["conn_id"].(string)
576+
args := am.ParseArgs[typesdbg.A](e.Args)
577+
msg := args.MsgStruct
578+
connId := args.ConnId
576579
var c *server.Client
577580

578581
// update existing client
@@ -609,7 +612,7 @@ func (r *Relay) ConnectEventState(e *am.Event) {
609612
var _ = ssR.DisconnectEvent
610613

611614
func (r *Relay) DisconnectEventEnter(e *am.Event) bool {
612-
_, ok := e.Args["conn_id"].(string)
615+
_, ok := am.ParseArgsCheck[typesdbg.A](e.Args)
613616
if !ok {
614617
r.Mach.Log("Error: DisconnectEvent malformed\n")
615618
return false
@@ -619,7 +622,8 @@ func (r *Relay) DisconnectEventEnter(e *am.Event) bool {
619622
}
620623

621624
func (r *Relay) DisconnectEventState(e *am.Event) {
622-
connID := e.Args["conn_id"].(string)
625+
args := am.ParseArgs[typesdbg.A](e.Args)
626+
connID := args.ConnId
623627
for _, c := range r.dbgClients {
624628
if c.ConnId != "" && c.ConnId == connID {
625629
// mark as disconnected

‎tools/relay/types/types_relay.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type ArgsRotateDbg struct {
4343
FwdAddr []string `arg:"-f,--fwd-addr,separate" help:"Address of an RPC server to forward data to (repeatable)"`
4444
IntervalTx int `arg:"--interval-tx" default:"10000" help:"Amount of transitions to create a dump file"`
4545
IntervalTime time.Duration `arg:"--interval-duration" default:"24h" help:"Amount of human time to create a dump file"`
46+
// TODO max file size
4647
Filename string `arg:"-o,--output" default:"am-dbg-dump" help:"Output file base name"`
4748
Dir string `arg:"-d,--dir" default:"." help:"Output directory"`
4849
OutputMach bool `arg:"--output-mach" default:"true" help:"Export serialized machines as YAML into dir/machs/id.yml and dir/machs/id.schema.yml"`

0 commit comments

Comments
 (0)