forum.bitel.ru http://forum.bitel.ru/ |
|
Изменения состояния шлюза из скрипта поведения http://forum.bitel.ru/viewtopic.php?f=7&t=2087 |
Страница 1 из 2 |
Автор: | ODV [ 27 мар 2009, 15:41 ] |
Заголовок сообщения: | Изменения состояния шлюза из скрипта поведения |
Подскажите как из скрипта поведения изменить состояние шлюза и как можно запретить изменение параметров модуля IPN в договоре если статус шлюза не находится в статусе "удален". |
Автор: | KaDaBRa [ 22 апр 2009, 09:35 ] |
Заголовок сообщения: | |
Поддерживаю, как можно в скрипте поведения управлять состоянием шлюза в договоре? |
Автор: | niceone [ 22 апр 2009, 13:10 ] |
Заголовок сообщения: | |
+1 |
Автор: | Администратор [ 22 апр 2009, 15:24 ] |
Заголовок сообщения: | |
http://www.bgbilling.ru/v4.5/javadoc/bi ... %20boolean) |
Автор: | KaDaBRa [ 22 апр 2009, 15:46 ] |
Заголовок сообщения: | |
Это конечно хорошо, а как статус получить шлюза? И кто такой int userID ? |
Автор: | Администратор [ 22 апр 2009, 16:05 ] |
Заголовок сообщения: | |
Цитата: Это конечно хорошо, а как статус получить шлюза? Вам его получить надо или изменить? Цитата: И кто такой int userID ?
Код пользователя биллинга, можете ставить 0 - значит сервер. |
Автор: | KaDaBRa [ 22 апр 2009, 16:11 ] |
Заголовок сообщения: | |
Администратор писал(а): Вам его получить надо или изменить? И получить и изменить ![]() Цитата: И кто такой int userID ? Код пользователя биллинга, можете ставить 0 - значит сервер.[/quote] Понял, спасибо. |
Автор: | Администратор [ 22 апр 2009, 16:22 ] |
Заголовок сообщения: | |
Ну в том же классе есть метод получения статуса.. |
Автор: | KaDaBRa [ 22 апр 2009, 16:41 ] |
Заголовок сообщения: | |
Простите, называется смотрю в книгу вижу фигу ![]() А теперь другая проблема, яву я знаю поскольку постольку, много времени на изучение нету:( Скрипт есть: Код: import java.sql.*; import java.util.*; import bitel.billing.server.script.event.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.tariff.*; import bitel.billing.server.util.*; import bitel.billing.server.ipn.bean.*; import bitel.billing.common.module.ipn.IPNContractStatus; cid = event.getContractID(); ipnstat = new IPNContractStatusManager(con,5).getContractStatus(cid); print (ipnstat); выдает вот такое: Код: Sourced file: Function [id:13; title:GateIPN] : Constructor error: Can't find constructor: bitel.billing.server.ipn.bean.IPNContractStatusManager( org.apache.commons.dbcp.PoolableConnection, int ) in class: bitel.billing.server.ipn.bean.IPNContractStatusManagerSourced file: Function [id:13; title:GateIPN] : Constructor error: Can't find constructor: bitel.billing.server.ipn.bean.IPNContractStatusManager( org.apache.commons.dbcp.PoolableConnection, int ) in class: bitel.billing.server.ipn.bean.IPNContractStatusManager : at Line: 11 : in file: Function [id:13; title:GateIPN] : new IPNContractStatusManager ( con , 5 )
at bsh.BSHAllocationExpression.constructObject(Unknown Source) at bsh.BSHAllocationExpression.objectAllocation(Unknown Source) at bsh.BSHAllocationExpression.eval(Unknown Source) at bsh.BSHPrimarySuffix.doSuffix(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHAssignment.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310) at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:60) at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128) at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:238) at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:152) Подскажите почему? что я делаю не так? |
Автор: | stark [ 22 апр 2009, 20:10 ] |
Заголовок сообщения: | |
KaDaBRa писал(а): Подскажите почему? что я делаю не так?
у вас версия 4.6 ? там поменялось api - нет такого конструктора там нужно ещ добавить тритий параметр ModuleSetup. его можно получать так : Setup.getSetup().getModuleSetup( mid ), где mid - код модуля IPN |
Автор: | KaDaBRa [ 22 апр 2009, 20:26 ] |
Заголовок сообщения: | |
stark писал(а): у вас версия 4.6 ? там поменялось api - нет такого конструктора там нужно ещ добавить тритий параметр ModuleSetup. его можно получать так : Setup.getSetup().getModuleSetup( mid ), где mid - код модуля IPN
Ага, именно 4.6, спасибо большое ![]() |
Автор: | DeusInversus [ 24 апр 2009, 16:34 ] |
Заголовок сообщения: | |
stark писал(а): у вас версия 4.6 ? там поменялось api - нет такого конструктора там нужно ещ добавить тритий параметр ModuleSetup. его можно получать так : Setup.getSetup().getModuleSetup( mid ), где mid - код модуля IPN
Разработчики, что такое bundleName в конструкторе класса Setup?? |
Автор: | skn [ 24 апр 2009, 18:13 ] |
Заголовок сообщения: | |
bundleName - имя файла *.properties с данными |
Автор: | DeusInversus [ 25 апр 2009, 14:16 ] |
Заголовок сообщения: | |
skn писал(а): bundleName - имя файла *.properties с данными
А нельзя ли подробнее?? Где этот файл лежит? Что в нем должно быть? Писать с полным путем или как? В документации по API про это вообще ничего нет. Напишите пример если не сложно. |
Автор: | stark [ 27 апр 2009, 17:11 ] |
Заголовок сообщения: | |
DeusInversus писал(а): skn писал(а): bundleName - имя файла *.properties с данными А нельзя ли подробнее?? Где этот файл лежит? Что в нем должно быть? Писать с полным путем или как? В документации по API про это вообще ничего нет. Напишите пример если не сложно. это путь от текущего classpath ..Для сервера это папка classes и корневая папка биллинга (обе сразу).. Обычно пишут new Setup(data.data) и он находит файл data/data.properties .. это для создания , но вам это не надо ..Вам достатьнчо скоре всего вызывать статически метод Setup.getSetup() и получить текущий Setup |
Автор: | msh [ 07 май 2009, 21:33 ] |
Заголовок сообщения: | Re: Изменения состояния шлюза из скрипта поведения |
ODV писал(а): как можно запретить изменение параметров модуля IPN в договоре если статус шлюза не находится в статусе "удален".
было бы полезно, а то иногда забывают и оставляют свитчи в озадаченном состоянии |
Автор: | ODV [ 14 май 2009, 17:51 ] |
Заголовок сообщения: | Re: Изменения состояния шлюза из скрипта поведения |
ODV писал(а): Подскажите как из скрипта поведения изменить состояние шлюза.
Подскажите, пожалуйста как выполнить скрипт с набором команд относящейся к шлюзу состояние которого изменили из скрипта поведения? |
Автор: | stark [ 15 май 2009, 16:30 ] |
Заголовок сообщения: | Re: Изменения состояния шлюза из скрипта поведения |
ODV писал(а): ODV писал(а): Подскажите как из скрипта поведения изменить состояние шлюза. Подскажите, пожалуйста как выполнить скрипт с набором команд относящейся к шлюзу состояние которого изменили из скрипта поведения? не понял вопроса, вам уже выше отчетили как зменеть состояние шлюза, при этом если шлюз скриптовый, то отработает его скрипт |
Автор: | ODV [ 15 май 2009, 17:04 ] |
Заголовок сообщения: | |
разобрался спасибо, все работает. |
Автор: | madmax [ 05 авг 2009, 23:29 ] |
Заголовок сообщения: | |
Что то не могу понять. Пишу так выходит ошибка module = Setup.getSetup().getModuleSetup(1); ipn = new IPNContractStatusManager( con, 1, module); ipn_status = ipn.getContractStatus( cid ); Можно примерчик |
Автор: | ODV [ 06 авг 2009, 01:45 ] |
Заголовок сообщения: | |
// Переводим шлюз в стату "закрыт" modset = new ModuleSetup(con, mid); (new IPNContractStatusManager(con, mid, modset)).changeStatus(cid, 0, 0, true); |
Автор: | madmax [ 20 авг 2009, 22:56 ] |
Заголовок сообщения: | |
Что-то прописываю в скрипте, а все равно выходит ошибка Unknown class: ModuleSetup : at Line: 30 : |
Автор: | stark [ 21 авг 2009, 12:36 ] |
Заголовок сообщения: | |
madmax писал(а): Что-то прописываю в скрипте, а все равно выходит ошибка
Unknown class: ModuleSetup : at Line: 30 : import ru.bitel.bgbilling.server.util.ModuleSetup; |
Автор: | mikos [ 22 авг 2009, 16:41 ] |
Заголовок сообщения: | |
Тоже вставлю свою часть вопроса с вашего позволения ![]() А можно ли производить какие либо действия со шлюзами, не привязанными к конкретному договору? Задача раскидать по группе шлюзов (набор, порядка 5-10 шт) создание пользовательского вилана. Для себя это виделось примерно так: 1. Группируем комутаторы в папки - одна папка, это одна группа 2. Пользователю привязываем один из комутаторов из этой папки 3. При открытии шлюза, пробегаемся по всем комутаторам в папке и так же открываем персональный вилан. 4. При "удалении" шлюза, удаляем из всех комутаторов группы. В п.3 идеально конечно было бы иметь не просто "открытие", а "создание"... но это уже не раз обсуждалось, и вроде все решили, что должно быть только "открытие" шлюза. Все это необходимо для автоматического создания пользовательского вилана на кольце комутаторов, соединенных по stp. Понимаю, что скажете - а не проще ли VTP поднять? Но к сожалению, оборудование неоднородное и приходится извращаться. Что скажете? |
Автор: | stark [ 24 авг 2009, 15:41 ] |
Заголовок сообщения: | |
mikos писал(а): Тоже вставлю свою часть вопроса с вашего позволения
![]() А можно ли производить какие либо действия со шлюзами, не привязанными к конкретному договору? Задача раскидать по группе шлюзов (набор, порядка 5-10 шт) создание пользовательского вилана. Для себя это виделось примерно так: 1. Группируем комутаторы в папки - одна папка, это одна группа 2. Пользователю привязываем один из комутаторов из этой папки 3. При открытии шлюза, пробегаемся по всем комутаторам в папке и так же открываем персональный вилан. 4. При "удалении" шлюза, удаляем из всех комутаторов группы. В п.3 идеально конечно было бы иметь не просто "открытие", а "создание"... но это уже не раз обсуждалось, и вроде все решили, что должно быть только "открытие" шлюза. Все это необходимо для автоматического создания пользовательского вилана на кольце комутаторов, соединенных по stp. Понимаю, что скажете - а не проще ли VTP поднять? Но к сожалению, оборудование неоднородное и приходится извращаться. Что скажете? а GVRP тоже не подойдет ? вообще теоретически ваш вариант заработает . Только мне вот кажется лучше делать иерархию шлюзов, а не группы . Т.е клиенту добалять конченый шлюз, и синхронизация будет вызываться у него и всех его родителей |
Автор: | mikos [ 26 авг 2009, 01:05 ] |
Заголовок сообщения: | |
GVRP к сожалению не поддерживает часть оборудования, так же как и VTP ![]() Иерархию не знаю как построить, т.к. по сути группы - это есть кольца STP, дерева там не получается. А группа как раз оно - Делаю папку и в нее запихиваю все комутаторы кольца. В итогде все в кольце (в группе) должны иметь виланы на транковых портах. Транковые порты в свою очередь пропишу у каждого шлюза в конфигурации. Подскажите пожалуйста, как управлять комутатором, который не привязан к договору? Саму группу комутаторов я выбиру из базы ручками запросом, получу их ID. Что дальше делать? Надо вызвать метод конкретного шлюза (открыть/закрыть его). Как это сделать? |
Автор: | stark [ 26 авг 2009, 11:14 ] |
Заголовок сообщения: | |
mikos писал(а): Подскажите пожалуйста, как управлять комутатором, который не привязан к договору? Саму группу комутаторов я выбиру из базы ручками запросом, получу их ID. Что дальше делать? Надо вызвать метод конкретного шлюза (открыть/закрыть его). Как это сделать?
GateTypeManager gateTypeManager = new GateTypeManager( con, mid ); RuleTypeManager ruleTypeManager = new RuleTypeManager( con, mid ); Map gateTypeMap = gateTypeManager.getTypeMap(); допутсим вы получили спискл шлюзов : List gates ; далее в цикле : for( Gate gate : gates ) { GateType type = gateTypeMap.get( gate.getTypeId() ); GateWorker worker = (GateWorker)Utils.classByName( type.getGateManager() ); gate.setGateType( type ); worker.init( gate, ruleTypeManager.getTypeMap( gate.getTypeId() ), gateTypeMap, con, mid ); worker.start(); } |
Автор: | tee [ 26 авг 2009, 14:31 ] |
Заголовок сообщения: | |
mikos писал(а): GVRP к сожалению не поддерживает часть оборудования, так же как и VTP
![]() Иерархию не знаю как построить, т.к. по сути группы - это есть кольца STP, дерева там не получается. А группа как раз оно - Делаю папку и в нее запихиваю все комутаторы кольца. В итогде все в кольце (в группе) должны иметь виланы на транковых портах. Транковые порты в свою очередь пропишу у каждого шлюза в конфигурации. Подскажите пожалуйста, как управлять комутатором, который не привязан к договору? Саму группу комутаторов я выбиру из базы ручками запросом, получу их ID. Что дальше делать? Надо вызвать метод конкретного шлюза (открыть/закрыть его). Как это сделать? как вариант, влан навсегда "прибивается" к порту коммутатора доступа, заранее конфигурится и получаем жесткую связку порт доступа -> номер влан - >транк->виртуальный интерфейс L3 на агрегации. В этом случае совершенно неважно какого производителя свичи доступа, могут быть даже конфигурируемые через консольный порт информация записывается туда один раз. Схема упрощается, в договор добавляется только агрегатор. одна проблемка номер влан должен вводится вручную, а он берется из списка по порядку. |
Автор: | stark [ 26 авг 2009, 16:08 ] |
Заголовок сообщения: | |
tee писал(а): одна проблемка номер влан должен вводится вручную, а он берется из списка по порядку. Редактировать vlan можно в 5.0 . кстатит ее night- build-ы уже доступны : ftp://bgbilling.ru/pub/bgbilling/5.0/ а пока можете использовать параметр договора в качестве vlan |
Автор: | mikos [ 26 авг 2009, 23:00 ] |
Заголовок сообщения: | |
tee писал(а): mikos писал(а): GVRP к сожалению не поддерживает часть оборудования, так же как и VTP ![]() Иерархию не знаю как построить, т.к. по сути группы - это есть кольца STP, дерева там не получается. А группа как раз оно - Делаю папку и в нее запихиваю все комутаторы кольца. В итогде все в кольце (в группе) должны иметь виланы на транковых портах. Транковые порты в свою очередь пропишу у каждого шлюза в конфигурации. Подскажите пожалуйста, как управлять комутатором, который не привязан к договору? Саму группу комутаторов я выбиру из базы ручками запросом, получу их ID. Что дальше делать? Надо вызвать метод конкретного шлюза (открыть/закрыть его). Как это сделать? как вариант, влан навсегда "прибивается" к порту коммутатора доступа, заранее конфигурится и получаем жесткую связку порт доступа -> номер влан - >транк->виртуальный интерфейс L3 на агрегации. В этом случае совершенно неважно какого производителя свичи доступа, могут быть даже конфигурируемые через консольный порт информация записывается туда один раз. Схема упрощается, в договор добавляется только агрегатор. одна проблемка номер влан должен вводится вручную, а он берется из списка по порядку. В общем-то сейчас так и делаем, виланы берем по порядку. Вся заворушка что расписывал как раз для раскидывания конфигов по комутаторам кольца. |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |