register_agent "$collector_name" [list $listTransition $listAction] { m4_include(../../src/debug.tcli) set transition_list [lindex $argv 0] set action_list [lindex $argv 1] proc kill_all {Action_list Transition_list} { foreach elmt $Action_list { if {[stream_exists $elmt] == 1} { stream_open $elmt stream_destroy $elmt } } foreach elmt $Transition_list { if {[stream_exists /webtest/transition/$elmt] == 1} { stream_open /webtest/transition/$elmt stream_destroy /webtest/transition/$elmt } } stream_exit } on_stream_append { if [catch {set lArgc [llength $argv]} res] { puts "collector : $res\n$argv" return } if {$lArgc == 0} { PRINTERROR [list m4___file__ m4___line__ "protocol EMPTY EVENT, from place %d %s" [get_sender_location] $argv] } else { switch -exact [lindex $argv 0] { "RETURN_VAL_ERROR" {#error_message code if {$lArgc != 3} { PRINTERROR {m4__file__ m4__line__ "ERROR: error protocol"} return } set cmd "exec " append cmd "/fs/crowbar/src/tk8.1a2/unix/wish " append cmd "~/agni/agni/applications/task-graphs/src/errormsg.tk " append cmd "\{[lindex $argv 0]\} " append cmd "\{[lindex $argv 1]\} " append cmd "\{[lindex $argv 2]\} " append cmd "\{[get_sender_location]\} " eval $cmd kill_all $action_list $transition_list } "EVAL_ERROR" {#error_message code if {$lArgc != 3} { PRINTERROR {m4__file__ m4__line__ "ERROR: error protocol"} return } set cmd "exec " append cmd "/fs/crowbar/src/tk8.1a2/unix/wish " append cmd "~/agni/agni/applications/task-graphs/src/errormsg.tk " append cmd "\{[lindex $argv 0]\} " append cmd "\{[lindex $argv 1]\} " append cmd "\{[lindex $argv 2]\} " append cmd "\{[get_sender_location]\} " eval $cmd kill_all $action_list $transition_list } "FAILURE" { puts stdout "collector FAILURE" kill_all $action_list $transition_list stream_exit } "RESULT" {#result if {$lArgc != 2} { PRINTERROR {m4__file__ m4__line__ "REPORT: error protocol"} return } puts stdout "Test OK" puts stdout "Result:[lindex $argv 1]" puts stdout "[list_streams]" stream_exit } } } } }