Всем привет! Недавно исходя из примеров на 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