BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Состояние сервиса Удален
СообщениеДобавлено: 16 окт 2012, 19:46 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
что происходит с сервисом на оборудовании, когда сервис на договоре переходит в состояние "Удален"
в дин. коде, который нам написали в хелпдеске есть:

Код:
"[DEFAULT]" +
       "[OPEN]" +
       ...
       "[/OPEN]" +

       "[CLOSE]" +
       ...
       "[/CLOSE]" +

       "[DELETE]" +
       ...
       "[/DELETE]" +
       "[/DEFAULT]";

т.е. по сути, предполагается три Состояния, в том числе Удалён, по факту же, когда сервис переходит в состояние Удалён, на оборудовании вообще ничего не происходит, т.е. абонентские адреса остаются в тех ацес листах, где они были. просто Состояния отключен и удален это как бы разные состояния на оборудовании и при таком поведении приходится руками подчищать "хвосты".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 16 окт 2012, 20:12 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
и еще, при создании нового сервиса на договоре, он создается в состоянии Удален, при его переводе в состояние Включен в лог сыпется:
Код:
connection 10-16/18:02:11  INFO [sa-p-11-t-62] ServiceActivatorSet - Connecting to device
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] MikrotikServiceActivator -  gate: gate.ru:22 login: mylogin+ct pswd: mypassword
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] AcknowledgeConsumer - Caught BGBillingServer:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 20; pluginId: no; cid: 4249; scid: -1; userId: 3; deviceId: 2; inetServId: 6098; connectionId: 0; state: 1; accessCode: 44; timestamp: 1350396106074
connection 10-16/18:02:11  INFO [sa-p-11-t-62] ServiceActivatorDeviceWorker - Do task deviceId: 2; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 20; pluginId: no; cid: 4249; scid: -1; userId: 3; deviceId: 2; inetServId: 6098; connectionId: 0; state: 1; accessCode: 44; timestamp: 1350396106074
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] InetSaStateModifyEvent - InetServ state already 1
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] ServiceActivatorDeviceWorker - Skip event
connection 10-16/18:02:16  INFO [sa-p-11-t-62] ServiceActivatorSet - Disconnecting from device
connection 10-16/18:02:16 DEBUG [sa-p-11-t-62] MikrotikServiceActivator - ok

