From 2d767190af8bbc4ca4cf8f50a987310b49631477 Mon Sep 17 00:00:00 2001 From: Sergey Kalinin Date: Sun, 3 Jun 2018 16:38:01 +0300 Subject: [PATCH] Make Parsing text for Table list --- lib/function.tcl | 172 +++++++++++++++++++++++++++++++++++------------ lib/gui.tcl | 2 +- 2 files changed, 129 insertions(+), 45 deletions(-) diff --git a/lib/function.tcl b/lib/function.tcl index 16598b5..6b90614 100644 --- a/lib/function.tcl +++ b/lib/function.tcl @@ -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" diff --git a/lib/gui.tcl b/lib/gui.tcl index 94bca83..28520a7 100644 --- a/lib/gui.tcl +++ b/lib/gui.tcl @@ -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] ]