второй вариант работает в случае если переменная как параметр не передавалась.An писал(а):первый вариант работает, второй - нет. (v.5.2.001update4)Magnum72 писал(а):через ком строку они не передаются, надо внутри скрипта прописывать:
<set dst="payment_date" value="now()"/>
или
<parameter name="unixtime" value="now()"/>
Опыт установки 5.3 на боевом сервере
Попробуйте для начала Java VM обновить, стали собирать админку 7й версией Java.Groggy писал(а):Запускаю Админку... для upd6Point писал(а):а в то же время тихо выложили 5.3.001-u6
Java Virtual Machine Launcher
Could not find the main class:
biz.netup.projects.utmadmin.StartAdmin.
Program will exit.
upd4 Админка запускается без проблем
Java 6 upd 26
Админка или Java виновата ?
Поставил Update 6
Какие то новые ошибки.
Влил лицензионный ключ по этому 1 ругалка Unknown module <utm5_dhcp> ничего страшного до 5.3.002?
2. Какие то новые модули добавились ?
3. Остальные ругалки не критичны и что значат? Верификатор не появляется.
Какие то новые ошибки.
Влил лицензионный ключ по этому 1 ругалка Unknown module <utm5_dhcp> ничего страшного до 5.3.002?
2. Какие то новые модули добавились ?
3. Остальные ругалки не критичны и что значат? Верификатор не появляется.
Код: Выделить всё
Mar 24 20:51:20 ERROR : a14f7740 LicenseCenter: Unknown module <utm5_dhcp>
Mar 24 20:51:20 ERROR : a14f7740 PluginManagerImpl: plugin <ICReportsPlugin> not loaded due to license limitations
Mar 24 20:51:20 ERROR : a14f7740 PluginManagerImpl: plugin <ICSettingsPlugin> not loaded due to license limitations
Mar 24 20:51:20 ERROR : a14f7740 PluginManagerImpl: plugin <ICRequiredPaymentsPlugin> not loaded due to license limitations
Mar 24 20:51:20 ERROR : a14f7740 PluginManagerImpl: plugin <ICRequiredBillsPlugin> not loaded due to license limitations
Mar 24 20:51:20 ERROR : a14f7740 PluginManagerImpl: plugin <ICRequiredCustomersPlugin> not loaded due to license limitations
Mar 24 20:51:20 ERROR : a14f7740 TrafficAggregator: failed to open NetUP Classifier Traffic File </netup/utm5/log/traffic.dat>
Mar 24 20:51:20 *ALERT : a14f7740 ModTop: License not found. liburfa-ic plugin not loaded!
Mar 24 20:51:20 ERROR : a14f7740 RPCFMan: Licence verification failure for lib liburfa-ic
Mar 24 20:51:20 *ALERT : a14f7740 ModTop: License not found. liburfa-client plugin not loaded!
Mar 24 20:51:20 ERROR : a14f7740 RPCFMan: Licence verification failure for lib liburfa-client
Mar 24 20:51:20 ERROR : a14f7740 ModTop: License not found. liburfa-hotspot plugin not loaded!
Mar 24 20:51:20 ERROR : a14f7740 RPCFMan: Licence verification failure for lib liburfa-hotspot
Mar 24 20:51:20 *ALERT : a14f7740 ModTop: License not found. liburfa-dealer plugin not loaded!
Mar 24 20:51:20 ERROR : a14f7740 RPCFMan: Licence verification failure for lib liburfa-dealer
Mar 24 20:59:47 ERROR : 96fef700 DBAExistingError: DBAccess::get_sys_user: user not exists
Mar 24 20:59:47 Warn : 96fef700 RPCServer@X.X.X.X: __rpcf_get_sys_user: DBAExistingError: DBAccess::get_sys_user: user not exists
Mar 24 21:01:02 ERROR : 96fef700 UTM5 DBA: delete_tariff_plan: attempt to remove still used tariff plan, accounts_linked 3, next_accounts_linked 3
Mar 24 21:01:02 ERROR : 97efe700 DynaShapePlugin: shaping for service_id 86 not defined
Mar 24 21:01:02 ERROR : 97dfd700 DBAGenericError: no registered plugin for event
Mar 24 21:01:02 ERROR : 96fef700 UTM5 DBA: delete_tariff_plan: attempt to remove still used tariff plan, accounts_linked 1, next_accounts_linked 1
Mar 24 21:01:02 ERROR : 97efe700 DBAGenericError: no registered plugin for event
Mar 24 21:01:02 ERROR : 97dfd700 DBAGenericError: no registered plugin for event
Mar 24 21:02:19 ERROR : 96fef700 UTM5 DBA: delete_tariff_plan: attempt to remove still used tariff plan, accounts_linked 1, next_accounts_linked 1
Mar 24 21:02:23 ERROR : 96fef700 UTM5 DBA: delete_tariff_plan: attempt to remove still used tariff plan, accounts_linked 3, next_accounts_linked 3
Mar 24 21:08:01 Warn : 96cec700 RPCConn[SSL]<zem@X.X.X.X>: Session Data packet: Internal Error!
Помогло обновление до 7 update 51serjk писал(а):Попробуйте для начала Java VM обновить, стали собирать админку 7й версией Java.Groggy писал(а):Запускаю Админку... для upd6Point писал(а):а в то же время тихо выложили 5.3.001-u6
Java Virtual Machine Launcher
Could not find the main class:
biz.netup.projects.utmadmin.StartAdmin.
Program will exit.
upd4 Админка запускается без проблем
Java 6 upd 26
Админка или Java виновата ?
БАГ с RFW
Пробывал на utm 5.3.001 update 6 и на 5.3.002 rc1
1.Ставлю rfw на машину с freebsd 9 запускаем руками вижу что все ок по логам и вообще. В админке утм Список брэндмауеров он зеленого цвета. Правила отрабатываются без проблем.
2. Тестирую как запускается rfw после рестарта сервера.
Родной скрипт лежит /usr/local/etc/rc.d/utm5_rfw.sh
При загрузке машины с rfw вижу что скрипт на запуск отрабатывает и благополучно падает.
В логах rfw
Ну а в логах самого биллинга вот такое
Биллинг считает что rfw как бы и был подключен (хотя машина с rfw упала).
При этом цвет с зеленого на белый в админке утм Список брэндмауеров меняется спустя 10 минут.
P.S. если погасить машину с rfw на 10 минут ядро утма считает что все таки 1 из брэндмауеров упал
в логе ядра
Ребутаю машину с rfw и вуаля все запускается как надо.
Поправьте эту ситуацию что если машина с rfw падает то биллинг определял бы это по прошествии хотя бы секунд 30.
Сделайте такое в админке Список брэндмауеров если машина с rfw хоть раз успешно законектилась то цвет зеленый. Если после этого отвалилась то цвет красный а не белый как сейчас.
UPD
Отдельно скажу - что если у Вас quagga и внутренние сетки затягивается по ospf то utm5_rfw пытается зацепиться к машине ядром по любому доступному интерфейсу например по внешнему
Тут ошибка закономерна так как у меня залочено на внутренние IP в админке утм касательно пользователя rfw.
Выход такой в скрипт запуска rfw добавляем sleep 10 и вуаля rfw будет благополучно цепляться через внутренний ифейс.
Разработчикам на размышление как по красивее выйти из такой ситуации.
Пробывал на utm 5.3.001 update 6 и на 5.3.002 rc1
1.Ставлю rfw на машину с freebsd 9 запускаем руками вижу что все ок по логам и вообще. В админке утм Список брэндмауеров он зеленого цвета. Правила отрабатываются без проблем.
2. Тестирую как запускается rfw после рестарта сервера.
Родной скрипт лежит /usr/local/etc/rc.d/utm5_rfw.sh
При загрузке машины с rfw вижу что скрипт на запуск отрабатывает и благополучно падает.
В логах rfw
Код: Выделить всё
Mar 26 12:58:33 Notice: 2c07400 UTM5 RFW: Version 5.3-002-beta1-bsd9_x64 starting.
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: Registering message handlers..
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: ID <0x4003> handler <0x02c17480>
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: ID <0x4000> handler <0x02c17480>
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: ID <0x4001> handler <0x02c17480>
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: ID <0x4004> handler <0x02c17480>
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: ID <0x4002> handler <0x02c17480>
Mar 26 12:58:33 ?Debug : 2c07400 ModTop: Socket connected to: host <172.28.100.9> port <12758>
Mar 26 12:58:33 Info : 2c07c00 StreamConnection: Connection thread started. Peer [172.28.100.9]:12758
Mar 26 12:58:33 ?Debug : 2c07c00 StreamConnection: Connection using SSLv3
Mar 26 12:58:33 ?Debug : 2c07c00 StreamConnection: System message <-31> recived
Mar 26 12:58:33 ?Debug : 2c07c00 StreamConnection: Challenge response sent
Mar 26 12:58:33 ?Debug : 2c07c00 StreamConnection: System message <-33> recived
Mar 26 12:58:33 Info : 2c07c00 StreamConnection: Connection successfully authorized, user id <-4>
Mar 26 12:58:33 ?Debug : 2c07400 StreamFirewall: Sending name: test
Mar 26 12:58:33 ?Debug : 2c07400 StreamConnection: Sending message ID 0x3000
Mar 26 12:58:33 ?Debug : 2c07c00 StreamConnection: Got message ID 0x4000
Mar 26 12:58:33 ERROR : 2c07c00 StreamFirewall: Error occured: remote firewall is already connected
Mar 26 12:58:38 Info : 2c07400 UTM5 RFW: Terminating firewall: remote firewall is already connected
Mar 26 12:58:38 Info : 2c07400 RFW Config: Pid file found: /var/run/utm5_rfw.pid; Overwriting
<LAST LINE>
Код: Выделить всё
Mar 26 12:58:33 ERROR : c8ca5700 RemoteFirewallManager: remote firewall <test> is already connected
При этом цвет с зеленого на белый в админке утм Список брэндмауеров меняется спустя 10 минут.
P.S. если погасить машину с rfw на 10 минут ядро утма считает что все таки 1 из брэндмауеров упал
в логе ядра
Код: Выделить всё
Mar 26 13:07:55 ERROR : c8da6700 StreamConnection: SSL read error (-1, 5, errno 110)
Mar 26 13:08:15 ERROR : c99b2700 RemoteFirewallManager: fw@test: connection lost
Поправьте эту ситуацию что если машина с rfw падает то биллинг определял бы это по прошествии хотя бы секунд 30.
Сделайте такое в админке Список брэндмауеров если машина с rfw хоть раз успешно законектилась то цвет зеленый. Если после этого отвалилась то цвет красный а не белый как сейчас.
UPD
Отдельно скажу - что если у Вас quagga и внутренние сетки затягивается по ospf то utm5_rfw пытается зацепиться к машине ядром по любому доступному интерфейсу например по внешнему
Код: Выделить всё
Mar 26 13:17:46 ERROR : c8da6700 StreamConnection: IP check failed for <rfw> (IP 109.197.X.X)
Выход такой в скрипт запуска rfw добавляем sleep 10 и вуаля rfw будет благополучно цепляться через внутренний ифейс.
Разработчикам на размышление как по красивее выйти из такой ситуации.
Баги в 5.3-002 RC1:
1) При выставлении ежемесячных счетов абонентам с подключенной услугой от компании Рентсофт, в поле НДС появляется сумма = сумме стоимости продукта.
Возможно это баг предыдущей версии, так как переход на RC1 состоялся в текущем месяце. Желательно проверить.
2) При формировании счетов в админке:

