nsmcp::ConfigurationTool method execute (public)

 <instance of nsmcp::ConfigurationTool[i]> execute context arguments

Defined in /usr/local/ns/tcl/nsmcp/config-tools.tcl

Parameters:
context (required)
arguments (required)

Testcases:
No testcase defined.
Source code:
set options [:options $arguments]
set server [$context server]
set scope [dict get $options scope]
if {$scope eq "process"} {
    ${:authorizer} require $context diagnostics.configuration.process.read
}
set prefix [dict get $options section]
set sections [:sections]
set secrets {}
dict for {section parameters} $sections {
    foreach {name value} $parameters {
        if {[:credentialParameter $name] && $value ne ""} {lappend secrets $value}
    }
}
set names {}
set excluded 0
foreach section [lsort [dict keys $sections]] {
    if {$scope eq "server" && [string match ns/server/* $section]
        && $section ne "ns/server/$server" && [string first "ns/server/$server/" $section] != 0} {
        incr excluded
        continue
    }
    if {$prefix ne "" && $section ne $prefix && [string first $prefix/ $section] != 0} continue
    lappend names $section
}
set offset [dict get $options offset]
set limit [dict get $options limit]
set array {}
set index 0
foreach section [lrange $names $offset [expr {$offset+$limit-1}]] {
    set parameters {}
    set parameterIndex 0
    set seen {}
    foreach {name value} [dict get $sections $section] {
        set clean [:value $name $value $secrets]
        set folded [string tolower $name]
        lappend parameters $parameterIndex object [list name string $name value string $clean  redacted boolean [expr {$clean ne $value}] firstOccurrence boolean [expr {$folded ni $seen}]]
        lappend seen $folded
        incr parameterIndex
    }
    set sectionScope [expr {[string first "ns/server/" $section] == 0 ? "server" : "process"}]
    lappend array $index object [list name string $section scope string $sectionScope parameters array $parameters]
    incr index
}
set more [expr {$offset+$index < [llength $names]}]
set next {}
if {$more} {
    set next [list scope string $scope section string $prefix limit number $limit offset number [expr {$offset+$index}]]
}
return [list {} object [list server string $server observedAt number [clock seconds]  scope string $scope configurationFile string [ns_info config]  sectionCount number [llength $names] excludedServerSections number $excluded  sections array $array more boolean $more nextArguments object $next  coverage object {historical boolean false referencedFilesRead boolean false compiledDefaultsComplete boolean false}]]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: