1
0
mirror of https://bitbucket.org/svk28/rac-gui synced 2024-12-04 18:46:52 +00:00

Добавлен ввод вывод и удаление требований

This commit is contained in:
Sergey Kalinin 2018-06-07 14:16:25 +03:00
parent 0a34af045a
commit 495c846b82
4 changed files with 266 additions and 28 deletions

View File

@ -11,7 +11,7 @@ proc Quit {} {
}
proc TreePress {tree} {
global host
global host server
set id [$tree selection]
set values [$tree item [$tree selection] -values]
@ -20,8 +20,10 @@ proc TreePress {tree} {
set host $values
} elseif {$key eq ""} {
return
}
puts "$id $host $values"
} elseif {$key eq "work_server"} {
set server $values
}
#puts "$id $host $values"
Run::$key $tree $host $values
#RunCommand $root "infobase summary list --cluster=$cluster $host"
}
@ -54,12 +56,21 @@ proc Run::server {tree host values} {
}
}
proc Run::cluster {$tree host values} {
proc Run::cluster {tree host values} {
global active_cluster
set active_cluster $values
RunCommand cluster::$values "cluster info --cluster=$values $host"
}
proc Run::cluster_managers {tree host values} {
}
proc Run::services {tree host values} {
global active_cluster
Run::List $tree $host $active_cluster service
}
proc Run::infobases {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
@ -142,17 +153,18 @@ proc Run::servers {tree host values} {
lappend server($server_id) [string trim [lindex $server_list 1]]
}
}
puts $l
#puts $l
InsertItemsWorkList $l
}
foreach x [array names server] {
set id [lindex $server($x) 0]
if { [$tree exists "work_server::$id"] == 0 } {
$tree insert "servers::$values" end -id "work_server::$id" -text "[lindex $server($x) 1]" -values "$id"
$tree insert "servers::$values" end -id "work_server::$id" \
-text "[lindex $server($x) 1]" -values "$id"
}
InsertWorkServerItems $tree $id
}
#Run::List $tree $host $values server
}
#Run::List $tree $host $values server
}
proc Run::work_server {tree host values} {
global active_cluster work_list_row_count
@ -186,16 +198,67 @@ proc Run::work_server_licenses {tree host values} {
}
proc Run::managers {tree host values} {
Run::List $tree $host $values manager
#Run::List $tree $host $values manager
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand cluster::$values "manager list --cluster=$active_cluster $host"]
foreach l $lst {
foreach i $l {
set server_list [split $i ":"]
#InsertItemsWorkList $server_list
if {[string trim [lindex $server_list 0]] eq "manager"} {
set server_id [string trim [lindex $server_list 1]]
lappend server($server_id) $server_id
}
if {[string trim [lindex $server_list 0]] eq "host"} {
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]
if { [$tree exists "manager::$id"] == 0 } {
$tree insert "managers::$values" end -id "manager::$id" \
-text "[lindex $server($x) 1]" -values "$id"
}
#InsertWorkServerItems $tree $id
}
#Run::List $tree $host $values server
}
proc Run::manager {tree host values} {
#Run::List $tree $host $values service
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand "" "service list --cluster=$active_cluster $host"]
foreach l $lst {
#puts $l
foreach i $l {
set temp_lst [split $i ":"]
if {[string trim [lindex $temp_lst 0]] eq "manager" && [string match "*$values*" [string trim [lindex $temp_lst 1]]] == 1 } {
InsertItemsWorkList $l
}
}
}
}
proc Run::admins {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand infobase::$values "agent admin list $host"]
#set l [split $lst "&"]
foreach l $lst {
#set base_list [split $i ":"]
InsertItemsWorkList $l
}
}
proc Run::rule {tree host values} {
global active_cluster
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
set lst [RunCommand "" "rule list --cluster=$active_cluster --server=$values $host"]
foreach l $lst {
puts $l
InsertItemsWorkList $l
}
}
@ -208,9 +271,9 @@ proc InsertItemsWorkList {lst} {
set tag light
}
foreach i $lst {
if [regexp -nocase -all -- {(\D+)(\s*?|)(:)(\s*?|)(.+)} $i match param v2 v3 v4 value] {
lappend column_list $param
lappend value_list $value
if [regexp -nocase -all -- {(\D+)(\s*?|)(:)(\s*?|)(.*)} $i match param v2 v3 v4 value] {
lappend column_list [string trim $param]
lappend value_list [string trim $value]
}
}
.frm_work.tree_work configure -columns $column_list -displaycolumns $column_list
@ -249,7 +312,7 @@ proc InsertClusterItems {tree id} {
$tree insert $parent end -id "infobases::$id" -text "Информационные базы" -values "$id"
$tree insert $parent end -id "servers::$id" -text "Рабочие серверы" -values "$id"
$tree insert $parent end -id "admins::$id" -text "Администраторы" -values "$id"
$tree insert $parent end -id "managers::$id" -text "Менеджеры кластера" -values "managers-all"
$tree insert $parent end -id "managers::$id" -text "Менеджеры кластера" -values $id
$tree insert $parent end -id "processes::$id" -text "Рабочие процессы" -values "workprocess-all"
$tree insert $parent end -id "sessions::$id" -text "Сеансы" -values "sessions-all"
$tree insert $parent end -id "locks::$id" -text "Блокировки" -values "blocks-all"
@ -278,8 +341,11 @@ proc InsertWorkServerItems {tree id} {
if { [$tree exists "work_server_licenses::$id"] == 0 } {
$tree insert $parent end -id "work_server_licenses::$id" -text "Лицензии" -values "$id"
}
if { [$tree exists "connections::$id"] == 0 } {
#$tree insert $parent end -id "connections::$id" -text "Соединения" -values "$id"
if { [$tree exists "rule::$id"] == 0 } {
$tree insert $parent end -id "rule::$id" -text "Требования назначения функциональности" -values "$id"
}
if { [$tree exists "services::$id"] == 0 } {
# $tree insert $parent end -id "services::$id" -text "Сервисы" -values "$id"
}
}
@ -300,10 +366,24 @@ proc DebugInfo {widget f} {
proc Del {} {
global active_cluster host
set tree .frm_tree.tree
set work_tree_id [.frm_work.tree_work selection]
set work_tree_values [.frm_work.tree_work item $work_tree_id -values]
set id [.frm_tree.tree selection]
set values [.frm_tree.tree item [.frm_tree.tree selection] -values]
set values [.frm_tree.tree item $id -values]
set key [lindex [split $id "::"] 0]
Del::$key .frm_tree.tree $host $values
set column_list [.frm_work.tree_work cget -columns]
set i 0
# проверка соответсвия колонки в таблице и ключа в дереве
foreach l $column_list {
if {$l eq $key } {
set values [lindex $work_tree_values $i]
set tree .frm_work.tree_work
}
incr i
}
Del::$key $tree $host $values
}
namespace eval Del {} {}
@ -345,6 +425,18 @@ proc Del::infobase {tree host values} {
no {return}
}
}
proc Del::rule {tree host values} {
global active_cluster server
set answer [tk_messageBox -message "Удалить требование $values?" \
-icon question -type yesno ]
switch -- $answer {
yes {
set lst [RunCommand infobase::$values "rule remove --server=$server --rule=$values --cluster=$active_cluster $host"]
Run::rule $tree $host $server
}
no {return}
}
}
proc Del::server {tree host values} {
global dir
set answer [tk_messageBox -message "Удалить сервер $values?" \
@ -648,13 +740,78 @@ proc Add::cluster {tree host values} {
Run::server $tree $host ""
destroy .add
}
# ttk::button $frm_btn.btn_cancel -command {destroy .add} -image quit_grey_24
# grid .add.lbl -row 0 -column 0 -sticky nw -padx 5 -pady 10
# grid $frm -row 0 -column 1 -sticky nw -padx 5 -pady 5
# grid $frm_btn -row 1 -column 1 -sticky se -padx 5 -pady 5
# pack $frm_btn.btn_cancel -side right
# pack $frm_btn.btn_ok -side right -padx 10
# ttk::button $frm_btn.btn_cancel -command {destroy .add} -image quit_grey_24
# grid .add.lbl -row 0 -column 0 -sticky nw -padx 5 -pady 10
# grid $frm -row 0 -column 1 -sticky nw -padx 5 -pady 5
# grid $frm_btn -row 1 -column 1 -sticky se -padx 5 -pady 5
# pack $frm_btn.btn_cancel -side right
# pack $frm_btn.btn_ok -side right -padx 10
}
proc Add::rule {tree host values} {
global default active_cluster object infobase type server
set server $values
set frm [AddToplevel "Требование назначения функциональности" functional_grey_64]
set type [lindex $default(type) 0]
label $frm.lbl_object -text "Объект требования"
set combo_object [ttk::combobox $frm.cb_object \
-textvariable object -values $default(object)]
label $frm.lbl_type -text "Тип требования"
set combo_type [ttk::combobox $frm.cb_type \
-textvariable type -values $default(type)]
label $frm.lbl_infobase -text "Имя ИБ"
set combo_infobase [ttk::combobox $frm.cb_infobase \
-textvariable infobase -values [GetInfobases $active_cluster $host]]
label $frm.lbl_par -text "Значение доп. параметра"
entry $frm.ent_par
label $frm.lbl_priority -text "Приоритет"
entry $frm.ent_priority
$frm.ent_priority insert end $default(priority)
grid $frm.lbl_object -row 0 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.cb_object -row 0 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_type -row 1 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.cb_type -row 1 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_infobase -row 2 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.cb_infobase -row 2 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_par -row 3 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_par -row 3 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_priority -row 4 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_priority -row 4 -column 1 -sticky nsew -padx 5 -pady 5
.add.frm_btn.btn_ok configure -command {
RunCommand "" "rule insert \
--cluster=$active_cluster \
--server=$server \
--position=0 \
--object-type=$object \
--infobase-name=$infobase \
--rule-type=$type \
--application-ext=[.add.frm.ent_par get] \
--priority=[.add.frm.ent_priority get] $host"
Run::rule $tree $host $server
destroy .add
}
}
proc GetInfobases {cluster host} {
set lst [RunCommand "" "infobase summary --cluster=$cluster list $host"]
set return_list ""
foreach info_bases_list $lst {
foreach i $info_bases_list {
set i [split $i ":"]
if {[string trim [lindex $i 0]] eq "name"} {
lappend return_list [string trim [lindex $i 1]]
}
}
}
return $return_list
}
proc SaveMainServer {host port} {
global dir
set file [open [file join $dir(work) 1c_srv.cfg] "a+"]
@ -662,3 +819,4 @@ proc SaveMainServer {host port} {
close $file
return "$host:$port"
}

View File

@ -94,3 +94,4 @@ pack $frm_tree $frm_work -side left -expand true -fill both

View File

@ -310,4 +310,38 @@ image create photo ok_grey_24 -data {
t8PeL7qFMNlAnJd06rCgyVJEKX5gSOuclmlLIJglZ9nNInU1FWLyWC84AzNsDQBrCeWUkU+mIlHt
k3ZtdTwf6y/SqfVpjKc5gQAAAABJRU5ErkJggg==
}
image create photo functional_grey_64 -data {
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
AABJRU5ErkJggg==
}

View File

@ -27,13 +27,58 @@ set default(ram_max) 0
set default(ram_sec) 0
# Объём памяти рабочих процессов, до которого сервер считается производительным
set default(ram_work) 0
set default(dbms) [list PostgreSQL MSSQLServer IBMDB2 OracleDatabase]
set default(dbms) {
PostgreSQL
MSSQLServer
IBMDB2
OracleDatabase
}
# Уровни безопасности соединения:
# 0 - выключено
# 1 - только соединение
# 2 - постоянно
set default(secure_level) [list 0 1 2]
set default(date_offset) [list 0 2000]
# Объект требования
set default(object) {
LicenseService
EventLogService
OpenID2ProviderContextService
TimestampService
SessionReuseService
SessionDataService
ExternalSessionManagerService
FulltextSearchService
TransactionLockService
DebugService
ClusterConfigService
ClientTestingService
ClusterLockService
JobService
ExternalDataSourceXMLAService
SettingsService
ExternalDataSourceODBCService
NumerationService
DatabaseTableNumberingService
{Table name and database field numbering service}
DataEditLockService
AuxiliaryService
DataBaseConfigurationUpdateService
}
# тип правила распределения:
# auto - отсутствие правила (по-умолчанию)
# always - распределять только на данный сервер
# never - не распределять на данный сервер
set default(type) {
auto
always
never
}
# Приоритет
set default(priority) 0
# цвета строк в таблице
set color(dark_table_bg) "#e2e2e2"
set color(light_table_bg) "#ffffff"