Make Parsing text for Table list

This commit is contained in:
Sergey Kalinin 2018-06-03 16:38:01 +03:00
parent 8d11556947
commit 2d767190af
2 changed files with 129 additions and 45 deletions

View File

@ -21,15 +21,16 @@ proc TreePress {tree} {
} elseif {$key eq ""} {
return
}
puts "$id $host $values"
#puts "$id $host $values"
Run::$key $tree $host $values
#RunCommand $root "infobase summary list --cluster=$cluster $host"
}
namespace eval Run {} {}
# Получение данных по кластерам
proc Run::server {tree host values} {
proc Run::server_ {tree host values} {
set lst [RunCommand server::$host "cluster list $host"]
set l [split $lst "&"]
foreach i $l {
set cluster_list [split $i ":"]
@ -49,6 +50,31 @@ proc Run::server {tree host values} {
}
}
}
proc Run::server {tree host values} {
set lst [RunCommand server::$host "cluster list $host"]
set l [lindex $lst 0]
foreach cluster_list $lst {
foreach i $cluster_list {
puts $i
set cluster_list [split $i ":"]
if {[string trim [lindex $cluster_list 0]] eq "cluster"} {
set cluster_id [string trim [lindex $cluster_list 1]]
lappend cluster($cluster_id) $cluster_id
}
if {[string trim [lindex $cluster_list 0]] eq "name"} {
lappend cluster($cluster_id) [string trim [lindex $cluster_list 1]]
}
}
}
foreach x [array names cluster] {
set id [lindex $cluster($x) 0]
if { [$tree exists "cluster::$id"] == 0 } {
$tree insert "server::$host" end -id "cluster::$id" -text "[lindex $cluster($x) 1]" -values "$id"
InsertClusterItems $tree $id
}
}
}
proc Run::cluster {$tree host values} {
global active_cluster
set active_cluster $values
@ -60,18 +86,19 @@ proc Run::infobases {tree host values} {
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "infobase summary --cluster=$active_cluster list $host"]
set l [split $lst "&"]
puts $lst
foreach i $l {
set base_list [split $i ":"]
if {[string trim [lindex $base_list 0]] eq "infobase"} {
set base_id [string trim [lindex $base_list 1]]
lappend base($base_id) $base_id
foreach info_bases_list $lst {
foreach i $info_bases_list {
set base_list [split $i ":"]
if {[string trim [lindex $base_list 0]] eq "infobase"} {
set base_id [string trim [lindex $base_list 1]]
lappend base($base_id) $base_id
}
if {[string trim [lindex $base_list 0]] eq "name"} {
lappend base($base_id) [string trim [lindex $base_list 1]]
}
#InsertItemsWorkList $base_list
}
if {[string trim [lindex $base_list 0]] eq "name"} {
lappend base($base_id) [string trim [lindex $base_list 1]]
}
InsertItemsWorkList $base_list
InsertItemsWorkList $info_bases_list
}
foreach x [array names base] {
set id [lindex $base($x) 0]
@ -81,15 +108,17 @@ proc Run::infobases {tree host values} {
InsertBaseItems $tree $id
}
}
proc Run::infobase {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "infobase info --cluster=$active_cluster --infobase=$values $host"]
set l [split $lst "&"]
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
foreach l $lst {
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
}
}
}
@ -97,21 +126,26 @@ proc Run::List:Base {tree host values par} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "$par list --cluster=$active_cluster --infobase=$values $host"]
puts $lst
set l [split $lst "&"]
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
foreach l $lst {
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
}
puts "--$l"
InsertItemsWorkList $l
}
}
proc Run::List {tree host values par} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "$par list --cluster=$active_cluster $host"]
set l [split $lst "&"]
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
foreach l $lst {
foreach i $l {
set base_list [split $i ":"]
#InsertItemsWorkList $base_list
}
InsertItemsWorkList $l
}
}
@ -129,17 +163,20 @@ proc Run::servers {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "server list --cluster=$active_cluster $host"]
set l [split $lst "&"]
foreach i $l {
set server_list [split $i ":"]
#InsertItemsWorkList $server_list
if {[string trim [lindex $server_list 0]] eq "server"} {
set server_id [string trim [lindex $server_list 1]]
lappend server($server_id) $server_id
}
if {[string trim [lindex $server_list 0]] eq "name"} {
lappend server($server_id) [string trim [lindex $server_list 1]]
foreach l $lst {
foreach i $l {
set server_list [split $i ":"]
#InsertItemsWorkList $server_list
if {[string trim [lindex $server_list 0]] eq "server"} {
set server_id [string trim [lindex $server_list 1]]
lappend server($server_id) $server_id
}
if {[string trim [lindex $server_list 0]] eq "name"} {
lappend server($server_id) [string trim [lindex $server_list 1]]
}
}
puts $l
InsertItemsWorkList $l
}
foreach x [array names server] {
set id [lindex $server($x) 0]
@ -154,10 +191,13 @@ proc Run::work_server {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "server info --cluster=$active_cluster --server=$values $host"]
set l [split $lst "&"]
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList $base_list
foreach l $lst {
foreach i $l {
set base_list [split $i ":"]
InsertItemsWorkList_ $base_list
}
#puts $l
#InsertItemsWorkList $l
}
#Run::List $tree $host $values server
}
@ -182,24 +222,68 @@ proc Run::admins {tree host values} {
}
}
proc InsertItemsWorkList {lst} {
proc InsertItemsWorkList_ {lst} {
#.frm_work.tree_work configure -columns "par val" -displaycolumns "par val"
.frm_work.tree_work insert {} end -values $lst
# .frm_work.tree_work column [lindex $lst 0] -id [lindex $lst 0]
# .frm_work.tree_work heading [lindex $lst 0] -text [lindex $lst 0]
# .frm_work.tree_work insert [lindex $lst 0] end -values [lindex $lst 1]
#.frm_work.tree_work insert val end -text [lindex $lst 1] -values [lindex $lst 1]
#puts [.frm_work.tree_work cget -columns]
#puts [.frm_work.tree_work column par]
}
proc RunCommand {root par} {
proc InsertItemsWorkList {lst} {
foreach i $lst {
set l [split $i ":"]
lappend column_list [lindex $l 0]
lappend value_list [lindex $l 1]
}
.frm_work.tree_work configure -columns $column_list -displaycolumns $column_list
.frm_work.tree_work insert {} end -values $value_list
foreach j $column_list {
.frm_work.tree_work heading $j -text $j
}
}
proc RunCommand_ {root par} {
global dir rac_cmd cluster
puts $par
#puts $par
set pipe [open "|$rac_cmd $par" "r"]
set lst ""
while {[gets $pipe line]>=0} {
#puts "$line"
append lst "$line&"
if {$line eq ""} {
append lst "----&"
} else {
append lst "$line&"
}
}
close $pipe
return $lst
# fileevent $pipe readable [list DebugInfo .frm_work.tree_work $pipe]
# fconfigure $pipe -buffering none -blocking no
}
proc RunCommand {root par} {
global dir rac_cmd cluster
#puts $par
set pipe [open "|$rac_cmd $par" "r"]
set lst ""
set l ""
while {[gets $pipe line]>=0} {
if {$line eq ""} {
lappend l $lst
set lst ""
} else {
lappend lst $line
}
}
close $pipe
return $l
# fileevent $pipe readable [list DebugInfo .frm_work.tree_work $pipe]
# fconfigure $pipe -buffering none -blocking no
}
proc InsertClusterItems {tree id} {
set parent "cluster::$id"

View File

@ -61,7 +61,7 @@ ttk::scrollbar $frm_work.hsb -orient horizontal -command [list $frm_work.tree_wo
ttk::scrollbar $frm_work.vsb -orient vertical -command [list $frm_work.tree_work yview]
set tree_work [
ttk::treeview $frm_work.tree_work -class TreeView \
-show headings -columns "par val" -displaycolumns "par val"\
-show headings -columns "par val" -displaycolumns "par val"\
-xscrollcommand [list $frm_work.hsb set] \
-yscrollcommand [list $frm_work.vsb set]
]