BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: [6.0] Свободный IP-адрес в ресурсах
СообщениеДобавлено: 09 дек 2015, 11:17 
Не в сети

Зарегистрирован: 28 авг 2014, 09:26
Сообщения: 162
Карма: 0
Здравствуйте.

Не удается найти метод для получения свободного IP-адреса из ресурсов. Есть что-нибудь подобное?

Сервис по Логину и Паролю, IP-адрес статический (выбирается в ручную при заведении).

Есть обработчик, который создает сервис, и вот в нем требуется получить свободный IP-адрес.


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Код:
         import ru.bitel.bgbilling.modules.inet.api.common.service.InetServService;
         import ru.bitel.oss.systems.inventory.resource.common.ResourceService;

         ...

         final InetServService servService = ctx.getService( InetServService.class, moduleId );
         final ResourceService resourceService = ctx.getService( ResourceService.class, moduleId );

         ...

         switch( servType.getAddressType() )
         {
            case InetServType.ADDRESS_TYPE_SINGLE:
            {
               List<Integer> ipResourceCategoryIds = servService.ipResourceCategoryIds( serv.getDeviceId(), serv.getInterfaceId(), serv.getTypeId() );
               
               List<IpResourceRange> rangeList = resourceService.freeIpResourceRangeList(
                  ipResourceCategoryIds, null, serv.getDateFrom(), serv.getDateTo(), 1, 1 );

               if( rangeList != null && rangeList.size() > 0 )
               {
                  IpResourceRange range = rangeList.get( 0 );
                  serv.setIpResourceId( range.getIpResourceId() );
                  serv.setAddressFrom( range.getAddressFrom() );
               }
               else
               {
                  e.setError( "Невозможно назначить IP-адрес сервису." );
                  return;
               }
            }
               break;

            default:
               break;
         }

         ...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 дек 2015, 09:33 
Не в сети

Зарегистрирован: 28 авг 2014, 09:26
Сообщения: 162
Карма: 0
Amir
Спасибо!

Может кому пригодится "готовый кусок"
serv - это InetServ
Ошибки не отрабатываю, не определились что возвращать

Код:
// Get Free IP
import ru.bitel.bgbilling.modules.inet.api.common.service.InetServService;
import ru.bitel.oss.systems.inventory.resource.common.ResourceService;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.oss.systems.inventory.resource.common.bean.IpResourceRange;

........

// Get Free IP
int MODUL_ID = 4;
ServerContext context = new ServerContext( setup, MODUL_ID, 0 );

final InetServService servService = context.getService( InetServService.class, MODUL_ID );
final ResourceService resourceService = context.getService( ResourceService.class, MODUL_ID );

List<Integer> ipResourceCategoryIds = servService.ipResourceCategoryIds( serv.getDeviceId(), serv.getInterfaceId(), serv.getTypeId() );
List<IpResourceRange> rangeList = resourceService.freeIpResourceRangeList( ipResourceCategoryIds, null, serv.getDateFrom(), serv.getDateTo(), 1, 1 );
if( rangeList != null && rangeList.size() > 0 ) {
                  IpResourceRange range = rangeList.get(0);
                  serv.setIpResourceId( range.getIpResourceId() );
                  serv.setAddressFrom( range.getAddressFrom() );
}


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

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


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

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


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

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