Добавлено редактирование сервера, правил. ДОбавлена проверка на наличие утилиты rac при запуске

This commit is contained in:
Sergey Kalinin 2018-06-15 13:11:09 +03:00
parent 59d808f5a1
commit aa357b45c3
4 changed files with 360 additions and 209 deletions

View File

@ -337,11 +337,11 @@ profile Режим управления профилями безопас
Команды: Команды:
info info
получение информации о менеджере получение информации о менеджере
--manager=<uuid> --manager=<uuid>
(обязательный) идентификатор менеджера кластера серверов (обязательный) идентификатор менеджера кластера серверов
list list
получение списка информации о менеджерах получение списка информации о менеджерах
1C:Enterprise 8.3 Remote Administrative Client Utility © 1C-Soft LLC 1996-2018 1C:Enterprise 8.3 Remote Administrative Client Utility © 1C-Soft LLC 1996-2018
@ -378,76 +378,76 @@ server
имя администратора кластера имя администратора кластера
--cluster-pwd=<pwd> --cluster-pwd=<pwd>
пароль администратора кластера пароль администратора кластера
Команды: Команды:
info info
получение информации о рабочем сервере получение информации о рабочем сервере
--server=<uuid> --server=<uuid>
(обязательный) идентификатор рабочего сервера кластера серверов (обязательный) идентификатор рабочего сервера кластера серверов
list list
получение списка информации о рабочих серверах получение списка информации о рабочих серверах
insert insert
регистрация рабочего сервера регистрация рабочего сервера
--agent-host=<host> --agent-host=<host>
(обязательный) имя хоста или IP-адрес агента сервера (обязательный) имя хоста или IP-адрес агента сервера
--agent-port=<port> --agent-port=<port>
(обязательный) основной порт агента сервера (обязательный) основной порт агента сервера
--port-range=<min>:<max> --port-range=<min>:<max>
(обязательный) диапазон IP портов для динамического распределения, (обязательный) диапазон IP портов для динамического распределения,
возможно указание нескольких диапазонов возможно указание нескольких диапазонов
--name=<name> --name=<name>
наименование рабочего сервера наименование рабочего сервера
--using=main|normal --using=main|normal
вариант использования рабочего сервера вариант использования рабочего сервера
main - в качестве центрального сервера main - в качестве центрального сервера
normal - в качестве обычного сервера normal - в качестве обычного сервера
--infobases-limit=<count> --infobases-limit=<count>
максимальное количество информационных баз на рабочий процесс максимальное количество информационных баз на рабочий процесс
--memory-limit=<Kb> --memory-limit=<Kb>
предел использования памяти рабочими процессами предел использования памяти рабочими процессами
--connections-limit=<count> --connections-limit=<count>
максимальное количество соединения на рабочий процесс максимальное количество соединения на рабочий процесс
--cluster-port=<port> --cluster-port=<port>
номер порта главного менеджера кластера номер порта главного менеджера кластера
--dedicate-managers=all|none --dedicate-managers=all|none
вариант размещения менеджеров сервисов вариант размещения менеджеров сервисов
all - размещать все сервисы в отдельных менеджерах all - размещать все сервисы в отдельных менеджерах
none - размещать все сервисы в одном менеджере none - размещать все сервисы в одном менеджере
--safe-working-processes-memory-limit=<bytes> --safe-working-processes-memory-limit=<bytes>
максимальный объем памяти рабочих процессов на сервере максимальный объем памяти рабочих процессов на сервере
--safe-call-memory-limit=<bytes> --safe-call-memory-limit=<bytes>
безопасный расход памяти за один вызов в байтах безопасный расход памяти за один вызов в байтах
update update
изменение параметров рабочего сервера изменение параметров рабочего сервера
--server=<uuid> --server=<uuid>
(обязательный) идентификатор рабочего сервера кластера серверов (обязательный) идентификатор рабочего сервера кластера серверов
--port-range=<min>:<max> --port-range=<min>:<max>
диапазон IP портов для динамического распределения, диапазон IP портов для динамического распределения,
возможно указание нескольких диапазонов возможно указание нескольких диапазонов
--using=main|normal --using=main|normal
вариант использования рабочего сервера вариант использования рабочего сервера
main - в качестве центрального сервера main - в качестве центрального сервера
normal - в качестве обычного сервера normal - в качестве обычного сервера
--infobases-limit=<count> --infobases-limit=<count>
@ -464,10 +464,10 @@ server
all - размещать все сервисы в отдельных менеджерах all - размещать все сервисы в отдельных менеджерах
none - размещать все сервисы в одном менеджере none - размещать все сервисы в одном менеджере
--safe-working-processes-memory-limit=<bytes> --safe-working-processes-memory-limit=<bytes>
максимальный объем памяти рабочих процессов на сервере максимальный объем памяти рабочих процессов на сервере
--safe-call-memory-limit=<bytes> --safe-call-memory-limit=<bytes>
безопасный расход памяти за один вызов в байтах безопасный расход памяти за один вызов в байтах
remove remove
@ -1010,7 +1010,7 @@ profile Режим управления профилями безопас
Использование: Использование:
rac rule [command] [options] [arguments] rac rule [command] [options] [arguments]
Общие параметры: Общие параметры:
@ -1035,8 +1035,8 @@ profile Режим управления профилями безопас
--cluster=<uuid> --cluster=<uuid>
(обязательный) идентификатор кластера серверов (обязательный) идентификатор кластера серверов
--cluster-user=<name> --cluster-user=<name>
имя администратора кластера имя администратора кластера
--cluster-pwd=<pwd> --cluster-pwd=<pwd>
пароль администратора кластера пароль администратора кластера
@ -1072,19 +1072,15 @@ profile Режим управления профилями безопас
--server=<uuid> --server=<uuid>
(обязательный) идентификатор рабочего сервера кластера серверов (обязательный) идентификатор рабочего сервера кластера серверов
--position=<num>
--position=<num>
(обязательный) позиция в списке требований (начиная с 0) (обязательный) позиция в списке требований (начиная с 0)
--object-type=<id>
--object-type=<id>
идентификатор объекта требования идентификатор объекта требования
--infobase-name=<name>
--infobase-name=<name>
наименование информационной базы, наименование информационной базы,
если параметр не указан - требование распространяется на все если параметр не указан - требование распространяется на все
информационные базы информационные базы
--rule-type=auto|always|never
--rule-type=auto|always|never
тип правила распределения: тип правила распределения:
auto - отсутствие правила (по-умолчанию) auto - отсутствие правила (по-умолчанию)
always - распределять только на данный сервер always - распределять только на данный сервер
@ -1437,3 +1433,4 @@ profile Режим управления профилями безопас

View File

@ -352,21 +352,6 @@ proc InsertWorkServerItems {tree id} {
} }
} }
proc DebugInfo {widget f} {
if {[eof $f]} {
catch [close $f] msg
if {$msg != ""} {
puts $msg
} else {
puts $msg
}
}
while {[gets $f line]>=0} {
puts "$line"
$widget insert {} end -text "$line" -values "$line"
}
}
proc Del {} { proc Del {} {
global active_cluster host global active_cluster host
set tree .frm_tree.tree set tree .frm_tree.tree
@ -540,6 +525,9 @@ proc Del::rule {tree host values} {
} }
incr i incr i
} }
if {[info exists rule_id] == 0 || $rule_id eq ""} {
return
}
set answer [tk_messageBox -message "Удалить требование $rule_id?" \ set answer [tk_messageBox -message "Удалить требование $rule_id?" \
-icon question -type yesno ] -icon question -type yesno ]
@ -640,91 +628,92 @@ proc Add::server {} {
return $frm return $frm
} }
proc Add::servers {tree host values} { proc Add::servers {tree host values} {
global default dedicate_manager using_central_server global default dedicate_managers using
set dedicate_manager "none" set dedicate_manager "none"
set using_central_server "normal" set using_central_server "normal"
#set active_cluster $values #set active_cluster $values
set frm [AddToplevel "Добавление рабочего сервера" server_grey_64] set frm [AddToplevel "Добавление рабочего сервера" server_grey_64]
label $frm.lbl_server_desc -text "Описание сервера" label $frm.lbl_name -text "Описание сервера"
entry $frm.ent_server_desc entry $frm.ent_name
label $frm.lbl_host -text "Адрес сервера" label $frm.lbl_agent_host -text "Адрес сервера"
entry $frm.ent_host entry $frm.ent_agent_host
label $frm.lbl_port -text "Порт" label $frm.lbl_agent_port -text "Порт"
entry $frm.ent_port entry $frm.ent_agent_port
$frm.ent_port insert end $default(port) $frm.ent_agent_port insert end $default(port)
label $frm.lbl_ports_range -text "Диапазон портов" label $frm.lbl_port_range -text "Диапазон портов"
entry $frm.ent_ports_range entry $frm.ent_port_range
$frm.ent_ports_range insert end $default(ports_range) $frm.ent_port_range insert end $default(port_range)
label $frm.lbl_ram_max -text "Максимальный объём памяти раб. процессов" label $frm.lbl_safe_working_processes_memory_limit -text "Максимальный объём памяти раб. процессов"
entry $frm.ent_ram_max entry $frm.ent_safe_working_processes_memory_limit
$frm.ent_ram_max insert end $default(ram_max) $frm.ent_safe_working_processes_memory_limit insert end $default(safe_working_processes_memory_limit)
label $frm.lbl_ram_sec -text "Безопасный расход памяти за вызов" label $frm.lbl_safe_call_memory_limit -text "Безопасный расход памяти за вызов"
entry $frm.ent_ram_sec entry $frm.ent_safe_call_memory_limit
$frm.ent_ram_sec insert end $default(ram_sec) $frm.ent_safe_call_memory_limit insert end $default(safe_call_memory_limit)
label $frm.lbl_ram_work -text "Объём памяти рабочих процессов" label $frm.lbl_memory_limit -text "Объём памяти рабочих процессов"
entry $frm.ent_ram_work entry $frm.ent_memory_limit
$frm.ent_ram_work insert end $default(ram_work) $frm.ent_memory_limit insert end $default(ram_work)
label $frm.lbl_base_on_process -text "Количество ИБ на процесс" label $frm.lbl_infobases_limit -text "Количество ИБ на процесс"
entry $frm.ent_base_on_process entry $frm.ent_infobases_limit
$frm.ent_base_on_process insert end $default(base_on_process) $frm.ent_infobases_limit insert end $default(infobases_limit)
label $frm.lbl_connection_on_process -text "Количество соединений на процесс" label $frm.lbl_connections_limit -text "Количество соединений на процесс"
entry $frm.ent_connection_on_process entry $frm.ent_connections_limit
$frm.ent_connection_on_process insert end $default(connection_on_process) $frm.ent_connections_limit insert end $default(connections_limit)
label $frm.lbl_manager_port -text "Порт главного менеджера кластера" label $frm.lbl_cluster_port -text "Порт главного менеджера кластера"
entry $frm.ent_manager_port entry $frm.ent_cluster_port
$frm.ent_manager_port insert end $default(port) $frm.ent_cluster_port insert end $default(port)
label $frm.lbl_manager_each_service -text "Менеджер под каждый сервис" label $frm.lbl_dedicate_managers -text "Менеджер под каждый сервис"
checkbutton $frm.ent_manager_each_service -variable dedicate_manager -onvalue all -offvalue none checkbutton $frm.check_dedicate_managers -variable dedicate_managers -onvalue all -offvalue none
label $frm.lbl_central_server -text "Центральный сервер" label $frm.lbl_using -text "Центральный сервер"
checkbutton $frm.ent_central_server -variable using_central_server -onvalue main -offvalue normal checkbutton $frm.check_using -variable using -onvalue main -offvalue normal
grid $frm.lbl_server_desc -row 0 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_name -row 0 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_server_desc -row 0 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_name -row 0 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_host -row 1 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_agent_host -row 1 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_host -row 1 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_agent_host -row 1 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_port -row 2 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_agent_port -row 2 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_port -row 2 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_agent_port -row 2 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_ports_range -row 3 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_port_range -row 3 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_ports_range -row 3 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_port_range -row 3 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_ram_max -row 4 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_safe_working_processes_memory_limit -row 4 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_ram_max -row 4 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_safe_working_processes_memory_limit -row 4 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_ram_sec -row 5 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_safe_call_memory_limit -row 5 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_ram_sec -row 5 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_safe_call_memory_limit -row 5 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_ram_work -row 6 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_memory_limit -row 6 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_ram_work -row 6 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_memory_limit -row 6 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_base_on_process -row 7 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_infobases_limit -row 7 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_base_on_process -row 7 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_infobases_limit -row 7 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_connection_on_process -row 8 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_connections_limit -row 8 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_connection_on_process -row 8 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_connections_limit -row 8 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_manager_port -row 9 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_cluster_port -row 9 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_manager_port -row 9 -column 1 -sticky nsew -padx 5 -pady 5 grid $frm.ent_cluster_port -row 9 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_manager_each_service -row 10 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_dedicate_managers -row 10 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_manager_each_service -row 10 -column 1 -sticky nw -padx 5 -pady 5 grid $frm.check_dedicate_managers -row 10 -column 1 -sticky nw -padx 5 -pady 5
grid $frm.lbl_central_server -row 11 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_using -row 11 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_central_server -row 11 -column 1 -sticky nw -padx 5 -pady 5 grid $frm.check_using -row 11 -column 1 -sticky nw -padx 5 -pady 5
.add.frm_btn.btn_ok configure -command { .add.frm_btn.btn_ok configure -command {
RunCommand "" "server insert \ RunCommand "" "server insert \
--agent-host=[.add.frm.ent_host get] \ --agent-host=[.add.frm.ent_agent_host get] \
--agent-port=[.add.frm.ent_port get] \ --agent-port=[.add.frm.ent_agent_port get] \
--port-range=[.add.frm.ent_ports_range get] \ --port-range=[.add.frm.ent_port_range get] \
--name=[.add.frm.ent_server_desc get] \ --name=[.add.frm.ent_name get] \
--using=$using_central_server \ --using=$using \
--infobases-limit=[.add.frm.ent_base_on_process get] \ --infobases-limit=[.add.frm.ent_infobases_limit get] \
--memory-limit=[.add.frm.ent_ram_work get] \ --memory-limit=[.add.frm.ent_memory_limit get] \
--connections-limit=[.add.frm.ent_connection_on_process get] \ --connections-limit=[.add.frm.ent_connections_limit get] \
--cluster-port=[.add.frm.ent_manager_port get] \ --cluster-port=[.add.frm.ent_cluster_port get] \
--dedicate-managers=$dedicate_manager \ --dedicate-managers=$dedicate_manager \
--safe-working-processes-memory-limit=[.add.frm.ent_ram_max get] \ --safe-working-processes-memory-limit=[.add.frm.ent_safe_working_processes_memory_limit get] \
--safe-call-memory-limit=[.add.frm.ent_ram_sec get] \ --safe-call-memory-limit=[.add.frm.ent_safe_call_memory_limit get] \
--cluster=$active_cluster $host" --cluster=$active_cluster $host"
Run::servers $tree $host $active_cluster Run::servers $tree $host $active_cluster
destroy .add destroy .add
} }
return $frm
} }
proc Add::work_server {tree host values} { proc Add::work_server {tree host values} {
Add::servers $tree $host $values return [Add::servers $tree $host $values]
} }
proc Add::infobase {tree host values} { proc Add::infobase {tree host values} {
Add::infobases $tree $host $values Add::infobases $tree $host $values
@ -923,37 +912,39 @@ proc Add::cluster {tree host values} {
} }
proc Add::rule {tree host values} { proc Add::rule {tree host values} {
global default active_cluster object infobase type server global default active_cluster object infobase object_type server infobase_name rule_type
set server $values set server $values
set frm [AddToplevel "Требование назначения функциональности" functional_grey_64] set frm [AddToplevel "Требование назначения функциональности" functional_grey_64]
set type [lindex $default(type) 0] #set type [lindex $default(obtype) 0]
label $frm.lbl_object -text "Объект требования" label $frm.lbl_object_type -text "Объект требования"
set combo_object [ttk::combobox $frm.cb_object \ ttk::combobox $frm.cb_object_type -textvariable object_type \
-textvariable object -values $default(object)] -values $default(object_type)]
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 "Значение доп. параметра" label $frm.lbl_rule_type -text "Тип требования"
entry $frm.ent_par ttk::combobox $frm.cb_rule_type -textvariable rule_type \
-values $default(rule_type)]
label $frm.lbl_infobase_name -text "Имя ИБ"
ttk::combobox $frm.cb_infobase_name -textvariable infobase_name \
-values [GetInfobases $active_cluster $host]]
label $frm.lbl_application_ext -text "Значение доп. параметра"
entry $frm.ent_application_ext
label $frm.lbl_priority -text "Приоритет" label $frm.lbl_priority -text "Приоритет"
entry $frm.ent_priority entry $frm.ent_priority
$frm.ent_priority insert end $default(priority) $frm.ent_priority insert end $default(priority)
grid $frm.lbl_object -row 0 -column 0 -sticky nw -padx 5 -pady 5 grid $frm.lbl_object_type -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.cb_object_type -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.lbl_rule_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.cb_rule_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.lbl_infobase_name -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.cb_infobase_name -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.lbl_application_ext -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.ent_application_ext -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.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 grid $frm.ent_priority -row 4 -column 1 -sticky nsew -padx 5 -pady 5
@ -962,14 +953,15 @@ proc Add::rule {tree host values} {
--cluster=$active_cluster \ --cluster=$active_cluster \
--server=$server \ --server=$server \
--position=0 \ --position=0 \
--object-type=$object \ --object-type=$object_type \
--infobase-name=$infobase \ --infobase-name=$infobase_name \
--rule-type=$type \ --rule-type=$rule_type \
--application-ext=[.add.frm.ent_par get] \ --application-ext=[.add.frm.ent_application_ext get] \
--priority=[.add.frm.ent_priority get] $host" --priority=[.add.frm.ent_priority get] $host"
Run::rule $tree $host $server Run::rule $tree $host $server
destroy .add destroy .add
} }
return $frm
} }
proc GetInfobases {cluster host} { proc GetInfobases {cluster host} {
@ -1035,7 +1027,7 @@ proc Edit::server {tree host value} {
close $file close $file
close $orig_file close $orig_file
#return "$host:$port" #return "$host:$port"
file delete [file join $dir(work) 1c_srv.cfg.bak] file delete [file join $dir(work) rac_gui .cfg.bak]
destroy .add destroy .add
return $host return $host
} }
@ -1092,8 +1084,28 @@ proc Edit::cluster {tree host values} {
destroy .add destroy .add
} }
} }
proc Edit::infobases {tree host values} {
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 $id -values]
set key [lindex [split $id "::"] 0]
set column_list [.frm_work.tree_work cget -columns]
set i 0
# проверка соответсвия колонки в таблице и ключа в дереве
foreach l $column_list {
if {$l eq "infobase" } {
set infobase [lindex $work_tree_values $i]
}
incr i
}
if {[info exists infobase] == 0 || $infobase eq ""} {
return
}
Edit::infobase $tree $host $infobase
}
proc Edit::infobase {tree host values} { proc Edit::infobase {tree host values} {
global default active_cluster infobase global default active_cluster infobase
global security_level dbms scheduled_jobs_deny license_distribution date_offset global security_level dbms scheduled_jobs_deny license_distribution date_offset
global sessions_deny global sessions_deny
set infobase $values set infobase $values
@ -1174,6 +1186,8 @@ proc Edit::infobase {tree host values} {
set $entry_name no set $entry_name no
} elseif {$value eq "1"} { } elseif {$value eq "1"} {
set $entry_name yes set $entry_name yes
} else {
set $entry_name $value
} }
} }
} }
@ -1207,3 +1221,129 @@ proc Edit::infobase {tree host values} {
destroy .add destroy .add
} }
} }
proc Edit::servers {tree host values} {
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 $id -values]
set key [lindex [split $id "::"] 0]
set column_list [.frm_work.tree_work cget -columns]
set i 0
# проверка соответсвия колонки в таблице и ключа в дереве
foreach l $column_list {
if {$l eq "server" } {
set work_server [lindex $work_tree_values $i]
}
incr i
}
if {[info exists work_server] == 0 || $work_server eq ""} {
return
}
Edit::work_server $tree $host $work_server
}
proc Edit::work_server {tree host values} {
global default active_cluster
global default dedicate_managers using
set server $values
set frm [Add::work_server $tree $host $values]
$frm configure -text "Редактирование рабочего сервера"
set lst [RunCommand cluster::$values "server info --cluster=$active_cluster --server=$server $host"]
foreach i [lindex $lst 0] {
if [regexp -nocase -all -- {(\D+)(\s*?|)(:)(\s*?|)(.*)} $i match param v2 v3 v4 value] {
regsub -all -- "-" [string trim $param] "_" entry_name
if [winfo exists .add.frm.ent_$entry_name] {
.add.frm.ent_$entry_name delete 0 end
.add.frm.ent_$entry_name insert end [string trim $value "\""]
}
if [winfo exists .add.frm.cb_$entry_name] {
set $entry_name [string trim $value "\""]
}
if [winfo exists .add.frm.check_$entry_name] {
set $entry_name $value
}
}
}
.add.frm.lbl_agent_port configure -state disable
.add.frm.ent_agent_port configure -state disable
.add.frm.lbl_port_range configure -state disable
.add.frm.ent_port_range configure -state disable
.add.frm.lbl_name configure -state disable
.add.frm.ent_name configure -state disable
.add.frm.lbl_cluster_port configure -state disable
.add.frm.ent_cluster_port configure -state disable
.add.frm_btn.btn_ok configure -command {
RunCommand "" "server update \
--server=$server \
--using=$using \
--infobases-limit=[.add.frm.ent_infobases_limit get] \
--memory-limit=[.add.frm.ent_memory_limit get] \
--connections-limit=[.add.frm.ent_connections_limit get] \
--dedicate-managers=$dedicate_managers \
--safe-working-processes-memory-limit=[.add.frm.ent_safe_working_processes_memory_limit get] \
--safe-call-memory-limit=[.add.frm.ent_safe_call_memory_limit get] \
--cluster=$active_cluster $host"
Run::servers $tree $host $active_cluster
destroy .add
}
}
proc Edit::rule {tree host values} {
global default active_cluster object_type infobase_name object_type server infobase_name rule_type rule
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 $id -values]
set key [lindex [split $id "::"] 0]
set column_list [.frm_work.tree_work cget -columns]
set i 0
# проверка соответсвия колонки в таблице и ключа в дереве
foreach l $column_list {
if {$l eq "rule" } {
set rule [lindex $work_tree_values $i]
}
incr i
}
if {[info exists rule] == 0 || $rule eq ""} {
return
}
set frm [Add::rule $tree $host $server]
$frm configure -text "Редактирование требования назначения функциональности"
puts "cluster = $active_cluster\nserver=$server\nrule=$rule"
set lst [RunCommand "" "rule info --cluster=$active_cluster --server=$server --rule=$rule $host"]
foreach i [lindex $lst 0] {
if [regexp -nocase -all -- {(\D+)(\s*?|)(:)(\s*?|)(.*)} $i match param v2 v3 v4 value] {
regsub -all -- "-" [string trim $param] "_" entry_name
if [winfo exists .add.frm.ent_$entry_name] {
.add.frm.ent_$entry_name delete 0 end
.add.frm.ent_$entry_name insert end [string trim $value "\""]
}
if [winfo exists .add.frm.cb_$entry_name] {
set $entry_name [string trim $value "\""]
}
if [winfo exists .add.frm.check_$entry_name] {
set $entry_name $value
}
}
}
.add.frm_btn.btn_ok configure -command {
RunCommand "" "rule update \
--cluster=$active_cluster \
--server=$server \
--rule=$rule \
--position=0 \
--object-type=$object_type \
--infobase-name=$infobase_name \
--rule-type=$rule_type \
--application-ext=[.add.frm.ent_application_ext get] \
--priority=[.add.frm.ent_priority get] $host"
Run::rule $tree $host $server
destroy .add
}
}