и собственно говоря на шлюзе ничего не происходит. приходится дергать сервис в состояние Заблокирован, а потом возвращать ему Включен.
Предполагаю, что все изза:
Код:
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] InetSaStateModifyEvent - InetServ state already 1
connection 10-16/18:02:11 DEBUG [sa-p-11-t-62] ServiceActivatorDeviceWorker - Skip event


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 18 окт 2012, 21:40 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
up


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 11 дек 2012, 15:14 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
наблюдаем аналогичную проблему с динамическим кодом dlink который опубликован на wiki.
при создании сервиса (удалён -> открыт) или удалении сервиса (любое состояние -> удален) на оборудовании не появляется\не удаляется упоминание о сервисе.
в логах вообще не могу найти чтобы дин. код выводил что то в логи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 12 дек 2012, 11:25 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
внесу ясность:
лог аццесс при создании нового сервиса
Код:
[root@bill log]# cat all.log | grep "sa-p-11-t-94"
connection 12-12/09:12:38  INFO [sa-p-11-t-94] ServiceActivatorSet - Connecting to device
connection 12-12/09:12:38 DEBUG [sa-p-11-t-94] MikrotikServiceActivator -  gate: gate.mydomen.ru:22 login: xxxxx+ct pswd: xxxxx
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - 77 gate: 10.100.100.64:23 login: xxxxx pswd: xxxxx
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - before connect
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - after connect
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - after command
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - before pswd
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - before enable
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - before xxxxx
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - after enable
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] AcknowledgeConsumer - Caught BGBillingServer:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 20; pluginId: no; cid: global; scid: -1; userId: -1; oldInetServ: null; newInetServ: интернет : 172.31.103.7 : 14; newInetServState: 1; newInetServOptionList: ; timestamp: 1355289140558
connection 12-12/09:12:39  INFO [sa-p-11-t-94] ServiceActivatorDeviceWorker - Do task deviceId: 77; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 20; pluginId: no; cid: global; scid: -1; userId: -1; oldInetServ: null; newInetServ: интернет : 172.31.103.7 : 14; newInetServState: 1; newInetServOptionList: ; timestamp: 1355289140558
connection 12-12/09:12:39  INFO [sa-p-11-t-94] InetApplication - TariffOptionMap: {}
connection 12-12/09:12:39  INFO [sa-p-11-t-94] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=1; inetServId: 6389; call: false; oldState: 0; newState: 1; oldOptionSet: ; newOptionSet: 18
connection 12-12/09:12:39  INFO [sa-p-11-t-94] ServiceActivatorDeviceWorker - Processing deviceId:77; command ServiceActivatorEvent type=1; inetServId: 6389; call: false; oldState: 0; newState: 1; oldOptionSet: ; newOptionSet: 18
connection 12-12/09:12:39  INFO [sa-p-11-t-94] ServiceActivatorSet - Invoking serviceCreate
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - serviceCreate
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - oldState=0;newState=1
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - oldOptions=[];newOptions=[18]
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - state!=state true
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - from =172.31.103.7
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - to =172.31.103.7
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - 172.31.103.7
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - increment =true
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - optionConfig=list_name=TpLIDER_TURBO
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - cid=1475;rule_id=18;optionConfig=list_name=TpLIDER_TURBO
connection 12-12/09:12:39  INFO [sa-p-11-t-94] MikrotikServiceActivator - open
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - rules.length=1
connection 12-12/09:12:39 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - rule=:global list "";:foreach i in [/ip firewall address-list find]  do={:if ([:find [/ip firewall address-list get $i comment] "sid=6389;cid=1475;"]=0) do={[/ip firewall address-list remove $i]}};:global list "";:foreach i in [/ip firewall address-list find]  do={:if ([:find [/ip firewall address-list get $i comment] "cid=1475;"]=0) do={[/ip firewall address-list remove $i]}};ip firewall address-list add address=172.31.103.7 list=ACCESS_LIST comment="sid=6389;cid=1475;rid=18;";ip firewall address-list add address=172.31.103.7 list=TpLIDER_TURBO comment="sid=6389;cid=1475;rid=18;";
connection 12-12/09:12:40 DEBUG [sa-p-11-t-94] MikrotikServiceActivator -  result = :global list "";:foreach i in [/ip firewall
connection 12-12/09:12:40 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - processed!
connection 12-12/09:12:40  INFO [sa-p-11-t-94] ServiceActivatorDeviceWorker - Process event type[1] result=true
connection 12-12/09:12:40  INFO [sa-p-11-t-94] ServiceActivatorDeviceWorker - Changing InetServ:6389 state and/or options
mq 12-12/09:12:40 DEBUG [sa-p-11-t-94] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.inet.access.event.InetServDeviceStateAndOptionsModifiedEvent] moduleId: 20; pluginId: no; cid: global; scid: -1; userId: -1; deviceId: 77; inetServId: 6389; state: 1; optionSet: 18; timestamp: 1355289160634
connection 12-12/09:12:45  INFO [sa-p-11-t-94] ServiceActivatorSet - Disconnecting from device
connection 12-12/09:12:45 DEBUG [sa-p-11-t-94] MikrotikServiceActivator - ok
connection 12-12/09:12:45 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - SAVE
connection 12-12/09:12:48 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - AFTER SAVE
connection 12-12/09:12:48  INFO [sa-p-11-t-94] DlinkTelnetServiceActivator - xxxxx
connection 12-12/09:12:48 DEBUG [sa-p-11-t-94] DlinkTelnetServiceActivator - ok

видим что дин. код длинк ничего не формирует и не отправляет на коммутатор:
Код:
connection 12-12/09:12:48  INFO [sa-p-11-t-94] DlinkTelnetServiceActivator - ххххх
PassWord:************

DES-1228/ME:3#enable admin
Command: enable admin

PassWord:*********

DES-1228/ME:4#save
Command: save

Saving all configurations to NV-RAM......   0 % 50 % 55 % 60 % 65 % 70 % 75 % 80 % 85 % 90 % 95 %100 %Done.
Success.

DES-1228/ME:4#logout
Command: logout

DES-1228/ME:4#

**********
* Logout *
**********

сам дин код:
Код:
package ru.gigacom.inet.dyn.device.dlink;

import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.apache.log4j.Logger;

import ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivator;
import ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorAdapter;
import ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorEvent;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDevice;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetDeviceType;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.ParameterMap;
import ru.bitel.common.Preferences;
import ru.bitel.common.Utils;
import ru.bitel.common.inet.IpAddress;
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.UserStatus;
import bitel.billing.server.ipn.dlink.UserPortStatus;
import bitel.billing.server.util.telnet.TelnetSession;

/**
 * Dlink 3026,3028,1228ME
 * @author stark
 *
 */