1) При выставлении ежемесячных счетов абонентам с подключенной услугой от компании Рентсофт, в поле НДС появляется сумма = сумме стоимости продукта.
Возможно это баг предыдущей версии, так как переход на RC1 состоялся в текущем месяце. Желательно проверить.
2) При формировании счетов в админке:

Последний раз редактировалось kirush Чт мар 27, 2014 17:17, всего редактировалось 1 раз.
Я иногда разработчиков ненавижу, из-за того что в 5.3 убрали функцию rpcf_delete_from_ipgroup теперь такой геморрой удалить IP адрес:
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<!-- ######################### USAGE: ##############################################
del_grey_ip_from_grey_ip -account_id ip_address_old
#################################################################################### -->
<!-- Proverka version core -->
<parameter name="core" value="53"/>
<call function="rpcf_core_version" output="0"/>
<if variable="core_version" value="5.2.1" condition="eq">
<set dst="core" value="52"/>
</if>
<parameter name="account_id" value=""/>
<parameter name="ip_address_old" value=""/>
<!-- ######################### FOR CORE 5.2 ######################################## -->
<if variable="core" value="52" condition="eq">
<!-- Poluchenie User ID -->
<call function="rpcf_get_user_by_account" output="0"/>
<!-- Poluchaem vse uslugi u polzovatela -->
<call function="rpcf_get_all_services_for_user" output="0"/>
<for name="i" from="0" count="slink_id_count">
<set dst="service_type_tmp" src="service_type_array" src_index="i"/>
<!-- Esli usluga yavliaetsia IP Traffic -->
<if variable="service_type_tmp" value="3" condition="eq">
<set dst="slink_id" src="slink_id_array" src_index="i"/>
<call function="rpcf_get_iptraffic_service_link"/>
<for name="j" from="0" count="ip_groups_count">
<set dst="ip_address_tmp" src="ip_address" src_index="j"/>
<if variable="ip_address_tmp" value="ip_address_old" condition="eq">
<set dst="ip_address" src="ip_address_tmp"/>
<call function="rpcf_delete_from_ipgroup"/>
<break/>
</if>
</for>
</if>
</for>
</if>
<!-- ######################### FOR CORE 5.3 ######################################## -->
<if variable="core" value="53" condition="eq">
<!-- Poluchenie User ID -->
<call function="rpcf_get_user_by_account" output="0"/>
<!-- Poluchaem vse uslugi u polzovatela -->
<call function="rpcf_get_all_services_for_user" output="0"/>
<for name="i" from="0" count="slink_id_count">
<set dst="service_type_tmp" src="service_type_array" src_index="i"/>
<!-- Esli usluga yavliaetsia IP Traffic -->
<if variable="service_type_tmp" value="3" condition="eq">
<set dst="service_type" src="service_type_array" src_index="i"/>
<set dst="slink_id" src="slink_id_array" src_index="i"/>
<!-- Poluchaem dannie po usluge IP Traffic -->
<remove name="ip_address"/>
<remove name="mask"/>
<remove name="mac"/>
<remove name="iptraffic_login"/>
<remove name="iptraffic_password"/>
<remove name="iptraffic_allowed_cid"/>
<remove name="ip_not_vpn"/>
<remove name="dont_use_fw"/>
<remove name="router_id"/>
<remove name="switch_id"/>
<remove name="port_id"/>
<remove name="vlan_id"/>
<remove name="pool_id"/>
<call function="rpcf_get_iptraffic_service_link_ipv6" output="0"/>
<for name="j" from="0" count="size(ip_address)">
<set dst="ip_address_tmp" src="ip_address" src_index="j"/>
<!-- Perekladivaem IP sviazki za isklucheniem nenujnogi IP adresa -->
<if variable="ip_address_tmp" value="ip_address_old" condition="ne">
<set dst="ip_address_array_tmp" dst_index="size(ip_address_array_tmp)" src="ip_address" src_index="j"/>
<set dst="mask_array_tmp" dst_index="size(mask_array_tmp)" src="mask" src_index="j"/>
<set dst="mac_array_tmp" dst_index="size(mac_array_tmp)" src="mac" src_index="j"/>
<set dst="iptraffic_login_array_tmp" dst_index="size(iptraffic_login_array_tmp)" src="iptraffic_login" src_index="j"/>
<set dst="iptraffic_password_array_tmp" dst_index="size(iptraffic_password_array_tmp)" src="iptraffic_password" src_index="j"/>
<set dst="iptraffic_allowed_cid_array_tmp" dst_index="size(iptraffic_allowed_cid_array_tmp)" src="iptraffic_allowed_cid" src_index="j"/>
<set dst="ip_not_vpn_array_tmp" dst_index="size(ip_not_vpn_array_tmp)" src="ip_not_vpn" src_index="j"/>
<set dst="dont_use_fw_array_tmp" dst_index="size(dont_use_fw_array_tmp)" src="dont_use_fw" src_index="j"/>
<set dst="router_id_array_tmp" dst_index="size(router_id_array_tmp)" src="router_id" src_index="j"/>
<set dst="switch_id_array_tmp" dst_index="size(switch_id_array_tmp)" src="switch_id" src_index="j"/>
<set dst="port_id_array_tmp" dst_index="size(port_id_array_tmp)" src="port_id" src_index="j"/>
<set dst="vlan_id_array_tmp" dst_index="size(vlan_id_array_tmp)" src="vlan_id" src_index="j"/>
<set dst="pool_id_array_tmp" dst_index="size(pool_id_array_tmp)" src="pool_id" src_index="j"/>
<set dst="ip_groups_count_tmp" value="size(ip_address_array_tmp)"/>
</if>
</for>
<!-- Esli perekladivali ne zria, to vozvrachaem massivi i pravim IP sviazku -->
<if variable="ip_groups_count_tmp" value="ip_groups_count" condition="ne">
<remove name="ip_address"/>
<remove name="mask"/>
<remove name="mac"/>
<remove name="iptraffic_login"/>
<remove name="iptraffic_password"/>
<remove name="iptraffic_allowed_cid"/>
<remove name="ip_not_vpn"/>
<remove name="dont_use_fw"/>
<remove name="router_id"/>
<remove name="switch_id"/>
<remove name="port_id"/>
<remove name="vlan_id"/>
<remove name="pool_id"/>
<for name="k" from="0" count="size(ip_address_array_tmp)">
<set dst="ip_address" dst_index="size(ip_address)" src="ip_address_array_tmp" src_index="k" />
<set dst="mask" dst_index="size(mask)" src="mask_array_tmp" src_index="k" />
<set dst="mac" dst_index="size(mac)" src="mac_array_tmp" src_index="k" />
<set dst="iptraffic_login" dst_index="size(iptraffic_login)" src="iptraffic_login_array_tmp" src_index="k" />
<set dst="iptraffic_password" dst_index="size(iptraffic_password)" src="iptraffic_password_array_tmp" src_index="k" />
<set dst="iptraffic_allowed_cid" dst_index="size(iptraffic_allowed_cid)" src="iptraffic_allowed_cid_array_tmp" src_index="k" />
<set dst="ip_not_vpn" dst_index="size(ip_not_vpn)" src="ip_not_vpn_array_tmp" src_index="k" />
<set dst="dont_use_fw" dst_index="size(dont_use_fw)" src="dont_use_fw_array_tmp" src_index="k" />
<set dst="router_id" dst_index="size(router_id)" src="router_id_array_tmp" src_index="k" />
<set dst="switch_id" dst_index="size(switch_id)" src="switch_id_array_tmp" src_index="k" />
<set dst="port_id" dst_index="size(port_id)" src="port_id_array_tmp" src_index="k" />
<set dst="vlan_id" dst_index="size(vlan_id)" src="vlan_id_array_tmp" src_index="k" />
<set dst="pool_id" dst_index="size(pool_id)" src="pool_id_array_tmp" src_index="k" />
</for>
<set dst="ip_groups_count" value="size(ip_address)"/>
<call function="rpcf_edit_iptraffic_service_link_ipv6"/>
<break/>
</if>
</if>
</for>
</if>
</urfa>
Функция была удалена, т.к. противоречила новому API ядра (все манипуляции с IP-группами убраны в ф-ции добавления/редактирования сервисных связок передачи трафика, идентификаторы адресов item_id отсутствуют в интерфейсе).Magnum72 писал(а):Я иногда разработчиков ненавижу, из-за того что в 5.3 убрали функцию rpcf_delete_from_ipgroup теперь такой геморрой удалить IP адрес:
На сколько знаю, Вы уже общались с техподдержкой на эту тему. Постараемся найти компромиссное решение.
Обращался, сюда выложил код для облегчения страданий другим.
Компромиссные решения:
1) Доработать оператор REMOVE, тем более что судя по документации он должен уметь удалять элемент массива:
2) Добавить возможность выносить куски кода в отдельные функции, т.е. создавать пользовательские функции
3) Восстановить функцию
Компромиссные решения:
1) Доработать оператор REMOVE, тем более что судя по документации он должен уметь удалять элемент массива:
Код: Выделить всё
remove – удаляет элемент массива либо весь массив, имя которого должно присутствовать в свойстве
3) Восстановить функцию
Разработчикам:
1) Не совпадают параметры action и what в функциях rpcf_get_user_log и rpcf_add_user_log
2) Как можно добавлять свои типы?
3) Странное обозначение экшина "Users group operations"
Идентификаторы переменной what для функции rpcf_add_user_log:
1) Не совпадают параметры action и what в функциях rpcf_get_user_log и rpcf_add_user_log
2) Как можно добавлять свои типы?
3) Странное обозначение экшина "Users group operations"
Идентификаторы переменной what для функции rpcf_add_user_log:
Код: Выделить всё
1 Коррекция позиций счета
2 Коррекция баланса
3 Добавление пользователя
4 Редактирование пользователя
5 Удаление пользователя
6 Добавление IP группы
7 Редактирование IP группы
8 Добавление группы пользователей
9 Удаление группы пользователей
10 Редактирование пользователя
11 Добавление пользователя в группу
12 Удаление пользователя из группы
13 Добавление лицевого счета
14 Редактирование лицевого счета
15 Добавление услуги
16 Редактирование услуги
17 Users group operations
18 Добавление тарифа
19 Редактирование тарифа
20 Удаление тарифа
21 Добавление пользователя в тариф
22 Удаление пользователя из тарифа
23 Отвязывание тарифа от лицевого счета
24 Связывание тарифа с лицевым счетом
25 Добавление дополнительного параметра настроек
26 Редактирование дополнительного параметра настроек
27 Удаление дополнительного параметра настроек
Оператор добавим, функцию в том или ином виде восстановим (с поправкой на новые интерфейсы API ядра).Magnum72 писал(а):Обращался, сюда выложил код для облегчения страданий другим.
Компромиссные решения:
1) Доработать оператор REMOVE, тем более что судя по документации он должен уметь удалять элемент массива:3) Восстановить функциюКод: Выделить всё
remove – удаляет элемент массива либо весь массив, имя которого должно присутствовать в свойстве
Все еще некорректное описание функции:
<function name="rpcf_generate_doc_for_user_new" id="0x7039">
<input>
<integer name="doc_type_id"/>
<integer name="uid" comment="Required parameter" default="0" />
<integer name="base_id" comment="account_id"/>
<integer name="doc_template_id" default="0"/>
</input>
параметр "base_id" не требуется для работы функции, но является обязательным, поэтому должен присутствовать хотя бы пустым, или все таки это ID аккаунта таким образом задается?.
<function name="rpcf_generate_doc_for_user_new" id="0x7039">
<input>
<integer name="doc_type_id"/>
<integer name="uid" comment="Required parameter" default="0" />
<integer name="base_id" comment="account_id"/>
<integer name="doc_template_id" default="0"/>
</input>
параметр "base_id" не требуется для работы функции, но является обязательным, поэтому должен присутствовать хотя бы пустым, или все таки это ID аккаунта таким образом задается?.