View File

@ -16,15 +16,15 @@ set default(locale) "ru"
# Порт RAS # Порт RAS
set default(port) 1540 set default(port) 1540
# Диапазон портов # Диапазон портов
set default(ports_range) 1560:1591 set default(port_range) 1560:1591
# Количество инф. баз на процесс # Количество инф. баз на процесс
set default(base_on_process) 8 set default(infobases_limit) 8
# Количество соединений на процесс # Количество соединений на процесс
set default(connection_on_process) 128 set default(connections_limit) 128
# Максимальный объём памяти раб. процессов # Максимальный объём памяти раб. процессов
set default(ram_max) 0 set default(safe_working_processes_memory_limit) 0
# Безопасный расход памяти за вызов # Безопасный расход памяти за вызов
set default(ram_sec) 0 set default(safe_call_memory_limit) 0
# Объём памяти рабочих процессов, до которого сервер считается производительным # Объём памяти рабочих процессов, до которого сервер считается производительным
set default(ram_work) 0 set default(ram_work) 0
set default(dbms) { set default(dbms) {
@ -40,7 +40,7 @@ set default(dbms) {
set default(secure_level) [list 0 1 2] set default(secure_level) [list 0 1 2]
set default(date_offset) [list 0 2000] set default(date_offset) [list 0 2000]
# Объект требования # Объект требования
set default(object) { set default(object_type) {
LicenseService LicenseService
EventLogService EventLogService
OpenID2ProviderContextService OpenID2ProviderContextService
@ -69,7 +69,7 @@ set default(object) {
# auto - отсутствие правила (по-умолчанию) # auto - отсутствие правила (по-умолчанию)
# always - распределять только на данный сервер # always - распределять только на данный сервер
# never - не распределять на данный сервер # never - не распределять на данный сервер
set default(type) { set default(rule_type) {
auto auto
always always
never never
@ -107,6 +107,3 @@ set default(load_balancing_mode) {
# цвета строк в таблице # цвета строк в таблице
set color(dark_table_bg) "#e2e2e2" set color(dark_table_bg) "#e2e2e2"
set color(light_table_bg) "#ffffff" set color(light_table_bg) "#ffffff"

View File

@ -9,14 +9,14 @@ exec wish "$0" -- "$@"
# Home page: https://bitbucket.org/svk28/rac-gui # Home page: https://bitbucket.org/svk28/rac-gui
###################################################### ######################################################
#source [file join [pwd] 1c_srv.cfg]
set dir(root) [pwd] set dir(root) [pwd]
set dir(work) [file join $env(HOME) .rac_gui] set dir(work) [file join $env(HOME) .rac_gui]
if {[file exists $dir(work)] == 0 } { if {[file exists $dir(work)] == 0 } {
file mkdir $dir(work) file mkdir $dir(work)
} }
set dir(msg) "[file join $dir(root) msgs]"
set dir(lib) "[file join $dir(root) lib]"
if {[file exists [file join $dir(work) rac_gui.cfg]] ==0} { if {[file exists [file join $dir(work) rac_gui.cfg]] ==0} {
file copy [file join [pwd] rac_gui.cfg] [file join $dir(work) rac_gui.cfg] file copy [file join [pwd] rac_gui.cfg] [file join $dir(work) rac_gui.cfg]
@ -24,6 +24,27 @@ if {[file exists [file join $dir(work) rac_gui.cfg]] ==0} {
source [file join $dir(work) rac_gui.cfg] source [file join $dir(work) rac_gui.cfg]
if {[file exists $rac_cmd] == 0} {
set rac_cmd [tk_getOpenFile -initialdir $env(HOME) -parent . -title "Укажите путь до rac" -initialfile rac]
file copy [file join $dir(work) rac_gui.cfg] [file join $dir(work) rac_gui.cfg.bak]
set orig_file [open [file join $dir(work) rac_gui.cfg.bak] "r"]
set file [open [file join $dir(work) rac_gui.cfg] "w"]
while {[gets $orig_file line] >=0 } {
if {[string match "set rac_cmd*" $line]} {
puts $file "set rac_cmd $rac_cmd"
} else {
puts $file $line
}
}
close $file
close $orig_file
#return "$host:$port"
file delete [file join $dir(work) 1c_srv.cfg.bak]
} else {
puts "Found $rac_cmd"
}
set dir(msg) "[file join $dir(root) msgs]" set dir(msg) "[file join $dir(root) msgs]"
set dir(lib) "[file join $dir(root) lib]" set dir(lib) "[file join $dir(root) lib]"
@ -46,8 +67,6 @@ foreach modFile [lsort [glob -nocomplain [file join $dir(lib) *.tcl]]] {
} }
} }
source [file join $dir(lib) gui.tcl] source [file join $dir(lib) gui.tcl]
puts "$rac_cmd $dir(lib)"
source [file join $dir(work) rac_gui.cfg] source [file join $dir(work) rac_gui.cfg]
if [file exists [file join $dir(work) 1c_srv.cfg]] { if [file exists [file join $dir(work) 1c_srv.cfg]] {
@ -75,5 +94,3 @@ if [file exists [file join $dir(work) 1c_srv.cfg]] {
# #option add *Frame.Background $editor(bg) interactive # #option add *Frame.Background $editor(bg) interactive
# option add *ScrollableFrame.Background $editor(bg) interactive # option add *ScrollableFrame.Background $editor(bg) interactive
# option add *ScrolledWindow.Background $editor(bg) interactive # option add *ScrolledWindow.Background $editor(bg) interactive