public class DlinkTelnetServiceActivator
   extends ServiceActivatorAdapter
   implements ServiceActivator
{
   private InetDevice inetDevice;
   private static final Logger log = Logger.getLogger( DlinkTelnetServiceActivator.class );
   private TelnetSession session;
   private StringBuffer result ;
   private ParameterMap parameterMap;
   
   @Override
   public Object init( Setup setup, int moduleId, InetDevice inetDevice, InetDeviceType inetDeviceType, ParameterMap parameterMap )
      throws Exception
   {
      this.inetDevice = inetDevice;
      this.parameterMap = parameterMap;
      return true;
   }
   
   @Override
   public Object connect()
      throws Exception
   {
      List< InetSocketAddress> hosts = inetDevice.getHosts();
      
      String host = hosts.get( 0 ).getHostName();
      int port = hosts.get( 0 ).getPort();
      
      String pswd = inetDevice.getPassword();
      String login = inetDevice.getUsername();
      String enablepwd = inetDevice.getSecret();
 
 
      result = new StringBuffer();

 
      if( log.isDebugEnabled() )
      {
          log.debug( inetDevice.getId() + " gate: " + host + ":" + port  + " login: " + login + " pswd: " +       pswd );
      }
 
 
      session = new TelnetSession( host, port);
      int timeout = 10000;
      session.setTimeout( timeout );
      session.setEndString( ":" );                  
 
      log.debug( "before connect" );
      session.connect();      
      log.debug( "after connect" );
 
      result.append( session.doCommand( login ) );
      log.debug( "after command" );
 
      session.setEndString( "#" );
      result.append( session.doCommand( pswd ) );
      log.debug( "before pswd" );
 
      log.debug( "before enable" );
      session.setEndString( ":" );
      result.append( session.doCommand( "enable admin" ) );
      log.debug( "before enablepwd" );
      session.setEndString( "#" );
      result.append( session.doCommand( enablepwd ) );
      log.debug( "after enable" );
      
      session.setEndString( "#" );
      
      return true;
   }

   @Override
   public Object serviceModify( ServiceActivatorEvent serviceActivatorEvent )
      throws Exception
   {      
      log.debug( "newState= " +  serviceActivatorEvent.getNewState() );
      if ( serviceActivatorEvent.getNewState() != serviceActivatorEvent.getOldState() )
      {
         int state = serviceActivatorEvent.getNewState();
            
         try
         {
            InetServ serv = serviceActivatorEvent.getNewInetServ();
            
              log.debug( "execute commands" );
      
            String openAddress =  parameterMap.get( "open.address",  "255.255.255.255" ) ;
         
            log.debug( "openAddress = " +  openAddress );
         
         
            List<Integer>uplinks = Utils.toListInt( parameterMap.get( "uplink", "" ) );
         
         
            //List<UserPortStatus> ports = new ArrayList<UserPortStatus>();
            //List ports = getUserList( statusList );
         
         
         
            String [] openRules = new String [] {
         
                  //Профиль 20 Разрешаем клиенту видеть мир
                  // разрешающие правила добавляются с номером порта клиента                  
                  "config access_profile profile_id 20 add access_id ${port} ip source_ip ${ip} destination_ip 0.0.0.0 port ${port} permit"};
         
         
         
            String [] closeRules = new String [] {
         
               // Профиль 8 разрешаем клиенту видеть Стат+ДНС сервер
                  // разрешающие правила добавляются с номером порта клиента         
                  "config access_profile profile_id 8 add access_id ${port} ip source_ip ${ip} destination_ip ${openAdress} port ${port} permit",
         
                  //Профиль 12 Разрешаем ИП запросы на аплинках на адрес клиента со статистики
                  "config access_profile profile_id 12 add access_id ${mod}${port} ip source_ip ${openAdress} destination_ip ${ip} port ${upport} permit",
         
         
                  //16 Запрещаем ИП запросы на аплинках на адрес клиента
                  "config access_profile profile_id 16 add access_id ${mod}${port} ip source_ip 0.0.0.0 destination_ip ${ip} port ${upport} deny"};
         
         
            //for( UserPortStatus port : ports )
            //{
         
               
               log.debug("port.ipAddr=" + IpAddress.toString( serv.getAddressFrom() ) );
               //удаляюшие правила
         
               if ( state == InetServ.STATE_DELETED )
               {
         
                  int [] profiles = new int [] { 8, 20 };
         
                  for (int profile : profiles)
                  {
         
                     String rule = "config access_profile profile_id " + profile + " delete access_id " + serv.getInterfaceId();
                     log.debug("rule=" + rule);
                     result.append(  session.doCommand( rule ) );
                  }
         
                  profiles = new int [] { 12, 16 };
                  for (int profile : profiles)
                  {
         
                     for (int j = 0; j < uplinks.size(); j++)
                     {
         
                        Integer upport = uplinks.get(j);         
                        String pref = j > 0 ? String.valueOf( j * 10 ) : "";
                        String rule = "config access_profile profile_id " + profile + " delete access_id " + pref + serv.getInterfaceId();
                        log.debug("rule=" + rule);
                        result.append(  session.doCommand( rule ) );
                     }
                  }
         
         
               }
               else
               if ( state == InetServ.STATE_ENABLE )         
               {
                  int [] profiles = new int [] { 8 };
         
                  for (int profile : profiles)
                  {
         
                     String rule = "config access_profile profile_id " + profile + " delete access_id " + serv.getInterfaceId();
                     log.debug("rule=" + rule);
                     result.append(  session.doCommand( rule ) );
                  }
         
                  profiles = new int [] { 12, 16 };
                  for (int profile : profiles)
                  {
         
                     for (int j = 0; j < uplinks.size(); j++)
                     {
         
                        Integer upport = uplinks.get(j);         
                        String pref = j > 0 ? String.valueOf( j * 10 ) : "";
                        String rule = "config access_profile profile_id " + profile + " delete access_id " + pref + serv.getInterfaceId();
                        log.debug("rule=" + rule);
                        result.append(  session.doCommand( rule ) );
                     }
                  }
         
         
                  //20
                  String rule = openRules[0];
                  rule = setValues( rule, serv.getInterfaceId(), IpAddress.toString( serv.getAddressFrom() ) , openAddress, "" );
                  log.info("rule=" + rule);
                  result.append(  session.doCommand( rule ) );
         
               }
               if ( state == InetServ.STATE_DISABLE )
               {
                  int [] profiles = new int [] { 20 };
         
                  for (int profile : profiles)
                  {
         
                     String rule = "config access_profile profile_id " + profile + " delete access_id " + serv.getInterfaceId();
                     log.debug("rule=" + rule);
                     result.append(  session.doCommand( rule ) );
                  }
         
         
                  //8
                  String rule = closeRules[0];
                  rule = setValues( rule, serv.getInterfaceId(), IpAddress.toString( serv.getAddressFrom() ), openAddress, "" );
         
                  log.info("rule=" + rule);
                  result.append(  session.doCommand( rule ) );
         
                  //12, 16
                  for (int j = 0; j < uplinks.size(); j++)
                  {
                     Integer upport = uplinks.get(j);         
         
                     for (int i = 1; i < 3; i++)
                     {   
                        rule = closeRules[i];
                        rule = setValues( rule, serv.getInterfaceId(), IpAddress.toString( serv.getAddressFrom() ), openAddress, String.valueOf( upport ) );
                        rule = rule.replaceAll( "\\$\\{mod\\}" , String.valueOf( j * 10 )  );
                        log.info("rule=" + rule);
                        result.append(  session.doCommand( rule ) );
                     }
         
                  }
         
               }      
         
         } catch (Exception e)
         {
             log.error( "", e );
      
         }
      }
      return null;
   }



   @Override
   public Object connectionClose( ServiceActivatorEvent serviceActivatorEvent1 )
      throws Exception
   {
      return null;
   }

   @Override
   public Object serviceCreate( ServiceActivatorEvent serviceActivatorEvent1 )
      throws Exception
   {
      return null;
   }

   @Override
   public Object disconnect()
      throws Exception
   {
      session.setEndString( "#" );
        log.debug( "SAVE" );
      result.append( session.doCommand( "save" ) );
      log.debug( "AFTER SAVE" );

      session.setEndString ( "****" );
      result.append( session.doCommand( "logout" ) );
 
      log.info( result.toString() );
 
      log.debug( "ok" );
      
      return true;
   }

   
   
   private String setValues( String rule,  int port, String ip, String openAddress,  String upport )
   {
      rule = rule.replaceAll( "\\$\\{port\\}", String.valueOf( port ) );
      rule = rule.replaceAll( "\\$\\{ip\\}" , ip  );
      rule = rule.replaceAll( "\\$\\{openAdress\\}", openAddress );   
      rule = rule.replaceAll( "\\$\\{upport\\}",  upport  );
      return rule;
   }

}

тут ничего не меняли, даже копирайт оставили со времен ТТ в хелпдеске.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 18 дек 2012, 18:01 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Dog писал(а):
наблюдаем аналогичную проблему с динамическим кодом dlink который опубликован на wiki.
при создании сервиса (удалён -> открыт) или удалении сервиса (любое состояние -> удален) на оборудовании не появляется\не удаляется упоминание о сервисе.
в логах вообще не могу найти чтобы дин. код выводил что то в логи.

Написали бы лучше в helpdesk.

Там не реализованы serviceCreate и serviceCancel. В шлюзе mikrotik реализовано(можно сделать по аналогии ) :

http://wiki.bgbilling.ru/index.php/%D0% ... 1%80%D0%B0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 19 дек 2012, 01:09 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
с созданием я вроде как разобрался.
с удалением не ясно. вываливается вот с таким:
Код:
connection 12-18/22:59:46 DEBUG [sa-p-11-t-65] DlinkTelnetServiceActivator - serviceCancel
connection 12-18/22:59:46 DEBUG [sa-p-11-t-65] DlinkTelnetServiceActivator - newState= -1
connection 12-18/22:59:46 DEBUG [sa-p-11-t-65] DlinkTelnetServiceActivator - execute commands
connection 12-18/22:59:46 ERROR [sa-p-11-t-65] DlinkTelnetServiceActivator -
java.lang.NullPointerException
        at ru.gigacom.inet.dyn.device.dlink.DlinkTelnetServiceActivator.serviceModify(DlinkTelnetServiceActivator.java:156)
        at ru.gigacom.inet.dyn.device.dlink.DlinkTelnetServiceActivator.serviceCancel(DlinkTelnetServiceActivator.java:295)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.serviceCancel(ServiceActivatorSet.java:238)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doCommand(ServiceActivatorDeviceWorker.java:399)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:348)
        at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.notify(AsyncEventWorker.java:122)
        at ru.bitel.bgbilling.kernel.event.AcknowledgeConsumer.onMessage0(AcknowledgeConsumer.java:75)
        at ru.bitel.bgbilling.kernel.event.EventWorker.internalDoTask(EventWorker.java:177)
        at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:75)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:165)
        at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:113)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:109)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)


