forum.bitel.ru http://forum.bitel.ru/ |
|
Управление шлюзами по телнет ошибка после обновления FIXED http://forum.bitel.ru/viewtopic.php?f=22&t=5432 |
Страница 1 из 1 |
Автор: | Magistr [ 28 апр 2011, 16:50 ] |
Заголовок сообщения: | Управление шлюзами по телнет ошибка после обновления FIXED |
После обновления с 617 до 630 билда сервера сломалось управление шлюзом по телнету .. в логах ругань на эксепшн Код: server 04-28/17:39:21 ERROR [Thread-15] CiscoVlanGateWorker - Eval error2: TargetError
TargetError : at Line: 97 : 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.util.concurrent.TimeoutException at bsh.BSHThrowStatement.eval(BSHThrowStatement.java:53) at bsh.BSHBlock.evalBlock(BSHBlock.java:131) at bsh.BSHBlock.eval(BSHBlock.java:81) at bsh.BSHBlock.eval(BSHBlock.java:47) at bsh.BSHTryStatement.eval(BSHTryStatement.java:166) at bsh.BSHBlock.evalBlock(BSHBlock.java:131) at bsh.BSHBlock.eval(BSHBlock.java:81) at bsh.BshMethod.invokeImpl(BshMethod.java:362) at bsh.BshMethod.invoke(BshMethod.java:258) at bsh.BshMethod.invoke(BshMethod.java:161) at bitel.billing.server.ipn.GateWorker$Scripter.invokeMethod(GateWorker.java:331) at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:274) at bitel.billing.server.ipn.GateWorker.runSync(GateWorker.java:145) at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:107) server 04-28/17:39:21 ERROR [Thread-15] LoggingPrintStream - java.lang.RuntimeException: TargetError : at Line: 97 : in file: inline evaluation of: ``import java.io.IOException; import java.util.ArrayList; import java.util.HashMap . . . '' : throw new RuntimeException ( e ) ; |
Автор: | stark [ 29 апр 2011, 12:13 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
у вас стоит маленькое значение timeout, увеличьте или поставьте 0 .. За это время не успевает получится ответ полностью ..раньше он просто недополучал его и вы не знали об этом , теперь ругается |
Автор: | Magistr [ 29 апр 2011, 12:27 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
60000 непомогло .. |
Автор: | stark [ 29 апр 2011, 12:28 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
что в 97 строке скрипта ? |
Автор: | stark [ 29 апр 2011, 12:28 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
0 помогает ? |
Автор: | stark [ 29 апр 2011, 12:29 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
может у вас конечный символ не тот выставляется и скрипт просто неправильно работает , он отваливается по timeout-у каждый раз |
Автор: | Magistr [ 29 апр 2011, 12:31 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
там просто обработка эксепшена такое ощущение что результат выполнения не получает скрипт и ждет его оочень долго .. когда небыло таймаута просто клиент вис и все .. а с таймаутом и пред версии прерывался .. скрипт вот Код: 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 ru.bitel.bgbilling.modules.ipn.server.bean.command; //import ru.bitel.bgbilling.modules.ipn.server.bean.command.GateCommandUtil; import ru.bitel.bgbilling.modules.ipn.server.bean.command.LoopPattern; 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.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 ru.bitel.bgbilling.modules.ipn.common.bean.AddressRangeManager; import ru.bitel.common.Preferences; includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/gateCommandUtiltt" ); protected void doSync() { try { log.info( "start of cisco........................................................"); host = gate.getHost(); port = gate.getPort(); DefaultServerSetup gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" ); pswdLogin = gateSetup.getStringValue("login"); pswdCfg = gateSetup.getStringValue( "cfg.pswd"); timeout = gateSetup.getIntValue( "timeout", 0 ); result = new StringBuffer(); if( log.isDebugEnabled() ) { log.debug( gate.getId() + " gate: " + host + ":" + port + " pswdLogin: " + pswdLogin + " pswdCfg: " + pswdCfg ); } session = new TelnetSession( host, port); session.setTimeout( timeout ); session.setLoginPromptSequence( ":" ); session.connect(); session.setLoginPromptSequence( ":" ); result.append( session.doCommand( pswdLogin ) ); session.setLoginPromptSequence( ":" ); result.append( session.doCommand( pswdCfg ) ); result.append( session.doCommand( "terminal length 0" ) ); result.append( session.doCommand( "terminal width 0" ) ); session.setLoginPromptSequence( ": " ); result.append( session.doCommand( "enable" ) ); session.setLoginPromptSequence( "#" ); result.append( session.doCommand( pswdCfg ) ); 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 { for( UserStatus status : statusList ) { date = new GregorianCalendar(); 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 = getRule( gateType, ruleType ); replacements = new HashMap (); if ( vid > 0) { replacements.put( "\\{VID\\}", String.valueOf( vid ) ); } return generateRule( ruleText, addresses, replacements, ruleType); } |
Автор: | Magistr [ 29 апр 2011, 12:35 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
Вот лог работы Username: admin Password: 3750>en Password: 3750#conf t Enter configuration commands, one per line. End with CNTL/Z. 3750(config)# 3750#sh ver Cisco IOS Software, C3750 пропущено 3750# 0 вечно висит Да похоже и правда проблема с конечным символом .. но работало раньше ( |
Автор: | stark [ 16 май 2011, 13:37 ] |
Заголовок сообщения: | Re: Управление шлюзами по телнет ошибка после обновления |
Magistr писал(а): Вот лог работы Username: admin Password: 3750>en Password: 3750#conf t Enter configuration commands, one per line. End with CNTL/Z. 3750(config)# 3750#sh ver Cisco IOS Software, C3750 пропущено 3750# 0 вечно висит Да похоже и правда проблема с конечным символом .. но работало раньше ( Раньше работало благодяря ошибке, там стоял timeout , по скорочтению которого просто переставало ждать .. У вас проблема в username, скрипт его не послыат. Он написан в расчете на вввод пароля сразу , потом eanble . Это надо добавить result.append( session.doCommand( login ) ); где login = "admin"; |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |