Перейти до

Релизы Ubilling


Рекомендованные сообщения

Поставил, вроде все по инструкции, но к базе данных не подключается. В логах пишет, что подключение идет со стандартными параметрами (www-data, без пароля).

Выполнил скрипт в дебаге - класс MySQLDB из api.mysql.php вообще не вызывается.

 

Извиняюсь, ошибся в одной букве в логине. А в логах об этом ни слова.

Відредаговано Maxaon
Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 1,2k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Да кстати если кому то нужен шаблон для свича то вот  можно воспользоваться такой штукой  шаблоно-генератором

Преувеличиваем? Ничего особенного и нового я не сделал

Ни один единорог не пострадал? =)

Posted Images

класс MySQLDB из api.mysql.php вообще не вызывается.

Это невозможно в принципе.

Объект $db создается только единожды в виде $db = new MySQLDB(); в apiloader который однозначно отрабатывает на каждом телодвижении.

Дебужить оное дебужилками в IDE практически бесперспективно изза того что прямые инклуды практически не используються чтобы обеспечить динамическую подгрузку модулей.

 

Проблема порыться может разве что в правах на конфиги.

Ссылка на сообщение
Поделиться на других сайтах
класс MySQLDB из api.mysql.php вообще не вызывается.

Это невозможно в принципе.

Объект $db создается только единожды в виде $db = new MySQLDB(); в apiloader который однозначно отрабатывает на каждом телодвижении.

Дебужить оное дебужилками в IDE практически бесперспективно изза того что прямые инклуды практически не используються чтобы обеспечить динамическую подгрузку модулей.

 

Проблема порыться может разве что в правах на конфиги.

Да, оказалось что одну букву неправильно написал. Теперь буду знать, спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Итак , новый релиз Ubilling 0.1.4 rev 666 (а кто бы сомневался?)

 

Список изменений:

* Исправлена локализация

* Модуль "Отчет по подключениям": добавлена популярность тарифов

* Теперь отображаються администраторы в отчете по оплатам и в интерфейсе внесения оплат

* alter.ini: новый параметр TARIFFCHGRESET отвечающий за ресет пользователя при смене тарифа

* alter.ini: новый параметр PASSWORDSHIDE позволяющий прятать пароли пользователей

* Новый скрипт GetCF для внешнего получения кастомных полей профиля. Использование: GetCF [login] [custom field id]

* alter.ini: новый параметр DN_ONLINE_DETECT позволяющий помечать звездочкой пользователей для которых отработан OnConnect

* Модуль "Онлайн": добавлено динамическое добавление колонки "Онлайн" при включении DN_ONLINE_DETECT

* Модуль "DHCP": добавлен редактор подсетей

* Модуль "DHCP": для каждой сети можно описать персональный шаблон имеющий приоритет перед глобальным config/dhcp/subnets.template

* Модуль "DHCP": добавлен предпросмотр сгенерированных конфигов

* Новый плагин профиля: "Удаление пользователя" - как следует из названия для удаления пользователя и всех связанных с ним данных

 

Качать как всегда здесь: http://ubilling.net.ua/ub.tgz

Более-менее актуальная инструкция по установке: http://wiki.ubilling...id=setupfreebsd

Обновленное онлайн демо: http://wiki.ubilling.net.ua/doku.php?id=demo

 

post-4093-0-51832700-1362671582_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Вот тут пишу свой модуль и возник один вопрос: Будет ли система переписываться на более серьезную платформу, к примеру на Zend Framework. Я конечно понимаю, что на данный момент выбрана CMS попроще, однако лично мне не хватает наследования и модульности системы. Пришлось менять некоторые файлы и при обновлении все изменения полетят к чертям.

Ссылка на сообщение
Поделиться на других сайтах
Будет ли система переписываться на более серьезную платформу, к примеру на Zend Framework.

Хорошо пошутили, шутку оценил.

Почему тогда уже не symphony? :)

 

 

однако лично мне не хватает наследования и модульности системы.

оО

 

Пришлось менять некоторые файлы и при обновлении все изменения полетят к чертям.

Здесь подробнее пожалуйста. Что же такого страшного нужно менять в фреймворке чтобы написать очередной модуль?

Ссылка на сообщение
Поделиться на других сайтах
Почему тогда уже не symphony?

