forum.bitel.ru http://forum.bitel.ru/ |
|
[6.2] MikrotikServiceActivator http://forum.bitel.ru/viewtopic.php?f=44&t=11842 |
Страница 1 из 2 |
Автор: | borisk [ 03 авг 2016, 19:15 ] |
Заголовок сообщения: | [6.2] MikrotikServiceActivator |
Добрый день! Пытаюсь скрестить bgb с Mikrotik. Вроде все уже тысячи раз проделывал, но как всегда грабли поджидают в неожиданном месте. Итак: 1) Wiki про скрещивание с Mikrotik прочитал 2) Пока балуюсь, пытаясь понять как работает активатор. Создал тип устройства с нужным SA, создал устройство. Прописал логин и пароль. Создал сервис. В конфигурации устройства прописал две простые команды: Цитата: sa.command.serv.enable=/queue/simple/add\n=name=test\n=target=1.1.1.1/32 sa.command.serv.disable=/queue/simple/remove\n=numbers=test Все, больше ничего не прописывал. Теперь тупо "открыт/закрыт" сервис. Так вот - почему-то выполняется только первая команда. То есть: Перевел сервис в "закрыт" - сервис состояние поменял и в логе видно, что команда выполнилась и ответ !done получен. Теперь делаем "открыт" - и ничего не происходит. Сервис состояние не меняет, в логах тоже тишина. Перезапускаем access - и опа, наша команда выполнилась и сервис состояние поменял. Помогите люди добрые? уже всю голову сломал что за глюк такой. Цитата: Информация о версии:
Клиент: вер. 6.2.834 / 02.08.2016 15:13:52 os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.8.0_101 Сервер: вер. 6.2.1103 / 03.08.2016 14:58:59 os: FreeBSD; java: OpenJDK 64-Bit Server VM, v.1.8.0_92 ВНИМАНИЕ: Виртуальная машина OpenJDK 64-Bit Server VM не рекомендуется bill: вер. 6.2.87 / 10.06.2016 13:28:18 card: вер. 6.2.39 / 26.05.2016 14:50:45 dialup: вер. 6.2.315 / 01.03.2016 00:17:59 email: вер. 6.2.176 / 01.03.2016 00:18:32 inet: вер. 6.2.679 / 03.08.2016 14:59:10 ipn: вер. 6.2.259 / 06.07.2016 19:29:33 mps: вер. 6.2.214 / 14.07.2016 16:43:28 npay: вер. 6.2.196 / 20.07.2016 09:56:08 phone: вер. 6.2.279 / 06.06.2016 12:50:07 reports: вер. 6.2.210 / 02.08.2016 15:17:51 ru.bitel.bgbilling.plugins.documents: вер. 6.2.171 / 11.07.2016 17:46:28 ru.bitel.bgbilling.plugins.organizer: вер. 6.2.71 / 01.03.2016 00:18:34 voiceip: вер. 6.2.190 / 03.03.2016 18:32:27 wellpay: вер. ? Окружение: Клиент: os: Windows XP x86, 5.1 java: Java HotSpot(TM) Client VM, v.1.8.0_101 jre home: C:\Program Files\Java\jre1.8.0_101 default tz: 03.08.2016 18:15 YEKT +0500 (Asia/Yekaterinburg) user tz: 03.08.2016 18:15 UZT +0500 (Asia/Tashkent) locale: ru_RU Сервер: os: FreeBSD amd64, 10.2-RELEASE-p9 java: OpenJDK 64-Bit Server VM, v.1.8.0_92 jre home: /usr/local/openjdk8/jre default tz: 03.08.2016 18:15 YEKT +0500 (Asia/Yekaterinburg) db time: master: 03.08.2016 18:15 YEKT db charset: connection: utf8(utf8_unicode_ci), database: utf8(utf8_general_ci) locale: ru_RU uptime: Started: 03.08.2016 17:47:41 Uptime: 0 d 00:27:47 |
Автор: | snark [ 04 авг 2016, 14:44 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
На просторах этих ваших интернетов столько срачей на предмет того, что работа МТ-шного API ведет себя по разному в зависимости от версии ROS и иногда бывает вообще не работоспособной, что проще забить на API и использовать telnet/SSH. Что именно в API есть такого, что нельзя реализовать через telnet/SSH? |
Автор: | ok-2004 [ 04 авг 2016, 15:44 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
хм, а у меня почему-то вот так уже не первый год работаетъ: Код: a.command.serv.create.1=/ip/firewall/address-list/add\n=address=$ip/29\n=list=ACCESS_LIST\n=comment=!!$servId!!\n=disabled=yes sa.command.serv.create.2=/queue/simple/add\n=max-limit=0/100M\n=target=vlan$vlan\n=name=vlan$vlan\n=comment=vlan$vlan sa.command.serv.enable=/ip/firewall/address-list/enable\n=numbers="!!$servId!!" sa.command.serv.disable=/ip/firewall/address-list/disable\n=numbers="!!$servId!!" sa.command.serv.cancel.1=/ip/firewall/address-list/remove\n=numbers="!!$servId!!" sa.command.serv.cancel.2=/queue/simple/remove\n=numbers=vlan$vlan sa.command.inetOption.1.enable=/queue/simple/set\n=max-limit=0/100M\n=numbers=vlan$vlan sa.command.inetOption.1.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.26.enable=/queue/simple/set\n=max-limit=0/100M\n=numbers=vlan$vlan sa.command.inetOption.26.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.3.enable=/queue/simple/set\n=max-limit=0/10M\n=numbers=vlan$vlan sa.command.inetOption.3.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.4.enable=/queue/simple/set\n=max-limit=0/20M\n=numbers=vlan$vlan sa.command.inetOption.4.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.7.enable=/queue/simple/set\n=max-limit=0/40M\n=numbers=vlan$vlan sa.command.inetOption.7.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.16.enable=/queue/simple/set\n=max-limit=0/6M\n=numbers=vlan$vlan sa.command.inetOption.16.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.17.enable=/queue/simple/set\n=max-limit=0/15M\n=numbers=vlan$vlan sa.command.inetOption.17.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.22.enable=/queue/simple/set\n=max-limit=0/4M\n=numbers=vlan$vlan sa.command.inetOption.22.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.6.enable=/queue/simple/set\n=max-limit=0/25M\n=numbers=vlan$vlan sa.command.inetOption.6.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.8.enable=/queue/simple/set\n=max-limit=0/55M\n=numbers=vlan$vlan sa.command.inetOption.8.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.11.enable=/queue/simple/set\n=max-limit=0/70M\n=numbers=vlan$vlan sa.command.inetOption.11.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.24.enable=/queue/simple/set\n=max-limit=0/2M\n=numbers=vlan$vlan sa.command.inetOption.24.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.27.enable=/queue/simple/set\n=max-limit=0/2M\n=numbers=vlan$vlan sa.command.inetOption.27.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan sa.command.inetOption.28.enable=/queue/simple/set\n=max-limit=0/8M\n=numbers=vlan$vlan sa.command.inetOption.28.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan ЧЯДН ? пысы :ROS 6.xxx |
Автор: | borisk [ 04 авг 2016, 16:43 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Я верю что работает ![]() ![]() |
Автор: | borisk [ 04 авг 2016, 16:47 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
snark писал(а): На просторах этих ваших интернетов столько срачей на предмет того, что работа МТ-шного API ведет себя по разному в зависимости от версии ROS и иногда бывает вообще не работоспособной, что проще забить на API и использовать telnet/SSH. Что именно в API есть такого, что нельзя реализовать через telnet/SSH? Все бы хорошо, но я взял с сайта mikrotik клиент python, в котором ввожу те же самые команды, что и в bgb - и все прекрасно отрабатывает без каких либо последствий. Вот про API и telnet/ssh конечно полностью соглашусь, что все то же самое. Просто есть API, есть готовая обертка к нему, думал воспользоваться. И в этой вот обертке есть переменная prevIdList которая действительно полезна. |
Автор: | ok-2004 [ 04 авг 2016, 17:01 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
попробуйте для simple queue дописать comment=test пысы: у меня BGB управляет 14 брасами на микротик по 256 юзеров на каждом. Раньше это делалось по telnet/ssh. Связка access+accounting крутилась на отделом сервере. Это были чёрные дни, не знал откуда ещё волосы на себе вырвать от отчаяния, пока Бител на добавил библиотеку api для микротика. Сразу перешёл на неё и неделю пил от счастья.. |
Автор: | stark [ 04 авг 2016, 17:08 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
borisk писал(а): Добрый день! Все, больше ничего не прописывал. Теперь тупо "открыт/закрыт" сервис. Так вот - почему-то выполняется только первая команда. То есть: Перевел сервис в "закрыт" - сервис состояние поменял и в логе видно, что команда выполнилась и ответ !done получен. Теперь делаем "открыт" - и ничего не происходит. Сервис состояние не меняет, в логах тоже тишина. Перезапускаем access - и опа, наша команда выполнилась и сервис состояние поменял. Помогите люди добрые? уже всю голову сломал что за глюк такой. Если все так как вы описываете то это не проблема конкретных команд. Или у вас что-то повисает там. |
Автор: | borisk [ 04 авг 2016, 17:22 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
А почему именно там, а не в bgb? Ведь после рестарта access он выполняет предыдущую "зависшую" команду? |
Автор: | stark [ 04 авг 2016, 17:46 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
borisk писал(а): А почему именно там, а не в bgb? Ведь после рестарта access он выполняет предыдущую "зависшую" команду? гадать не получится. надо логи смотреть. И как именно вы открываете/закрываете сервис ? Правой кнопкой в подменю "отладка" ? |
Автор: | borisk [ 04 авг 2016, 18:00 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Нет, захожу на сервис и "открыт/закрыт" делаю. Я бы рад смотреть логи, только их нет практически ![]() Вот что удалось нарыть... вставил свои куски кода в MikrotikServiceActivator, так вот... все работает до тех пор, пока вот сюда protected Object executeCommands( ServiceActivatorEvent e, InetServ serv, InetConnection connection, Set<Integer> options, String[] commands ) throws Exception { if( commands == null ) { logger.error("MktSA: no commands"); return null; } не приходит commands == null. Как только оно приходит, вся дальнейшая работа прекращается. Соответственно вопрос, что же за такие commands == null приходят и от куда? |
Автор: | borisk [ 04 авг 2016, 18:06 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
И еще, если смотреть по логам микротик, то нормальная работа выглядит так: user bgbill logged in via api user.... changed .... user bgbill logged out а при глюке сточки logged out не появляется |
Автор: | Amir [ 04 авг 2016, 18:18 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Нужен лог. Т.е. перезапустить, открыть и закрыть - и сохранить лог. Также желательно вывод jstack сохранить после того как откроете/закроете. |
Автор: | borisk [ 04 авг 2016, 18:20 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Amir, в логе нет ничего вразумительного. Может опишите более подробно что именно включить и что снять (включая jstack), потому что мое знакомство я java весьма поверхностное. |
Автор: | Amir [ 04 авг 2016, 18:28 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Перезапустите InetAccess, в log4j.xml включите DEBUG, откройте/закройте сервис. Сохраните вывод /opt/java/jdk8/bin/jstack <кодпроцесса> > stack.txt Отправьте нам all.log и stack.txt |
Автор: | borisk [ 04 авг 2016, 18:35 ] | ||
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator | ||
Вот
|
Автор: | stark [ 08 авг 2016, 16:02 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
borisk писал(а): Вот В вашем логе я вижу событие и команды на выключение, но не вижу на включение. Цитата: connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorSet - Connecting to device connection 08-04/17:32:46 DEBUG [sa-p-13-t-79] AcknowledgeConsumer - Caught BGBillingServer:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: -1; oldInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServState: 0; newInetServOptionList: ; timestamp: 1470313966519 connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorDeviceWorker - Do task deviceId: 189; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: -1; oldInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServState: 0; newInetServOptionList: ; timestamp: 1470313966519 connection 08-04/17:32:46 INFO [sa-p-13-t-79] InetApplication - TariffOptionMap: {} connection 08-04/17:32:46 INFO [sa-p-13-t-79] InetApplication - OptionSet: [10] connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=2; inetServId: 1022; call: false; oldState: 1; newState: 0; oldOptionSet: 10; newOptionSet: 10 connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorDeviceWorker - Processing deviceId:189; command ServiceActivatorEvent type=2; inetServId: 1022; call: false; oldState: 1; newState: 0; oldOptionSet: 10; newOptionSet: 10 connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorSet - Invoking serviceModify connection 08-04/17:32:46 INFO [sa-p-13-t-79] AbstractTerminalServiceActivator - serviceModify connection 08-04/17:32:46 INFO [sa-p-13-t-79] AbstractTerminalServiceActivator - serviceDisable connection 08-04/17:32:46 INFO [sa-p-13-t-79] AbstractTerminalServiceActivator - switchOptions connection 08-04/17:32:46 ERROR [sa-p-13-t-79] MikrotikServiceActivator - execute: /queue/simple/disable\n=numbers=test connection 08-04/17:32:46 ERROR [sa-p-13-t-79] MikrotikServiceActivator - result= !done connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorDeviceWorker - Process event type[2] result=true connection 08-04/17:32:46 INFO [sa-p-13-t-79] ServiceActivatorDeviceWorker - Changing InetServ:1022 state and/or options надо посмотреть почему сервер не шлет событие InetSaServModifyEvent на включение и нет ли каких-то проблем в activemq |
Автор: | stark [ 08 авг 2016, 16:05 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
настройте сервер в режиме debug и посмотрите пишет ли он Код: Publish : InetSaServModifyEvent
|
Автор: | borisk [ 08 авг 2016, 17:22 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Включение Код: 08-08/16:16:26 DEBUG [http-bio-80.64.16.4-45443-exec-6] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.api.server.event.InetServModifiedEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: 2; timestamp: 1470654986842 08-08/16:16:26 DEBUG [http-bio-80.64.16.4-45443-exec-6] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: -1; oldInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServState: 1; newInetServOptionList: ; timestamp: 1470654986846 Выключение Код: 08-08/16:17:35 DEBUG [http-bio-80.64.16.4-45443-exec-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.api.server.event.InetServModifiedEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: 2; timestamp: 1470655055400
08-08/16:17:35 DEBUG [http-bio-80.64.16.4-45443-exec-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 14; pluginId: no; cid: 391; scid: -1; userId: -1; oldInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServ: -1:SNR-S2960-24G: 00030F25FCC0 [172.16.3.1]:4; newInetServState: 0; newInetServOptionList: ; timestamp: 1470655055403 |
Автор: | borisk [ 08 авг 2016, 17:23 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
То есть события публикуются => проблемы в mq? Но все остальные задачи работают и проблем не возникает. У меня самописный активатор сессий для freebsd работает на ура. Опять таки не понимаю - после перезапуска ведь access откуда-то считывает событие? |
Автор: | stark [ 08 авг 2016, 17:44 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Вы посмотрите web-интерфейс activemq, не копятся ли там события . |
Автор: | borisk [ 08 авг 2016, 22:26 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Во всех очередях "number of messages pending" - 0 |
Автор: | stark [ 09 авг 2016, 11:48 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
меня в вашем jstack смущает 2 потока : Код: "listener" #374 daemon prio=5 os_prio=15 tid=0x00000008848bc800 nid=0x18e89 runnable [0x00007fffd0907000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.net.SocketInputStream.read(SocketInputStream.java:223) at java.io.FilterInputStream.read(FilterInputStream.java:83) at bitel.billing.server.util.mikrotik.ReadCommand.run(ReadCommand.java:54) at java.lang.Thread.run(Thread.java:745) Код: "sa-p-13-t-79" #136 prio=5 os_prio=15 tid=0x0000000879c97000 nid=0x18b1f waiting on condition [0x00007fffd8280000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000008312a47a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at bitel.billing.server.util.mikrotik.ApiConn.getData(ApiConn.java:151) at bitel.billing.server.util.mikrotik.MikrotikApiSession.readFromInput(MikrotikApiSession.java:117) at bitel.billing.server.util.mikrotik.MikrotikApiSession.doCommand(MikrotikApiSession.java:82) at ru.bitel.bgbilling.modules.inet.dyn.device.mikrotik.MikrotikServiceActivator.disconnect(MikrotikServiceActivator.java:59) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.disconnect(ServiceActivatorSet.java:226) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:259) at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139) - locked <0x0000000813ce4718> (a ru.bitel.bgbilling.kernel.event.AcknowledgeConsumer) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:152) - locked <0x0000000813ce4648> (a ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46) Если несколько раз подряд снять jstack с интервалом секунд в 30, то там что-то меняется ? |
Автор: | stark [ 09 авг 2016, 11:51 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Лучше напишите в helpdesk и дайте доступ, возможно там что-то нестандартное. |
Автор: | stark [ 10 авг 2016, 18:49 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Исправлено, будет в следующем обновлении. |
Автор: | borisk [ 12 авг 2016, 13:00 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Да, спасибо, работает. А вот еще появился вопросик: используем схему с родительским сервисом (без ip, просто учет ресурсов), а к нему дочерние сервисы IP. И получается, MikrotikServiceActivator не умеет с таким работать, или я не нашел как? |
Автор: | stark [ 12 авг 2016, 13:20 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
borisk писал(а): Да, спасибо, работает. А вот еще появился вопросик: используем схему с родительским сервисом (без ip, просто учет ресурсов), а к нему дочерние сервисы IP. И получается, MikrotikServiceActivator не умеет с таким работать, или я не нашел как? Не умеет, как ssh и все остальные . Это по хорошему надо делать в базовом предке всех этих сервисов. Какая-то схема делалась отдельно в Manad для этого ( привет, skyb), но заброшена. |
Автор: | borisk [ 12 авг 2016, 13:27 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Хорошо, я попробую реализовать это как макрос в AbstractTerminalServiceActivator, потом представлю на ваш суд. Если понравится - добавите в следующие сборки. |
Автор: | borisk [ 15 авг 2016, 20:45 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Господа разработчики, проконсультируйте, пожалуйста. Пытаюсь сделать свой макрос с параметрами, по аналогии с deviceAttr вызов моего макроса $ipChild(0) код обработки: Код: switch( args.length ) { case 1: processRoot = ((Integer)args[0]) >= 1; копия вашего из deviceAttr, но я получаю Exception в последней строке кода что Цитата: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer . Макросы где-то надо еще регистрировать чтобы система понимала типы их параметров?
|
Автор: | borisk [ 15 авг 2016, 21:19 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
И еще какая-то странность. Делаю "закрыть сервис", все отрабатывает как надо, сервис закрывается и Код: connection 08-15/20:12:53 ERROR [sa-p-13-t-74] MikrotikServiceActivator - execute: /queue/simple/disable\n=numbers=391:1027 connection 08-15/20:12:53 ERROR [sa-p-13-t-74] MikrotikServiceActivator - result= !done Я ничего больше с договором не делаю, жду, и через секунд 30 в логе: Код: connection 08-15/20:13:17 ERROR [sa-p-13-t-65] MikrotikServiceActivator - execute: /queue/simple/enable\n=numbers=391:1027 connection 08-15/20:13:17 ERROR [sa-p-13-t-65] MikrotikServiceActivator - result= !done При этом сам сервис в биллинге в состоянии "закрыт/включен". Почему??? Куда копать? Определены только вот эти команды: Код: sa.command.serv.create=/queue/simple/add\n=name=$contractId:$servId\n=target=$ipChild(0)
sa.command.serv.enable=/queue/simple/enable\n=numbers=$contractId:$servId sa.command.serv.disable=/queue/simple/disable\n=numbers=$contractId:$servId sa.command.serv.cancel=/queue/simple/remove\n=numbers=$contractId:$servId |
Автор: | Artur [ 16 авг 2016, 11:44 ] |
Заголовок сообщения: | Re: [6.2] MikrotikServiceActivator |
Попробуйте вот так: Код: Integer.valueOf(args[0]) Либо, что более предпочтительно: Код: Utils.parseInt(args[0]) В последнем случае, если в аргументе будет не число, то вернется значение 0, а не NumberFormatException. Также можно использовать перегруженный метод: Utils.parseInt(args[0], <custom_default_value>) где <custom_default_value> - число, которое будет возвращено, если не получится прочитать число из строки args[0] |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |