BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 19 янв 2016, 13:00 
Не в сети

Зарегистрирован: 10 авг 2015, 15:44
Сообщения: 51
Откуда: Махачкала
Карма: 9
Всем привет! Недавно исходя из примеров на wiki и форуме написал функцию для добавления коммутатора в дерево устройств. Устройство добавляется и в дерево и в библиотеку. Но оно как бы не активно что ли. Например название устройства (EntityTitle) сохраняется в формате "type:[ipaddr]" вместо "type:[ipaddr] address mac уст." как у всех.
Надо обязательно открыть устройство и нажать "сохранить" вручную, тогда и название (EntityTitle) сохраняется как надо.
Так как я программно в договоре создаю сразу же в сервис на этом устройстве, то сервис имеет состояние "удален". Приходится заходить и вручную пересохранять устройство, чтоб сервис активировался. Ниже фрагмент функции по созданию устройства, может кто подскажет, где и что я упустил?

Код:
      
                         device = new InetDevice();
               EntityAttrAddress adrEnt = new EntityAttrAddress( device.getEntityId(), INET_DEVICE_ENTITY_SPEC_ID, hid, 0, 0, null, "", "", "0",dev_addr );
               EntityAttrText mac_ent = new EntityAttrText( device.getEntityId(), 1, mac );
                Map<Integer, EntityAttr> dev_attr = new HashMap<Integer, EntityAttr>();
                dev_attr.put(1, mac_ent);
                dev_attr.put(2, adrEnt);
            
                device.setHost( host );
                device.setEntityAttributes( dev_attr );
                device.setInvHost( host );
                device.setSecret( snmp_comm );
               device.setDeviceTypeId( typeId );   
               device.setInvDeviceTypeId( typeId );   
               device.setOrderManagerDisabled(false);
                device.setDeviceGroupIds( groupIds );
                device.setParentId( INET_ROOT_DEVICE_ID );
               device.setPassword( password );                        
               device.setUsername( username );
               device.setConfig( "# список битых портов   \n ports.reserved="+ports_rn+"  \n# список портов для сервисных нужд \n ports.service="+ports_sn+" \n# список транковыx портов \n ports.trunk="+ports_tn );
               device.setInvConfig( "# список битых портов   \n ports.reserved="+ports_rn+"  \n# список портов для сервисных нужд \n ports.service="+ports_sn+" \n# список транковыx портов \n ports.trunk="+ports_tn );
               device.setIdentifier( "" );
               device.setInvIdentifier( "" );
               device.setDateFrom( oct2015 );
               device.setComment( " "+comment );
                     device.setInvDeviceGroupIds( groupIds );
 
               InetDeviceType type = wsDevice.deviceTypeGet( typeId );
               device.setTitle(Device.generateTitle( device, type));
               device.setInvTitle(Device.generateTitle( device, type));

/*               InvDevice invdevice = device.toInvDevice();
               invdevice.setHost( host );
                invdevice.setEntityAttributes( dev_attr );
                invdevice.setSecret( snmp_comm );
               invdevice.setDeviceTypeId( typeId );   
               invdevice.setOrderManagerDisabled(false);
               invdevice.setDeviceGroupIds( groupIds );
                invdevice.setParentId( 59 );
                invdevice.setPassword( password );                        
               invdevice.setUsername( username );
               invdevice.setConfig( "# список битых портов   \n ports.reserved="+ports_rn+"  \n# список портов для сервисных нужд \n ports.service="+ports_sn+" \n# список транковыx портов \n ports.trunk="+ports_tn );
               invdevice.setIdentifier( "" );
               invdevice.setDateFrom( oct2015 );
               invdevice.setComment( " "+comment );
                    invdevice.setTitle(Device.generateTitle( device, type)); //(type+": ["+host+"] "+dev_addr+" "+mac);
                    invdevice.setEntityTitle(type+": ["+host+"] "+dev_addr+" "+mac+" уст.");
               wsDevice.deviceUpdate( invdevice ); */
            
                                  wsDevice.inetDeviceUpdate( device, true );
               EventProcessor.getInstance().publish( new InetReloadEvent( INET_MODULE_ID, 0 ));


версия 6.1


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2016, 18:52 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2016, 20:56 
Не в сети

Зарегистрирован: 10 авг 2015, 15:44
Сообщения: 51
Откуда: Махачкала
Карма: 9
это вырезка из кода модуля написанного в "управление динамическим кодом"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 янв 2016, 16:26 
Не в сети

Зарегистрирован: 10 авг 2015, 15:44
Сообщения: 51
Откуда: Махачкала
Карма: 9
ну что народ, нет никаких подсказок? Вроде много кто писал аналогичное, для добавления устройств в модуле Inet.
Наверняка какой то атрибут забыл установить или кроме inetDeviceUpdate (или deviceUpdate) нужно вызвать еще какой то метод, чтоб сохранение устройства прошло как положено?!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 мар 2016, 20:51 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Основная проблема, что до вызова
EventProcessor.getInstance().publish( new InetReloadEvent( INET_MODULE_ID, 0 ));
нужно вызвать context.commit(), т.к. до коммита изменения в БД другим соединениям не видны, а InetAccess по событию InetReloadEvent начинает перечитывать устройства и еще не видит новое.

Проблема с именем пока не понятна - если просто добавляете новое устройство через клиент - такая же проблема или имя сохраняется нормально?


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

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


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

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


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

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