показательно то что newState= -1, т.е. STATE_DELETED, а в коде есть:
Код:
if ( state == InetServ.STATE_DELETED )
               {
         
                  int [] profiles = new int [] { 8, 20 };
         
                  for (int profile : profiles)
                  {
         
                     String rule = "config access_profile profile_id " + profile + " delete access_id " + serv.getInterfaceId();
                     log.debug("rule=" + rule);
                     result.append(  session.doCommand( rule ) );
                  }
         
                  profiles = new int [] { 12, 16 };
                  for (int profile : profiles)
                  {
         
                     for (int j = 0; j < uplinks.size(); j++)
                     {
         
                        Integer upport = uplinks.get(j);         
                        String pref = j > 0 ? String.valueOf( j * 10 ) : "";
                        String rule = "config access_profile profile_id " + profile + " delete access_id " + pref + serv.getInterfaceId();
                        log.debug("rule=" + rule);
                        result.append(  session.doCommand( rule ) );
                     }
                  }
         
         
               }

т.е. должен что то сделать. чего не хватает?

Код:
   @Override
    public Object serviceCancel( ServiceActivatorEvent serviceActivatorEvent1 )
        throws Exception
    {
       log.debug( "serviceCancel" );
      return serviceModify( serviceActivatorEvent1 );   
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 19 дек 2012, 17:14 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Dog писал(а):
Код:
   @Override
    public Object serviceCancel( ServiceActivatorEvent serviceActivatorEvent1 )
        throws Exception
    {
       log.debug( "serviceCancel" );
      return serviceModify( serviceActivatorEvent1 );   
    }


Неправильно. Вот в mikrotik аналогичный метод
Код:
 public Object serviceCancel( ServiceActivatorEvent e )
        throws Exception
    {
       log.debug( "serviceCancel" );
       InetServ serv = e.getOldInetServ();      
       return proccesServ( e, serv );
    }


Особенность в том что туда надо передать .getOldInetServ() в serviceCancel , а в serviceModify по умолчанию вызывается getNewInetServ() и это во всех случаях верно, кроме serviceCancel. Поэтому я вынес отдельную функцию proccesServ, куда явно передаю какой сервис надо брать . Если заработает, обновите wiki пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Состояние сервиса Удален
СообщениеДобавлено: 19 дек 2012, 18:04 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
заработало. обновил


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

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


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

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


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

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