BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 05 май 2024, 21:58

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 18:07 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Нужно создать такую связку, но чтоб была синхронизация шлюзов Dhcp и Zyxel, и адреса выдавались порт - адрес.
Как я понимаю для этого нужно вызвать синхронизацию шлюза Dhcp из шлюза Zyxel.
Для этого в конфиге шлюза Cisco2 поставил
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanGateWorker
, а в конфиге шлюза Zyxel
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker

Для полной работы, нужно изменить работу шлюза Dhcp, чтобы выдавать адрес по порту.
Но вот загвоздка, в примере Wiki Реализация стандартного шлюза DHCP, есть вызов
void parentSync( Gate child,
GateWorker childWorker ), который позволяет менять работу шлюза. Но вот класс GateWorker нигде не описан, ну не нашел, и соответственно выдает ошибку
Код:
03-15/17:03:41  INFO [Thread-61] CiscoVlanParentGateWorker - Running script
03-15/17:03:41  INFO [Thread-61] CiscoVlanParentGateWorker - Process time => 26
03-15/17:03:41  INFO [Thread-61] CiscoVlanGateWorker - Running script
03-15/17:03:41 ERROR [Thread-61] CiscoVlanGateWorker - Eval error2: Sourced file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.Input
StreamReader;  import java.n . . . '' : Class: GateWorker not found in namespace
Sourced file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : Class: GateWorker not found
in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : Gate
Worker

        at bsh.BSHAmbiguousName.toClass(Unknown Source)
        at bsh.BSHType.getType(Unknown Source)
        at bsh.BSHFormalParameter.eval(Unknown Source)
        at bsh.BSHFormalParameters.eval(Unknown Source)
        at bsh.BSHMethodDeclaration.evalNodes(Unknown Source)
        at bsh.BSHMethodDeclaration.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:217)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - java.lang.RuntimeException: Sourced file: inline evaluation of: ``import java.io.BufferedReader;  import
 java.io.InputStreamReader;  import java.n . . . '' : Class: GateWorker not found in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io
.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : GateWorker

03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream - Caused by: Sourced file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStr
eamReader;  import java.n . . . '' : Class: GateWorker not found in namespace : at Line: 25 : in file: inline evaluation of: ``import java.io.BufferedReader;
 import java.io.InputStreamReader;  import java.n . . . '' : GateWorker

