- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::nsmcp::RequestRoutingTool
::nsmcp::RequestRoutingToolcreate ... \
[ -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.tcl
Class Relations
::nx::Class create ::nsmcp::RequestRoutingTool \ -superclass ::nsmcp::ToolMethods (to be applied on instances)
contextSupported (scripted, public)
<instance of nsmcp::RequestRoutingTool> contextSupported server
Probe whether native routing supports a request-context ns_set. Use a temporary context and release it even when the capability probe fails.
- Parameters:
- server (required)
- Selected NaviServer virtual-server name.
- Returns:
- True when contextual routing lookup is supported, otherwise false.
- 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 }encodeSnapshot (scripted, public)
<instance of nsmcp::RequestRoutingTool> encodeSnapshot snapshot
Encode a routing snapshot as typed JSON fields. Retain route order and availability metadata while converting Tcl containers to arrays and objects.
- Parameters:
- snapshot (required)
- Routing snapshot with availability metadata.
- Returns:
- The field triples for the encoded routing snapshot.
- 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
Describe the selected server's request-routing configuration. Capture pool/filter maps and whether native contextual lookup is supported.
- Parameters:
- context (required)
- Authenticated request context carrying the principal, grants and selected server.
- arguments (required)
- Rooted ns_json typed triples for the tool's JSON argument object.
- Returns:
- A rooted JSON tool-result object, including availability or job metadata as appropriate.
- 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
Resolve one request against native pool mapping. Populate a temporary request context from available record fields, perform the lookup and release the ns_set.
- Parameters:
- server (required)
- Selected NaviServer virtual-server name.
- record (required)
- Recorded request fields or routing-evidence dictionary.
- Returns:
- The native mapping result for the request.
- 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
Capture configured request-pool and filter routing information. Record unavailable runtime observations explicitly instead of inferring missing routes.
- Parameters:
- server (required)
- Selected NaviServer virtual-server name.
- Returns:
- The routing snapshot dictionary with pools, filters and availability metadata.
- 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]
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
![[i]](/resources/acs-subsite/ZoomIn16.gif)