BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 02 июл 2025, 11:04

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 15:49 
После обновления от 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?


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 16:04 
Убралит проверку 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 ( )


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 16:06 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
можете дать доступ к железке ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 17:10 
к какой железке? к билингу или циске


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 18:05 
Если к циске - то там ничего нового, заходишь по telnet и далше как всегда


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 18:27 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
к циске .. ну можно биллингу , тогда получим и к циске .. я тестировал на циске - там работало , нужен доступ к вашей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 18:30 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
лучше к биллингу доступ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 25 янв 2010, 20:38 
Обновились на сегоднешнюю версию от 25 числа и все работает.
Странно не дообновился что ли.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в api telnet
СообщениеДобавлено: 26 янв 2010, 12:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
madmax писал(а):
Обновились на сегоднешнюю версию от 25 числа и все работает.
Странно не дообновился что ли.

ясно ..21-го числа было выложено нескольк обновлений, это вы похоже не успели поставить


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.037s | 23 Queries | GZIP : On ]