Class ::nsmcp::RequestRoutingTool
::nsmcp::RequestRoutingTool
create ... \
[ -adminExample (default "") ] \
[ -adminSummary (default "") ] \
[ -description (default "Inspect effective connection-pool mappings and registered filters for the authenticated server. Runtime ns_server data, not configuration guesses. Filter registrations include authentication, request processing and other purposes; names do not establish behavior. Does not execute filters or read implementation files.") ] \
[ -inputSchema (default "
{
"type": "object",
"properties": {},
"additionalProperties": false
}
") ] \
[ -name (default "server_request_routing") ] \
[ -outputSchema (default "") ] \
[ -permission (default "diagnostics.runtime.read") ] \
[ -redactor:required redactor:required ]
Defined in /usr/local/ns/tcl/nsmcp/traffic-tools.tclClass Relations
- class: ::nx::Class
![[i]](/resources/acs-subsite/ZoomIn16.gif)
- superclass: ::nsmcp::Tool
![[i]](/resources/acs-subsite/ZoomIn16.gif)
::nx::Class create ::nsmcp::RequestRoutingTool \
-superclass ::nsmcp::Tool
Methods (to be applied on instances)
<instance of nsmcp::RequestRoutingTool
> contextSupported server
- Parameters:
- server (required)
- Testcases:
-
No testcase defined.
set context [ns_set create]
try {
return [expr {![catch {ns_server -server $server mapped -context $context {GET /}}]}]
} finally {
ns_set free $context
} <instance of nsmcp::RequestRoutingTool
> encodeSnapshot snapshot
- Parameters:
- snapshot (required)
- Testcases:
-
No testcase defined.
set pools {}; dict for {pool maps} [dict get $snapshot pools] {
set rows {}; set i 0
foreach row $maps {lappend rows $i string [${:redactor} message $row]; incr i}
lappend pools $pool array $rows
}
set filters {}; set i 0
foreach row [dict get $snapshot filters] {lappend filters $i string [${:redactor} message $row]; incr i}
set errors {}; dict for {key value} [dict get $snapshot availability] {lappend errors $key string $value}
return [list mappings object $pools filters array $filters availability object $errors]execute (scripted, public)
<instance of nsmcp::RequestRoutingTool
> execute context \
arguments
- Parameters:
- context (required)
- arguments (required)
- Testcases:
-
No testcase defined.
set server [$context server]
return [list {} object [list server string $server observedAt number [clock seconds] source string ns_server nativeContextLookup boolean [:contextSupported $server] {*}[:encodeSnapshot [:snapshot $server]]]]mapped (scripted, public)
<instance of nsmcp::RequestRoutingTool
> mapped server record
- Parameters:
- server (required)
- record (required)
- Testcases:
-
No testcase defined.
set context [ns_set create]
try {
if {[dict exists $record userAgent]} {
ns_set put $context user-agent [dict get $record userAgent]
}
set peer [dict get $record peerAddress]
if {[ns_ip valid $peer]} {
ns_set put $context x-ns-ip $peer
}
set pool [ns_server -server $server mapped -context $context [list [dict get $record method] [dict get $record path]]]
return [expr {$pool eq "" ? "default" : $pool}]
} finally {
ns_set free $context
}snapshot (scripted, public)
<instance of nsmcp::RequestRoutingTool
> snapshot server
- Parameters:
- server (required)
- Testcases:
-
No testcase defined.
set pools {}; set filters {}; set errors {}
if {[catch {ns_server -server $server pools} names]} {
dict set errors pools unavailable
} else {
foreach pool $names {
if {[catch {ns_server -server $server -pool $pool map} maps]} {
dict set errors $pool unavailable
} else {dict set pools [expr {$pool eq "" ? "default" : $pool}] $maps}
}
}
if {[catch {ns_server -server $server filters} filters]} {
set filters {}; dict set errors filters unavailable
}
return [dict create pools $pools filters $filters availability $errors]