forum.bitel.ru http://forum.bitel.ru/ |
|
Ошибка в api telnet http://forum.bitel.ru/viewtopic.php?f=7&t=3475 |
Страница 1 из 1 |
Автор: | madmax [ 25 янв 2010, 15:49 ] |
Заголовок сообщения: | Ошибка в api telnet |
После обновления от 21,01 не работает скрипт по шлюзам версия 5,0 Вот скрипт import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.StringTokenizer; import bitel.billing.common.module.ipn.IPNContractStatus; import bitel.billing.server.ipn.GateWorker; import bitel.billing.server.ipn.UserStatus; import bitel.billing.server.ipn.bean.ManadUtils; import bitel.billing.server.ipn.bean.VlanManager; import bitel.billing.server.util.DefaultServerSetup; import bitel.billing.server.util.Utils; //import bitel.billing.server.util.telnet.OperationTimedoutException; import bitel.billing.server.util.telnet.TelnetSession; import ru.bitel.bgbilling.common.DefaultSetup; import bitel.billing.common.IPUtils; import bitel.billing.server.ipn.bean.GateType; import bitel.billing.server.ipn.bean.RuleType; import bitel.billing.server.ipn.bean.VlanManager; import bitel.billing.server.util.Utils; //import bitel.billing.server.util.telnet.OperationTimedoutException; import bitel.billing.server.util.telnet.TelnetSession; protected void doSync() { try { host = gate.getHost(); port = gate.getPort(); DefaultServerSetup gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" ); pswdLogin = gate.getKeyword(); login = gateSetup.getStringValue( "login"); pswdCfg = gateSetup.getStringValue( "cfg.pswd"); timeout = gateSetup.getIntValue( "timeout", 0 ); result = new StringBuffer(); session = new TelnetSession( host, port); session.setTimeout( timeout ); session.setLoginPromptSequence( ":" ); session.connect(); result.append( session.doCommand( login ) ); session.setLoginPromptSequence( "#" ); result.append( session.doCommand( pswdLogin ) ); result.append( session.doCommand( "terminal length 0" ) ); result.append( session.doCommand( "terminal width 0" ) ); result.append( session.doCommand( "configure terminal" ) ); log.debug( "execute commands" ); doCommands( session, result); result.append( session.doCommand( "exit" ) ); session.doCommandAsync( "exit" ); //log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); //log.info( result ); //log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); //log.debug( "ok" ); } catch (Exception e) { throw new RuntimeException ( e ); } //log.info( "end of cisco........................................................"); } protected void add() { } //private void doCommands( TelnetSession session, StringBuffer result) throws IOException, OperationTimedoutException private void doCommands( TelnetSession session, StringBuffer result) throws IOException { for( UserStatus status : statusList ) { VlanManager manager = new VlanManager(status.mid, con); gateId = gate.getId(); //log.info("gateId=" + gateId); vid = manager.getVlan( gateId, status.contractId ); //log.info("vid=" + vid); //TODO - подумать что сделать справилами на добавление rules = null; if (status.status == IPNContractStatus.STATUS_OPEN) { rules = getOpenRules( status, vid ); } else if (status.status == IPNContractStatus.STATUS_REMOVED) { rules = getRemoveRules( status, vid ); } //if closed and etc else { rules = getCloseRules( status, vid ); } if (vid > 0) { for ( String rule : rules ) { result.append( session.doCommand( rule ) ); } } } } getOpenRules( status, vid ) { return getRules( status, "\\[OPEN\\](.*)\\[/OPEN\\]", vid ); } getCloseRules( status, vid ) { return getRules( status, "\\[CLOSE\\](.*)\\[/CLOSE\\]", vid ); } getRemoveRules( UserStatus status, int vid ) { return getRules( status, "\\[REMOVE\\](.*)\\[/REMOVE\\]", vid ); } getRules( status, template, vid ) { // пользовательское правило, без типа - то все оставляем как есть rule = status.rule.getRuleText(); //log.info("rule=" + rule); //типизированное правило if( status.ruleType != null ) { rule = generateRule( rule, status.gateType, status.ruleType, vid ); } //log.info("rule=" + rule); pattern = Pattern.compile( template, Pattern.DOTALL ); m = pattern.matcher( rule ); if (m.find()) { rule = m.group( 1 ); } rule.replaceAll( "\r", "" ); parts = rule.split( "\n" ); result = new ArrayList(); for ( String part : parts ) { if ( !Utils.isEmptyString( part )) { result.add( part ); } } return result; } generateRule( addresses, gateType, ruleType, int vid ) { ruleText = ManadUtils.getRule( gateType, ruleType ); replacements = new HashMap (); if ( vid > 0) { replacements.put( "\\{VID\\}", String.valueOf( vid ) ); } return ManadUtils.generateRule( ruleText, addresses, replacements, ruleType ); } В логах ошибка 01-25/15:00:02 ERROR [Thread-15] CiscoVlanGateWorker - Gate unaccesible - 10.1.1.11 01-25/15:00:02 ERROR [Thread-15] CiscoVlanGateWorker - ------------------------- 01-25/15:00:02 ERROR [Thread-15] CiscoVlanGateWorker - error: TargetError : at Line: 88 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . Target exception: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out java.lang.RuntimeException: TargetError : at Line: 88 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : throw new RuntimeException Target exception: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:107) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:85) Caused by: TargetError : at Line: 88 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : throw new RuntimeException ( e ) ; Target exception: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out at bsh.BSHThrowStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BshMethod.invokeImpl(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bsh.BshMethod.invoke(Unknown Source) at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:257) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218) ... 2 more Мы заремили //RuntimeException ( e ) ;, ошибок не появляется но и в шлюз ничего не добавляется. Скажите что изменилось в api? |
Автор: | madmax [ 25 янв 2010, 16:04 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
Убралит проверку try и в логах появляется ошибка ead-40] CiscoVlanGateWorker - ------------------------- ead-40] CiscoVlanGateWorker - error: Method Invocation session.connect : at Line: 60 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . c t.SocketTimeoutException: Read timed out n: Method Invocation session.connect : at Line: 60 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : session .connect ( ) c t.SocketTimeoutException: Read timed out server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231) server.ipn.GateWorker.runSync(GateWorker.java:107) server.ipn.GateWorker.run(GateWorker.java:85) ion session.connect : at Line: 60 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : session .connect ( ) |
Автор: | stark [ 25 янв 2010, 16:06 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
можете дать доступ к железке ? |
Автор: | madmax [ 25 янв 2010, 17:10 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
к какой железке? к билингу или циске |
Автор: | madmax [ 25 янв 2010, 18:05 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
Если к циске - то там ничего нового, заходишь по telnet и далше как всегда |
Автор: | stark [ 25 янв 2010, 18:27 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
к циске .. ну можно биллингу , тогда получим и к циске .. я тестировал на циске - там работало , нужен доступ к вашей |
Автор: | stark [ 25 янв 2010, 18:30 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
лучше к биллингу доступ |
Автор: | madmax [ 25 янв 2010, 20:38 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
Обновились на сегоднешнюю версию от 25 числа и все работает. Странно не дообновился что ли. |
Автор: | stark [ 26 янв 2010, 12:25 ] |
Заголовок сообщения: | Re: Ошибка в api telnet |
madmax писал(а): Обновились на сегоднешнюю версию от 25 числа и все работает. Странно не дообновился что ли. ясно ..21-го числа было выложено нескольк обновлений, это вы похоже не успели поставить |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |