mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
tool: support meshcmd as AMT alternative tool
which may be used as alternative for - AMT log grabbing, default: amtterm - AMT power cycling, default: wsman, alternative: amttool https://www.meshcommander.com https://github.com/Ylianst/MeshCommander https://www.intel.com/content/www/us/en/developer/articles/news/meshcmd-new-intel-amt-command-line-tool.html
This commit is contained in:
parent
35a679d861
commit
b50bbef303
@ -23,6 +23,10 @@ proc is_amt_available { {host "" } {password "" } } {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if {[have_installed meshcmd]} {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
puts "No support for Intel's AMT detected."
|
puts "No support for Intel's AMT detected."
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -44,11 +44,11 @@ proc run_log { wait_for_re timeout_value } {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
set amt_tool [get_cmd_arg --amt-tool "wsman"]
|
set amt_tool [get_cmd_arg --amt-tool "default"]
|
||||||
|
|
||||||
# Check that SOL is correctly configured if wsman is available
|
# Check that SOL is correctly configured if wsman is available
|
||||||
if {![log_amt_skip_test]} {
|
if {![log_amt_skip_test] && ( $amt_tool == "wsman" || $amt_tool == "default" )} {
|
||||||
if {[have_installed wsman] && $amt_tool=="wsman" } {
|
if {[have_installed wsman]} {
|
||||||
puts "Test for working AMT SOL redirection service ..."
|
puts "Test for working AMT SOL redirection service ..."
|
||||||
set redir_state [exec wsman get http://intel.com/wbem/wscim/1/amt-schema/1/AMT_RedirectionService -h [log_amt_host] -P 16992 -u admin -p [log_amt_password]]
|
set redir_state [exec wsman get http://intel.com/wbem/wscim/1/amt-schema/1/AMT_RedirectionService -h [log_amt_host] -P 16992 -u admin -p [log_amt_password]]
|
||||||
set redir_state [regexp -inline {ListenerEnabled.*ListenerEnabled} $redir_state]
|
set redir_state [regexp -inline {ListenerEnabled.*ListenerEnabled} $redir_state]
|
||||||
@ -62,21 +62,6 @@ proc run_log { wait_for_re timeout_value } {
|
|||||||
} else {
|
} else {
|
||||||
puts " Warning: could not check AMT SOL redirection service because of missing wsman tool, --amt-tool==$amt_tool"
|
puts " Warning: could not check AMT SOL redirection service because of missing wsman tool, --amt-tool==$amt_tool"
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
puts "Skipping test for working AMT SOL redirection service"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# password via environment variable for amtterm will not show up in logs
|
|
||||||
#
|
|
||||||
set ::env(AMT_PASSWORD) [log_amt_password]
|
|
||||||
|
|
||||||
#
|
|
||||||
# grab output
|
|
||||||
#
|
|
||||||
set amt_cmd "amtterm -u admin -v [log_amt_host]"
|
|
||||||
if {[get_cmd_switch --log-amt-filter]} {
|
|
||||||
set amt_cmd "$amt_cmd | [log_amt_filter]"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if {$wait_for_re == "forever"} {
|
if {$wait_for_re == "forever"} {
|
||||||
@ -86,7 +71,30 @@ proc run_log { wait_for_re timeout_value } {
|
|||||||
}
|
}
|
||||||
set exit_result 1
|
set exit_result 1
|
||||||
|
|
||||||
lassign [retry 30 "/bin/sh -c \"$amt_cmd\"" ".*session authentication" 0.5] retry_output output_spawn_id
|
#
|
||||||
|
# prepare command
|
||||||
|
#
|
||||||
|
if {[have_installed meshcmd] && ( $amt_tool == "meshcmd" )} {
|
||||||
|
set amt_cmd "meshcmd amtterm --host [log_amt_host] --password [log_amt_password]"
|
||||||
|
set amt_log ".*Connected"
|
||||||
|
} else {
|
||||||
|
#
|
||||||
|
# password via environment variable for amtterm will not show up in logs
|
||||||
|
#
|
||||||
|
set ::env(AMT_PASSWORD) [log_amt_password]
|
||||||
|
|
||||||
|
set amt_cmd "amtterm -u admin -v [log_amt_host]"
|
||||||
|
set amt_log ".*session authentication"
|
||||||
|
}
|
||||||
|
|
||||||
|
if {[get_cmd_switch --log-amt-filter]} {
|
||||||
|
set amt_cmd "$amt_cmd | [log_amt_filter]"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# grab output
|
||||||
|
#
|
||||||
|
lassign [retry 30 "/bin/sh -c \"$amt_cmd\"" "$amt_log" 2] retry_output output_spawn_id
|
||||||
|
|
||||||
if {$retry_output == ""} {
|
if {$retry_output == ""} {
|
||||||
puts stderr "Aborting, AMT SOL not accessible"
|
puts stderr "Aborting, AMT SOL not accessible"
|
||||||
|
@ -102,6 +102,20 @@ proc amt_reset_wsman { } {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Reset via meshcmd
|
||||||
|
# Executes a power on or power cycle depending on the current power state
|
||||||
|
#
|
||||||
|
proc amt_reset_meshcmd { } {
|
||||||
|
set power_state [exec meshcmd amtpower --reset --host [power_on_amt_host] --password [power_on_amt_password]]
|
||||||
|
if { $power_state == "Current power state: Soft off" } {
|
||||||
|
exec meshcmd amtpower --powercycle --host [power_on_amt_host] --password [power_on_amt_password]
|
||||||
|
} else {
|
||||||
|
exec meshcmd amtpower --poweron --host [power_on_amt_host] --password [power_on_amt_password]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Reset the test machine using Intel's AMT
|
# Reset the test machine using Intel's AMT
|
||||||
#
|
#
|
||||||
@ -111,7 +125,7 @@ proc run_power_on { } {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# amttool and wsman are supported for reset
|
# amttool, wsman and meshcmd are supported for reset
|
||||||
#
|
#
|
||||||
set amt_tool [get_cmd_arg --amt-tool "default"]
|
set amt_tool [get_cmd_arg --amt-tool "default"]
|
||||||
|
|
||||||
@ -121,14 +135,14 @@ proc run_power_on { } {
|
|||||||
if {[have_installed wsman] &&
|
if {[have_installed wsman] &&
|
||||||
( $amt_tool == "wsman" || $amt_tool == "default") } {
|
( $amt_tool == "wsman" || $amt_tool == "default") } {
|
||||||
amt_reset_wsman
|
amt_reset_wsman
|
||||||
|
} elseif {[have_installed meshcmd] && ( $amt_tool == "meshcmd" )} {
|
||||||
|
amt_reset_meshcmd
|
||||||
|
} elseif {[have_installed amttool] &&
|
||||||
|
( $amt_tool == "amttool" || $amt_tool == "default") } {
|
||||||
|
amt_reset_soap_eoi
|
||||||
} else {
|
} else {
|
||||||
if {[have_installed amttool] &&
|
puts stderr "specified tool \"$amt_tool\" for using Intel AMT is unknown or is not installed"
|
||||||
($amt_tool == "amttool" || $amt_tool == "default") } {
|
exit -1
|
||||||
amt_reset_soap_eoi
|
|
||||||
} else {
|
|
||||||
puts stderr "specified tool \"$amt_tool\" for using Intel AMT is unknown or is not installed"
|
|
||||||
exit -1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
puts "wait [power_on_amt_timeout] seconds for power on"
|
puts "wait [power_on_amt_timeout] seconds for power on"
|
||||||
|
Loading…
Reference in New Issue
Block a user