Можно и ее, главное чтобы была с использованием MVC и нормально работала с модулями. Но я работал на zend'e, поэтому говорю про него.

 

 

однако лично мне не хватает наследования и модульности системы.

Ну, некая часть модульности есть, спорить не буду. Однако то, что все части модуля разбросаны по разным частям, немного выводит из себя. Модели в api/libs которые надо прописывать в apiloader'e, т.е. обновить простым распаковыванием не получится. Будет появляться admin с дефолтным паролем(хотя можно chmod 0, но не кошерно) . Настройки модуля, иконки, перевод тоже хранятся отдельно.

Еще крайне настораживает отсутствие прослойки между БД и приложением, наверняка где-то будет отсутствовать проверка входных данных и выльется это в sql инъекция. Лично я уже один раз забыл проверку сделать.

 

 

К тому-же, я считаю что для такого серьезного продукта не хватает модульного тестирования, а также коментариев, как в самой CMS (что я считаю недомустимым), так и в коде биллинга.

 

Я понимаю что я желаю чересчур много, однако возможно ли заняться переписью в дальнейшем будущем?

Ссылка на сообщение
Поделиться на других сайтах
Можно и ее, главное чтобы была с использованием MVC и нормально работала с модулями. Но я работал на zend'e, поэтому говорю про него.

Вы видимо сарказма не уловили, в следующий раз постараюсь иллюстрировать картинкой.

 

 

Модели в api/libs которые надо прописывать в apiloader'e, т.е. обновить простым распаковыванием не получится.

А еще можно просто закидывать файлики в modules/engine/ на находим?

 

 

Еще крайне настораживает отсутствие прослойки между БД и приложением

а api.mysql это конечно же невидимый уровень абстракции.

 

 

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

Точно - давайте упакуем локализации, иконки, модуля в один файл, компактненько так будет, ага...

 

 

наверняка где-то будет отсутствовать проверка входных данных и выльется это в sql инъекция

...а если бы внимательно поизучали код могли бы и заметить что все данные которые попадают к методам, уже разок не найденого вами класса MySQLDB - фильтруются по мере возможности либо посредством vf() либо как минимум mysql_real_escape - в контексте непубличного интерфейса, доступ к которому бай дефолт имеет ограниченный набор сотрудников данные меры считаются допустимыми.

 

 

Я понимаю что я желаю чересчур много, однако возможно ли заняться переписью в дальнейшем будущем?

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

 

А пока что давайте остановимся на том, что я буду пилить свой (бесплатный кстати) продукт так как удобно мне и соответственно на удобном мне - тобишь на моем фреймворке?

Ссылка на сообщение
Поделиться на других сайтах

А пока что давайте остановимся на том, что я буду пилить свой (бесплатный кстати) продукт так как удобно мне и соответственно на удобном мне - тобишь на моем фреймворке?

О, а я хочу білого ведмедика на сторінці юзера. :D

post-4093-0-37081800-1362671636_thumb.jpg

І зайчика в адмінах.

 

post-4093-0-68959600-1362671667.jpg

Ссылка на сообщение
Поделиться на других сайтах

Ничего личного но звучало это как: "Вы nightfly/morfey/Небесный/bizzarre(никого не забыл?) настолько криворукие м@д#ки что за почти год топтания на месте родили что-то крайне убогое на что и смотреть то жаль, а все из-за того у меня предварительно не спросили".

 

http://www.youtube.com/watch?v=OXoap2lKS3M

Ссылка на сообщение
Поделиться на других сайтах

Сразу объявляю для всех пугающихся - при удалении пользователя при помощи нового модуля "смертушки с косой" происходит последовательно следующее:

 

1. пользователь выселяется

2. убивается его почта

3. удаляются его примечания

4. удаляются телефоны и мобилки

5. удаляется Ф.И.О.

6. Сносятся все оверрайды скорости

7. Грохается договор

8. Очищаются счета виртуальных сервисов

9. Очищаются данные сетей (айпишки, маки, итд)

10. Если требуется происходит регенерация всех конфигов DHCP

11. Вызывается процедура удаления пользователя stargazer

 

Сам по себе логин пользователя stargazer ищезает через минуту-две, не следует сразу пугаться и писать мне "аааа, все погибло". Это связано с тем что stargazer выжидает удачный момент (ну чтобы небыло свидетелей) что-бы по тихому убить пользователя :(

 

Еще один ньюанс - в релизе 0.1.4 происходит выселение пользователя и его квартира остается бесхозной. В 0.1.5 это уже исправлено - она взрывается при надобности автоматически.

Для того чтобы обойти этот ефект можно просто перед удалением пользователя его выселять.

Ссылка на сообщение
Поделиться на других сайтах

...

Это связано с тем что stargazer выжидает удачный момент (ну чтобы небыло свидетелей) что-бы по тихому убить пользователя :)

...

Это лучшее объяснение процесса из всех которые я когда-либо слышал (и сам сочинял) :)

 

...

Сам по себе логин пользователя stargazer ищезает через минуту-две...

Скорее через 2-3 минуты.

Ссылка на сообщение
Поделиться на других сайтах

Обновили сайт от версии "сделайте меня развидеть это" до варианта "три холодильника лучше чем два".

Релиз 0.1.5 как водиться очень даже не за горами. За процесом изменений как водиться можно понаблюдать здесь

Ссылка на сообщение
Поделиться на других сайтах

Кстати, nightfly, у тебя запись detailstat включена?

У себя начал наблюдать высокую i/o загрузку от мускула. Пока запись детальной статистики выключил, попустило.....

Ссылка на сообщение
Поделиться на других сайтах

Включена, но только для пользователей со старыми трафикоориентированными тарифами, что в процентом выражении выглядит как 0% с округлением до целых. В общем то и трафик сейчас считается только для проформы.

Если есть сильная потребность в глубокой детализации трафика возможно есть смысл разгреб%#ь его на другом хосте средствами flow-tools?

Ссылка на сообщение
Поделиться на других сайтах

http://xxx.xxx.xxx.xxx/?module=report_sysload

Ничего не открывает, долго бегает строка ожидания, пока откроет страницу и на выходе ноль.....

 

http://xxx.xxx.xxx.xxx/phpsysinfo

открытие - моментальное.

 

В чем может быть грабля? Как отдебажить?

Ссылка на сообщение
Поделиться на других сайтах

http://xxx.xxx.xxx.x...=report_sysload

Ничего не открывает, долго бегает строка ожидания, пока откроет страницу и на выходе ноль.....

Возможно в том, что и у меня было :

Путь к top в пакетном режиме

пропишите :

/usr/bin/top -b -n1

Ссылка на сообщение
Поделиться на других сайтах

Как и обещал (а обещал "вскоре") в основном багфикс релиз Ubilling 0.1.5 rev 688

 

Изменения:

* Модуль "Удаление пользователя": исправлено неполное удаление квартиры, раньше происходило только выселение

* Модуль "Права администраторов": добавлено удаление администратора

* Модуль "Права администраторов": добавлено изменение пароля и прочих полей пользователя

* alter.ini: новый параметр TRANSLATE_PAYMENTS_NOTES отвечающий за приведение примечаний к платежам к человеческому виду

* Модуль "Финансовый отчет": теперь администратор произвевший оплату логируется отдельно вместо поиска по времени в общем логе

* Изменилась структура БД: таблица "payments"

* Модуль "Отчет по подключениям": исправлена ошибка в случае удаления пользователя

* alter.ini: новый параметр HIGHLIGHT_IMPORTANT подсвечивающий в профиле важные поля: логин, пароль, IP итд.

* Модуль "Популярность тарифов": исправлена ошибка в случае выселения пользователя

* Модуль "Отчет по трафику": добавлена фильтрация NAS с одинаковой ссылкой на Bandwidthd

* Исправлена работа функции web_Overlay

* Модуль "Предприниматели": добавлено редактирование

 

После обновления объязательно и настоятельно требуется вкатить в SQL-консоль следующий малююсенький мидлпатчик на БД:

 

ALTER TABLE `payments` ADD `admin` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `date`;

 

Вот плюшка для тех, кто до конца не разобрался что нужно бекапить перед обновлением:

#!/bin/sh

# Привет, я скрипт автообновления для очень ленивых.  Я с удволольствием спрячу все ваши данные
# и обновлю Ubilling до последней версии. Положите меня на уровень выше каталога
# где размещен сам Ubilling (например по адресу /usr/local/www/data/autobillingupdate.sh если
# ubilling находится в каталоге /usr/local/www/data/billing)
#
# P.S. так как я скрипт для самых ленивых я использую wget, он должен быть установлен.

