Добрый день!
Вот решил попробовать реализовать такую схему сервисов:
A: Сервис "шейпер" (учитывается только устройство на котором шейпируем)
B: Сервис "ресурсы" (учитывается порт и vlan на коммутаторе клиента)
C: Сервис IP (учитывается статически назначенный ip клиенту)
Делаем такую вложенность:
A -> B -> C1, C2, CN
После этого в serviceModify пытаюсь следующим кодом добраться до C1..Cn
Код:
if(service.getTypeId() == LL_SHAPER_SID) {
logger.error("Service: " + service.getId() + " iface: " + service.getInterfaceTitle() + " vlan: " + service.getVlan());
List<InetServ> shaperChildren = service.getChildren();
Iterator<InetServ> shaperIterator = shaperChildren.iterator();
while(shaperIterator.hasNext()) {
InetServ shaperService = shaperIterator.next();
logger.info("has shaperService ID: " + shaperService.getId());
if(shaperService.getTypeId() == LL_RESOURCE_SID) {
List<InetServ> resourceChildren = shaperService.getChildren();
if(resourceChildren == null)
logger.info("resourceChildren is null: ");
Iterator<InetServ> resourceIterator = resourceChildren.iterator();
while(resourceIterator.hasNext()) {
InetServ ipService = resourceIterator.next();
logger.info("has ipService ID: " + ipService.getId());
iplist.append( SPACE );
iplist.append( IpNet.toString(ipService.getAddressFrom(), IpNet.getMask(ipService.getAddressFrom(), ipService.getAddressTo())) );
}
}
}
}
так вот resourceChildren всегда null

Если вложенность сервисов одинарная, то есть A убираем, и только B и C используем, то все замечательно работает.