03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHAmbiguousName.toClass(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHType.getType(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHFormalParameter.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHFormalParameters.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHMethodDeclaration.evalNodes(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.BSHMethodDeclaration.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.Interpreter.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.Interpreter.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bsh.Interpreter.eval(Unknown Source)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:217)
03-15/17:03:41 ERROR [Thread-61] LoggingPrintStream -   ... 4 more

и в доке функция
Код:
protected void parentSync( Gate child, GateWorker childWorker)
{
}

так же описана, но вызывает такую же ошибку.
Может кто запускал скриптовый шлюз Dhcp?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 18:33 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
import bitel.billing.server.ipn.GateWorker;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 18:40 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
в доке
Цитата:
где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод.
childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод.
, по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?
В описании пакета bitel.billing.server.ipn нет GateWorker, есть UserStatus.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:05 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Код:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
 
import org.apache.xml.serializer.ToXMLStream;
import org.xml.sax.SAXException;
 
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.bean.Gate;
import bitel.billing.server.ipn.dlink.UserPortStatus;
import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser;
import bitel.billing.server.util.Utils;
import bitel.billing.server.ipn.GateWorker;

Объявлены все пакеты, а скрипт выдает ошибку
Код:
03-15/17:59:42  INFO [Thread-12] CiscoVlanGateWorker - Running script
03-15/17:59:42 ERROR [Thread-12] CiscoVlanGateWorker - Eval error2: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.b
illing.server.ipn.bean.Gate
Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.billing.server.ipn.bean.Gate: <at unknown location>

        at bsh.BshMethod.invokeImpl(Unknown Source)
        at bsh.BshMethod.invoke(Unknown Source)
        at bsh.BshMethod.invoke(Unknown Source)
        at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Cl
ass to bitel.billing.server.ipn.bean.Gate: <at unknown location>

03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream - Caused by: Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.bill
ing.server.ipn.bean.Gate: <at unknown location>

03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-15/17:59:42 ERROR [Thread-12] LoggingPrintStream -   ... 4 more

не находит класс bitel.billing.server.ipn.bean.Gate. Странно как-то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:15 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
И еще вопрос, как вызвать синхроизацию шлюза Zyxel с шлюзом Cisco2. Если в шлюзе Cisco2 создать parentSync( Gate child, GateWorker childWorker), то как различить parentSync от Dhcp и Cisco2?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:18 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
в доке
Цитата:
где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод.
childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод.
, по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?

Да.. кривое описнаие и название параметров . должно быть по идее child и parentWorker .

mrustik писал(а):
В описании пакета bitel.billing.server.ipn нет GateWorker, есть UserStatus.

забыли добавить . Он есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
Invalid argument: `child' for method: parentSync : Can't assign java.lang.Class to bitel.billing.server.ipn.bean.Gate: <at unknown location>


покажите ваш код


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:20 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Или, если синхронизацию с шлюзом Dhcp вызовет шлюз Cisco2, но в шлюзе Dhcp, можно выставить id и адрес шлюза Zyxel?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:21 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Код:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
 
import org.apache.xml.serializer.ToXMLStream;
import org.xml.sax.SAXException;
 
import bitel.billing.server.ipn.GateWorker;
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.bean.Gate;
import bitel.billing.server.ipn.dlink.UserPortStatus;
import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser;
import bitel.billing.server.util.Utils;
 
//protected void doSync()
//{
//        log.info( "------------- tSync --------------------" );
//}
void parentSync( Gate child, GateWorker childWorker)
//   void parentSync( Gate child, GateWorker childWorker )
    {
        log.info( "------------- parentSync --------------------" );
 
        String host = gate.getHost();
        int port = gate.getPort();
        int gid = gate.getId();
    log.info("host=" + host);
    log.info("port=" + port);
    log.info("gid=" + gid);
        if( Utils.isEmptyString( host ) || port <= 0 )
        {
            log.error( "Can't get IP/port for BGDHCP for this gate! " );
            gateErrors.append( "Не указан адрес сервера dhcp для данного шлюза!" );
            return;
        }
 
        if( log.isDebugEnabled() )
            log.debug( gid + " gate: " + host + ":" + port );
 
 
        Socket socket = null;
        try
        {
            //if( childWorker instanceof UserPortStatusParser )
            //{
                List userPortStatusList = childWorker.getUserList( childWorker.statusList );
 
                socket = new Socket( host, port );
                InputStreamReader isr = new InputStreamReader( socket.getInputStream() );
                BufferedReader in = new BufferedReader( isr );
 
                ToXMLStream stream = new ToXMLStream();
                stream.setOutputStream(  socket.getOutputStream() );
 
                stream.setEncoding( "UTF-8" );
                stream.startDocument();
 
                stream.startElement( "sync" );
                stream.addAttribute( "type", "dhcp" );
 
                Gate gate = child;
                syncGate( gate, stream );
 
                stream.startElement( "list" );
                stream.addAttribute( "gateId", String.valueOf( gate.getId() ) );
                stream.endElement( "list" );
                stream.flushPending();
                stream.getWriter().flush();
 
                Map portStatusMap = new HashMap();
                String line = in.readLine();
 
                while( line != null && !"".equals( line ) )
                {
                    String[] p = patternTab.split( line );
                    if( p.length > 1 )
                    {
                        UserPortStatus st = new UserPortStatus();
                        st.ipAddr = p[1];
                        st.port = Utils.parseIntString( p[0], -1 );
                        portStatusMap.put( st.port, st );
      log.info("st.ipAddr" + st.ipAddr);
      log.info("st.port" + st.port);
                    }
 
                    line = in.readLine();
                }
 
                String gateId = String.valueOf( gate.getId() );
 
                for( UserPortStatus status : userPortStatusList )
                {
                    UserPortStatus s = portStatusMap.remove( status.port );
 
                    if(  (s == null || !s.ipAddr.equals( status.ipAddr ) ) &&
                       status.status.status != IPNContractStatus.STATUS_REMOVED )
                    {
                       if ( status.macAddr == null)
                       {
                          stream.startElement( "port" );
                           stream.addAttribute( "gateId", gateId );
                           stream.addAttribute( "id", String.valueOf( status.port ) );
                           stream.addAttribute( "ip", status.ipAddr );                          
                           stream.endElement( "port" );
                       }
                       else
                       {
                           stream.startElement( "portMac" );
                           stream.addAttribute( "gateId", gateId );
                           stream.addAttribute( "id", String.valueOf( status.port ) );
                           stream.addAttribute( "ip", status.ipAddr );
                           stream.addAttribute( "mac", status.macAddr );
                           stream.endElement( "portMac" );                             
                       }
 
                    }
                   //удаляем в одном месте
                    if( s != null && status.status.status == IPNContractStatus.STATUS_REMOVED )
                    {
                        stream.startElement( "removePort" );
                        stream.addAttribute( "gateId", gateId );
                        stream.addAttribute( "id", String.valueOf( status.port ) );
                        stream.addAttribute( "ip", status.ipAddr );
                        stream.endElement( "removePort" );
                    }
 
 
 
                }
 
                stream.flushPending();
                stream.getWriter().flush();
 
                stream.endElement( "sync" );
                stream.endDocument();
                stream.getWriter().flush();
            //}
        }
 
        finally
        {
            if( socket != null )
            {
                try
                {
                    socket.close();
                }
                catch (Exception e)
                {}
            }
        }
    }
 
    protected void syncGates( Gate gate, ToXMLStream stream )
    {
        try
        {
            if( gate != null )
            {
                stream.startElement( "gate" );
                stream.addAttribute( "id", String.valueOf( gate.getId() ) );
                stream.addAttribute( "host", gate.getHost() );
                DefaultSetup gateSetup = new DefaultSetup( gate.getConfig(), "\n" );
                Map params = gateSetup.getHashValuesWithPrefix( "dhcp." );
                for( Entry e : params.entrySet() )
                {
                    stream.startElement( "param" );
                    stream.addAttribute( "id", "dhcp." + e.getKey() );
                    stream.addAttribute( "value", e.getValue() );
                    stream.endElement( "param" );
                }
 
                if( gate.getChildren() != null )
                    for( Gate g : gate.getChildren() )
                    {
                        syncGates( g, stream );
                    }
 
                stream.endElement( "gate" );
            }
        }
        catch( SAXException e )
        {
            e.printStackTrace();
        }
    }
 
    protected void syncGate( Gate gate, ToXMLStream stream )
    {
        try
        {
            if( gate != null )
            {
                List gateList = new ArrayList();
                gateList.add( gate );
                Gate g = gate;
                while( g != null )
                {
                    gateList.add( g );
                    g = g.getParent();
                }
 
                HashMap params = new HashMap();
                for( int i = gateList.size() - 1; i >= 0; i-- )
                {
                    DefaultSetup gateSetup = new DefaultSetup( gateList.get( i ).getConfig(), "\n" );
                    Map p = gateSetup.getHashValuesWithPrefix( "dhcp." );
                    for( Entry e : p.entrySet() )
                    {
                        params.put( e.getKey(), e.getValue() );
                    }
                }
 
                stream.startElement( "gate" );
                stream.addAttribute( "id", String.valueOf( gate.getId() ) );
                stream.addAttribute( "host", gate.getHost() );
 
                for( Entry e : params.entrySet() )
                {
                    stream.startElement( "param" );
                    stream.addAttribute( "id", "dhcp." + e.getKey() );
                    stream.addAttribute( "value", e.getValue() );
                    stream.endElement( "param" );
                }
 
                stream.endElement( "gate" );
            }
        }
        catch( SAXException e )
        {
            e.printStackTrace();
        }
    }
 
    protected List getGateListFromTree( Gate root )
    {
        List result = new ArrayList();
        getGateListFromTree( result, root );
        return result;
    }
 
    protected void getGateListFromTree( List list, Gate root )
    {
        if( root != null )
            list.add( root );
 
        if( root.getChildren() != null )
            for( Gate gate : root.getChildren() )
            {
                getGateListFromTree( list, gate );
            }
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:23 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
И еще вопрос, как вызвать синхроизацию шлюза Zyxel с шлюзом Cisco2. Если в шлюзе Cisco2 создать parentSync( Gate child, GateWorker childWorker), то как различить parentSync от Dhcp и Cisco2?


Синхронизация уже вызвается. Т.е станадртнй механизм сам вызовет parentSync у вашего предка. Ваша задача его реализовать в dhcp.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:29 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
stark писал(а):
mrustik писал(а):
в доке
Цитата:
где child - объект типа bitel.billing.server.ipn.bean.Gate, представляющий шлюз , который вызывал этот метод.
childWorker - объект типа bitel.billing.server.ipn.GateWorker, представляющий шлюз , который вызывал этот метод.
, по описанию child и childWorker, ничем не отличаются, хотя по логике, childWorker - шлюз родитель, я правильно понимаю?

Да.. кривое описнаие и название параметров . должно быть по идее child и parentWorker .


А нет .. childWorker - это как раз потомок .. А вот gate - это предок .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:30 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
Или, если синхронизацию с шлюзом Dhcp вызовет шлюз Cisco2, но в шлюзе Dhcp, можно выставить id и адрес шлюза Zyxel?

не понял вопроса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:42 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
в конфиге шлюза Zyxel прописал
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker

И теперь вызывается синхронизация с шлюзом dhcp, а с шлюзом Cisco2 не вызывается.
Если в конфигурации Cisco2 это поставить, а в Zyxel
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker
, то все правильно вызывается, но в Dhcp ip-адрес шлюза стоит адрес шлюза Cisco2, а нужно ip-адрес Zyxel.


Последний раз редактировалось mrustik 15 мар 2010, 19:43, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:43 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
замените
Код:
void parentSync( Gate child, GateWorker childWorker)


на
Код:
void parentSync( child, childWorker)



Документацию поправлю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:45 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Dhcp сервер должен выдать ip-адрес по ip-адресу zyxel и порту клиента.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:47 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
в конфиге шлюза Zyxel прописал
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker

И теперь вызывается синхронизация с шлюзом dhcp, а с шлюзом Cisco2 не вызывается.
Если в конфигурации Cisco2 это поставить, а в Zyxel
Код:
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker
, то все правильно вызывается, но в Dhcp ip-адрес шлюза стоит адрес шлюза Cisco2, а нужно ip-адрес Zyxel.


второй вариант правильный . Первый работать не будет . А то что приходи адрес cisco2,так работает схема . Приходит адрес прерудщего шлюза . Так вроде как так и правильнее . dhcp запрос c cisco приходил, когда разрабатывалась эта схема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 19:53 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
Dhcp сервер должен выдать ip-адрес по ip-адресу zyxel и порту клиента.


Тогда вы можете вообще убрать шлюз dhcp из иерархии . А этот код переатщить в шлюз cisco2 в метод parentSync


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 15 мар 2010, 20:03 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Спасибо, попробую реализовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 16 мар 2010, 11:13 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Скриптовый шлюз Dhcp выдает ошибку
Код:
03-16/10:10:51 ERROR [Thread-12] CiscoVlanParentGateWorker - Eval error2: Typed variable declaration : Cannot access field: statusList, on object: class bitel
.billing.server.ipn.vlan.CiscoVlanParentGateWorker
Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker : at Line: 64 : in file
: inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import java.util.HashM . . . '' : childWorker .statusList

        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHArguments.getArguments(Unknown Source)
        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHVariableDeclarator.eval(Unknown Source)
        at bsh.BSHTypedVariableDeclaration.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$ScripterParent.invokeMethod(GateWorker.java:277)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-16/10:10:51 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: cla
ss bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.Arra
yList;  import java.util.HashM . . . '' : childWorker .statusList


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 16 мар 2010, 11:33 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Поменял класс поведения шлюза, результат тот же
Код:
03-16/10:26:42  INFO [Thread-12] CiscoSSHSwitchGateWorker - Running script
03-16/10:26:42  INFO [Thread-12] CiscoSSHSwitchGateWorker - ------------- parentSync --------------------
03-16/10:26:42  INFO [Thread-12] CiscoSSHSwitchGateWorker - host=10.176.82.110
03-16/10:26:42  INFO [Thread-12] CiscoSSHSwitchGateWorker - port=22
03-16/10:26:42  INFO [Thread-12] CiscoSSHSwitchGateWorker - gid=11
03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - Eval error2: Typed variable declaration : Cannot access field: statusList, on object: class bitel.
billing.server.ipn.vlan.CiscoSSHSwitchGateWorker
Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file:
 inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import java.util.HashM . . . '' : childWorker .statusList

        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHArguments.getArguments(Unknown Source)
        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHVariableDeclarator.eval(Unknown Source)
        at bsh.BSHTypedVariableDeclaration.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$ScripterParent.invokeMethod(GateWorker.java:277)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: cla
ss bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.Array
List;  import java.util.HashM . . . '' : childWorker .statusList

03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream - Caused by: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.
server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import jav
a.util.HashM . . . '' : childWorker .statusList
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.UtilEvalError.toEvalError(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.UtilEvalError.toEvalError(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHAmbiguousName.toObject(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHAmbiguousName.toObject(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHArguments.getArguments(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHMethodInvocation.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHVariableDeclarator.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHTypedVariableDeclaration.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHTryStatement.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-16/10:26:42 ERROR [Thread-12] LoggingPrintStream -   ... 2 more
03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - Gate unaccesible - 10.176.82.110
03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - -------------------------
03-16/10:26:42 ERROR [Thread-12] CiscoSSHSwitchGateWorker - error: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billin
g.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import j
ava.util.HashM . . . '' : childWorker .statusList

java.lang.RuntimeException: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWor
ker : at Line: 64 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import java.util.HashM . . . '' : childWorker .
statusList
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
Caused by: Typed variable declaration : Cannot access field: statusList, on object: class bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker : at Line: 64
 : in file: inline evaluation of: ``import java.io.IOException;  import java.util.ArrayList;  import java.util.HashM . . . '' : childWorker .statusList

        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHArguments.getArguments(Unknown Source)
        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHVariableDeclarator.eval(Unknown Source)
        at bsh.BSHTypedVariableDeclaration.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$ScripterParent.invokeMethod(GateWorker.java:277)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        ... 2 more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 16 мар 2010, 12:16 
Не в сети
Разработчик

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

Но вам это не поможет .. Вы же хотите по порту авторизовывать . Тут вообще не нужно использовать вызов этого метода .
Метод CiscoVlanParentGateWorker.getUserList - возвращает список vlan-ов, а не портов . Он реализован. Вам он не нужен . Вам нужно это место перписать. В этом месте нужно получить список портов ..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 16 мар 2010, 18:52 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Для начала, хочу собрать стандарную схему, с использованием шлюза DHCP на BeanShell. Чтобы разобраться, как работает, да и ошибки выявить, о потом буду свое переписывать.
строка
Код:
List userPortStatusList = childWorker.getUserList(statusList );

вызавает ошибку
Код:
03-16/17:47:24  INFO [Thread-43] CiscoVlanParentGateWorker - host=10.176.74.3
03-16/17:47:24  INFO [Thread-43] CiscoVlanParentGateWorker - port=23
03-16/17:47:24  INFO [Thread-43] CiscoVlanParentGateWorker - gid=10
03-16/17:47:24 ERROR [Thread-43] CiscoVlanParentGateWorker - Eval error2: Typed variable declaration : Error in method invocation: Method getUserList( java.ut
il.ArrayList ) not found in class'java.lang.Class'
Typed variable declaration : Error in method invocation: Method getUserList( java.util.ArrayList ) not found in class'java.lang.Class' : at Line: 50 : in file
: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : childWorker .getUserList ( statusList )

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHVariableDeclarator.eval(Unknown Source)
        at bsh.BSHTypedVariableDeclaration.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$ScripterParent.invokeMethod(GateWorker.java:277)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - java.lang.RuntimeException: Typed variable declaration : Error in method invocation: Method getUserList(
 java.util.ArrayList ) not found in class'java.lang.Class' : at Line: 50 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.Inp
utStreamReader;  import java.n . . . '' : childWorker .getUserList ( statusList )

03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream - Caused by: Typed variable declaration : Error in method invocation: Method getUserList( java.util.ArrayL
ist ) not found in class'java.lang.Class' : at Line: 50 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;
import java.n . . . '' : childWorker .getUserList ( statusList )
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHMethodInvocation.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHVariableDeclarator.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHTypedVariableDeclaration.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHTryStatement.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:277)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-16/17:47:24 ERROR [Thread-43] LoggingPrintStream -   ... 4 more

И как описана функция getUserList, нигде в доках нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 16 мар 2010, 20:21 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
Для начала, хочу собрать стандарную схему, с использованием шлюза DHCP на BeanShell. Чтобы разобраться, как работает, да и ошибки выявить, о потом буду свое переписывать.
строка
Код:
List userPortStatusList = childWorker.getUserList(statusList );

вызавает ошибку

Исправлено, обновление выложено .

mrustik писал(а):
И как описана функция getUserList, нигде в доках нет.


Эта функция реализована только в 2-х шлюзах - CiscoVlanParentGateWorker и DlinkGateWorker . это внутренняя реализация и нигде не описана.
возвращает List<UserPortStatus> .

Код:
public class UserPortStatus
{
    public static interface UserPortStatusParser
    {
        public List<UserPortStatus> getUserList( List<UserStatus> statusList );
    }
   
    public int port;
    public String ipAddr;
    public String macAddr;
    public UserStatus status;   
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 17 мар 2010, 11:26 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Странно, вроде все верно, функции public, но
Код:
stream.setEncoding( "UTF-8" );
stream.startElement( "sync" );
stream.addAttribute( "type", "dhcp" );

вызывают ошибку
Код:
03-17/10:06:39 ERROR [Thread-12] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method setEncoding( java.lang.String ) in
'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml
.serializer.XSLOutputAttributes with modifiers "public abstract"
Error in method invocation: Cannot access method setEncoding( java.lang.String ) in 'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.Illeg
alAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.XSLOutputAttributes with modifiers "public abstract" : at Line
: 60 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : stream .setEncoding ( "UTF
-8" )

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.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$ScripterParent.invokeMethod(GateWorker.java:285)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method setEncoding( java.lang.Stri
ng ) in 'interface org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.ap
ache.xml.serializer.XSLOutputAttributes with modifiers "public abstract" : at Line: 60 : in file: inline evaluation of: ``import java.io.BufferedReader;  impo
rt java.io.InputStreamReader;  import java.n . . . '' : stream .setEncoding ( "UTF-8" )

03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method setEncoding( java.lang.String ) in 'interfac
e org.apache.xml.serializer.XSLOutputAttributes' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializ
er.XSLOutputAttributes with modifiers "public abstract" : at Line: 60 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputS
treamReader;  import java.n . . . '' : stream .setEncoding ( "UTF-8" )
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHMethodInvocation.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHTryStatement.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-17/10:06:39 ERROR [Thread-12] LoggingPrintStream -   ... 4 more

Код:

Код:
03-17/10:10:56 ERROR [Thread-18] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method startElement( java.lang.String ) in
 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache
.xml.serializer.ExtendedContentHandler with modifiers "public abstract"
Error in method invocation: Cannot access method startElement( java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.I
llegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" :
at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : stream .startElemen
t ( "sync" )

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.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$ScripterParent.invokeMethod(GateWorker.java:285)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method startElement( java.lang.Str
ing ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class or
g.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader
;  import java.io.InputStreamReader;  import java.n . . . '' : stream .startElement ( "sync" )

03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method startElement( java.lang.String ) in 'interfa
ce org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.seri
alizer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io
.InputStreamReader;  import java.n . . . '' : stream .startElement ( "sync" )
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHMethodInvocation.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHTryStatement.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-17/10:10:56 ERROR [Thread-18] LoggingPrintStream -   ... 4 more

Код:
03-17/10:22:33 ERROR [Thread-48] CiscoVlanParentGateWorker - Eval error2: Error in method invocation: Cannot access method addAttribute( java.lang.String, jav
a.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member o
f class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract"
Error in method invocation: Cannot access method addAttribute( java.lang.String, java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHan
dler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "p
ublic abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : s
tream .addAttribute ( "type" , "dhcp" )

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.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$ScripterParent.invokeMethod(GateWorker.java:285)
        at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
        at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
        at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
        at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - java.lang.RuntimeException: Error in method invocation: Cannot access method addAttribute( java.lang.Str
ing, java.lang.String ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a
member of class org.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java
.io.BufferedReader;  import java.io.InputStreamReader;  import java.n . . . '' : stream .addAttribute ( "type" , "dhcp" )

03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:231)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:152)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.parentSync(GateWorker.java:171)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.doParentSync(GateWorker.java:154)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker.run(GateWorker.java:84)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream - Caused by: Error in method invocation: Cannot access method addAttribute( java.lang.String, java.lang.St
ring ) in 'interface org.apache.xml.serializer.ExtendedContentHandler' :java.lang.IllegalAccessException: Class bsh.Reflect can not access a member of class o
rg.apache.xml.serializer.ExtendedContentHandler with modifiers "public abstract" : at Line: 64 : in file: inline evaluation of: ``import java.io.BufferedReade
r;  import java.io.InputStreamReader;  import java.n . . . '' : stream .addAttribute ( "type" , "dhcp" )
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHMethodInvocation.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHPrimaryExpression.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHTryStatement.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHBlock.evalBlock(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BSHBlock.eval(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BshMethod.invokeImpl(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bsh.BshMethod.invoke(Unknown Source)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$ScripterParent.invokeMethod(GateWorker.java:285)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   at bitel.billing.server.ipn.GateWorker$Scripter.runScriptSync(GateWorker.java:218)
03-17/10:22:33 ERROR [Thread-48] LoggingPrintStream -   ... 4 more

Ipn обновил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 17 мар 2010, 13:14 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
[quote="mrustik"]Странно, вроде все верно, функции public, но
Код:
stream.setEncoding( "UTF-8" );
stream.startElement( "sync" );
stream.addAttribute( "type", "dhcp" );

объект stream откуда берется ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 17 мар 2010, 16:43 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Код:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
 
import org.apache.xml.serializer.ToXMLStream;
//import org.apache.xml.serializer.ToStream;
//import org.apache.xml.serializer.SerializerBase;
import org.xml.sax.SAXException;
 
import bitel.billing.server.ipn.GateWorker;
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.bean.Gate;
import bitel.billing.server.ipn.dlink.UserPortStatus;
import bitel.billing.server.ipn.dlink.UserPortStatus.UserPortStatusParser;
import bitel.billing.server.util.Utils;
import bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker;
 
void parentSync( child, childWorker)
//   void parentSync( Gate child, GateWorker childWorker )
    {
        log.info( "------------- parentSync --------------------" );
 
        String host = gate.getHost();
        int port = gate.getPort();
        int gid = gate.getId();
    log.info("host=" + host);
    log.info("port=" + port);
    log.info("gid=" + gid);
        if( Utils.isEmptyString( host ) || port <= 0 )
        {
            log.error( "Can't get IP/port for BGDHCP for this gate! " );
            gateErrors.append( "Не указан адрес сервера dhcp для данного шлюза!" );
            return;
        }
 
        if( log.isDebugEnabled() )
            log.debug( gid + " gate: " + host + ":" + port );
 
 
        Socket socket = null;
        try
        {
            //if( childWorker instanceof UserPortStatusParser )
            //{
                List userPortStatusList = childWorker.getUserList(statusList);
 
                socket = new Socket( host, port );
                InputStreamReader isr = new InputStreamReader( socket.getInputStream() );
                BufferedReader in = new BufferedReader( isr );
######################################################
        ToXMLStream stream = new ToXMLStream();
######################################################
                stream.setOutputStream(  socket.getOutputStream() );

                stream.setEncoding( "UTF-8");
                stream.startDocument();
                stream.startElement( "sync" );
                stream.addAttribute( "type", "dhcp" );
 
                Gate gate = child;
                syncGate( gate, stream );
 
                stream.startElement( "list" );
                stream.addAttribute( "gateId", String.valueOf( gate.getId() ) );
                stream.endElement( "list" );
                stream.flushPending();
                stream.getWriter().flush();
 
                Map portStatusMap = new HashMap();
                String line = in.readLine();
 
                while( line != null && !"".equals( line ) )
                {
                    String[] p = patternTab.split( line );
                    if( p.length > 1 )
                    {
                        UserPortStatus st = new UserPortStatus();
                        st.ipAddr = p[1];
                        st.port = Utils.parseIntString( p[0], -1 );
                        portStatusMap.put( st.port, st );
      log.info("st.ipAddr" + st.ipAddr);
      log.info("st.port" + st.port);
                    }
 
                    line = in.readLine();
                }
 
                String gateId = String.valueOf( gate.getId() );
 
                for( UserPortStatus status : userPortStatusList )
                {
                    UserPortStatus s = portStatusMap.remove( status.port );
 
                    if(  (s == null || !s.ipAddr.equals( status.ipAddr ) ) &&
                       status.status.status != IPNContractStatus.STATUS_REMOVED )
                    {
                       if ( status.macAddr == null)
                       {
                          stream.startElement( "port" );
                           stream.addAttribute( "gateId", gateId );
                           stream.addAttribute( "id", String.valueOf( status.port ) );
                           stream.addAttribute( "ip", status.ipAddr );                          
                           stream.endElement( "port" );
                       }
                       else
                       {
                           stream.startElement( "portMac" );
                           stream.addAttribute( "gateId", gateId );
                           stream.addAttribute( "id", String.valueOf( status.port ) );
                           stream.addAttribute( "ip", status.ipAddr );
                           stream.addAttribute( "mac", status.macAddr );
                           stream.endElement( "portMac" );                             
                       }
 
                    }
                   //удаляем в одном месте
                    if( s != null && status.status.status == IPNContractStatus.STATUS_REMOVED )
                    {
                        stream.startElement( "removePort" );
                        stream.addAttribute( "gateId", gateId );
                        stream.addAttribute( "id", String.valueOf( status.port ) );
                        stream.addAttribute( "ip", status.ipAddr );
                        stream.endElement( "removePort" );
                    }
 
 
 
                }
 
                stream.flushPending();
                stream.getWriter().flush();
 
                stream.endElement( "sync" );
                stream.endDocument();
                stream.getWriter().flush();
            //}
        }
 
        finally
        {
            if( socket != null )
            {
                try
                {
                    socket.close();
                }
                catch (Exception e)
                {}
            }
        }
    }
 
    protected void syncGates( Gate gate, ToXMLStream stream )
    {
        try
        {
            if( gate != null )
            {
                stream.startElement( "gate" );
                stream.addAttribute( "id", String.valueOf( gate.getId() ) );
                stream.addAttribute( "host", gate.getHost() );
                DefaultSetup gateSetup = new DefaultSetup( gate.getConfig(), "\n" );
                Map params = gateSetup.getHashValuesWithPrefix( "dhcp." );
                for( Entry e : params.entrySet() )
                {
                    stream.startElement( "param" );
                    stream.addAttribute( "id", "dhcp." + e.getKey() );
                    stream.addAttribute( "value", e.getValue() );
                    stream.endElement( "param" );
                }
 
                if( gate.getChildren() != null )
                    for( Gate g : gate.getChildren() )
                    {
                        syncGates( g, stream );
                    }
 
                stream.endElement( "gate" );
            }
        }
        catch( SAXException e )
        {
            e.printStackTrace();
        }
    }
 
    protected void syncGate( Gate gate, ToXMLStream stream )
    {
        try
        {
            if( gate != null )
            {
                List gateList = new ArrayList();
                gateList.add( gate );
                Gate g = gate;
                while( g != null )
                {
                    gateList.add( g );
                    g = g.getParent();
                }
 
                HashMap params = new HashMap();
                for( int i = gateList.size() - 1; i >= 0; i-- )
                {
                    DefaultSetup gateSetup = new DefaultSetup( gateList.get( i ).getConfig(), "\n" );
                    Map p = gateSetup.getHashValuesWithPrefix( "dhcp." );
                    for( Entry e : p.entrySet() )
                    {
                        params.put( e.getKey(), e.getValue() );
                    }
                }
 
                stream.startElement( "gate" );
                stream.addAttribute( "id", String.valueOf( gate.getId() ) );
                stream.addAttribute( "host", gate.getHost() );
 
                for( Entry e : params.entrySet() )
                {
                    stream.startElement( "param" );
                    stream.addAttribute( "id", "dhcp." + e.getKey() );
                    stream.addAttribute( "value", e.getValue() );
                    stream.endElement( "param" );
                }
 
                stream.endElement( "gate" );
            }
        }
        catch( SAXException e )
        {
            e.printStackTrace();
        }
    }
 
    protected List getGateListFromTree( Gate root )
    {
        List result = new ArrayList();
        getGateListFromTree( result, root );
        return result;
    }
 
    protected void getGateListFromTree( List list, Gate root )
    {
        if( root != null )
            list.add( root );
 
        if( root.getChildren() != null )
            for( Gate gate : root.getChildren() )
            {
                getGateListFromTree( list, gate );
            }
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 19 мар 2010, 10:09 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Up


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 19 мар 2010, 13:03 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
глюк библиотеки скриптов . замените у себя вот это файл в паке lib:
http://bgbilling.ru//tmp/bsh.jar

Это библиотека скомпилированная из svn . будет работать. последняя, собранная на официальном сайте, не работает . эта новее . В следущей версии заменим версию библиотеки . А пока руками замените


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 22 мар 2010, 10:32 
Не в сети

Зарегистрирован: 12 фев 2008, 16:11
Сообщения: 485
Карма: 12
Почему в скриптовом шлюзе DHCP, после вызова шлюзом Cisco2
Код:
        String host = child.getHost();
        int port = child.getPort();
        int gid = child.getId();

Код:
        String host = gate.getHost();
        int port = gate.getPort();
        int gid = gate.getId();

host, port и gid параметры шлюза Cisco2, а не DHCP. Соответственно поключиться к потоку XML не получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связка Dhcp+Cisco2+Zyxel
СообщениеДобавлено: 22 мар 2010, 12:31 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
mrustik писал(а):
Почему в скриптовом шлюзе DHCP, после вызова шлюзом Cisco2
Код:
        String host = child.getHost();
        int port = child.getPort();
        int gid = child.getId();

Код:
        String host = gate.getHost();
        int port = gate.getPort();
        int gid = gate.getId();

host, port и gid параметры шлюза Cisco2, а не DHCP. Соответственно поключиться к потоку XML не получается.


я так и не понял первый участок кода или второй ? второй должен возращать данные шлюза dhcp


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

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


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

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


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

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