echo "=== Backup current data ==="
cd ./billing/
rm -fr ../ub_restore
mkdir ../ub_restore
mkdir ../ub_restore/config
mkdir ../ub_restore/content
mkdir ../ub_restore/multinet
cp .htaccess ../ub_restore/
cp -R ./multinet ../ub_restore/
cp ./config/alter.ini ../ub_restore/config/
cp ./config/billing.ini ../ub_restore/config/
cp ./config/mysql.ini ../ub_restore/config/
cp -R ./config/dhcp ../ub_restore/config/
cp -R ./content/users ../ub_restore/content/
cp ./config/printcheck.tpl ../ub_restore/config/
echo "=== Backup current version ===="
rm -fr ../ub_old_version
mkdir ../ub_old_version
cp -R ./* ../ub_old_version
echo "=== Cleanup ==="
rm -fr ./*
echo "=== Downloading new release ==="
wget http://ubilling.net.ua/ub.tgz
echo "=== Unpacking ==="
tar zxvf ub.tgz
echo "=== Restoring configs ==="
cp -R ../ub_restore/* ./
echo "=== Setting permissions ==="
chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php
echo "=== Linking True Online ==="
ln -fs /etc/stargazer/dn /usr/local/www/data/billing/content/dn
echo "===Update complete ==="

 

Забирать свежатинку как водиться здесь: http://ubilling.net.ua/ub.tgz

Обновленное демо где-то там: http://ubilling.net....npages&pid=demo

Более-менее актуальная инструкция по установке: http://wiki.ubilling...id=setupfreebsd

 

Небольшой анонс: уходим в глубокий и затяжной андеграунд в связи с обилием заказной писанины.

Что должно появиться в 0.1.6? Довольно сложный вопрос но думаю план работ будет следующим:

- Конечно же в первую очередь, править проблемы о которых рапортуют наши дорогие слушатели и зрители

- В конце-концов довести до ума пользовательский кабинет (карточкопополнялка, тарифоменялка, документировать)

- Допилить возврат рандомных атрибутов RADIUS

- Портировать старый динамический шейпер хотябы в черновом варианте

- Учет хозяйственных операций (кто-что-куда-зачем-стырил?)

- Всякие маленькие полезняшечки типа arping или "истории DHCP" о которых давно просили но никак ручки не добирались

- Начать работы над функционалом учета КТВ

Ссылка на сообщение
Поделиться на других сайтах

Да блин, забыл :)

Просто у меня она слегка на другом хосте.

В любом случае пользовательской статистикой то что есть сейчас, это назвать сложно. Более на черновую заготовку похоже. Ведутся работы по ее приведению к общеупотребительному виду.

Ссылка на сообщение
Поделиться на других сайтах

Мда, вы таки сказочно правы - далее там идет работа с multinet_get_network_params() которое ожидает таки netid.

Странно как это можно было пропустить :)

 

С утра тщательно подебужу, там много старого кода перенесенного "как-есть".

Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Remez
      Ценник 5,500
       
      в наличии 3 шт
       
       





    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від Plastilin
      Вітаю. Маю наступний комплект. Ubilling на Debian + Mikrotik CHR як маршрутизатор. Наче все запустилось, але виникло питання яке не вдається розрулити. Читав Wiki, ковиряв, читав знову Wiki, знову ковиряв - не допомогло.
      Чи можливо якось визначити конкретну IP адресу з пулу який видає Mikrotik клієнту через Radius? Мені пропонує обрати наступну вільну адресу з пулу при спробі зміни адреси?
      З цього з'являється додаткове питання, чи можливо контролювати доступ користувачам у яких IP назначений статично, тобто прописаний вручну? Наприклад при зміні статусу не активний - пхати до Firewall Mikrotik правила заборони доступу з IP адреси визначеної вручну, навіть якщо вона не отримана по DHCP.
       
      UPD: з першою частиною знайшов: IP_CUSTOM=1 в alter.ini 
    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від ppv
      Проглянув FAQ і Ubilling Wiki. Зацікавило питання чи є в Ubilling якась реалізація reCAPTCHA, чи потрібно додавати руцями, (для прикладу для форми подачі заявок чи для кабінету користувача)?
       

×
×
  • Створити нове...