Web interface for swtoolz-core | Статья в blogspot (RU)
Сылка для скачивания http://pv.diprojects.ru/pv.zip
Изменена структура приложения! Если у вас есть работающая старая версия 0.1, то после скачивания нужно заново наcтроить все по инструкции ниже, начиная с пункта Настройка WEB-сервера (структура базы данных не менялась).
- Приложение построено на PHP-фрэймворке CodeIgniter
- В качестве СУБД используется MariaDB/MySQL
- Для визуального оформления используется css-фрэймворк Bootstrap 3
На данный момент приложение умеет отображать:
- Имя интерфейса (например 3/1 или gi0/1/2)
- Description интерфейса
- Тип среды передачи данных (выделяется цветом, а так же есть информация в title)
- Текущий и административный статусы интерфейса
- Текущую и административную скорость интерфейса (отображается в title)
- Наличие включенного административно flow-control на интерфейсе
- Описание модулей в шасси или в стеке
- В отдельный блок вынесена общая информация об устройстве, такая как: системное имя, uptime, модель устройства и т.д.
- Можно вывести виланы в title
- Можно скачать виланы устройства файлом в формате txt или scv (если включен api_debug, то в скачиваемый файл автоматически добавится вывод дебага - особенность архитектуры приложения)
- Для Foundry поддерживается получение l3-интерфейсов, которые маршрутизируют данные виланы. Логика построена на vendor specific, методом проб и ошибок выведен алгоритм. Возможно скоро появится поддержка Brocade SX.
Любое уникальное состояние опрошенного устройства сохраняется в базе. Нажав на соответствующую кнопку можно посмотреть сохраненные состояния данного устройства в конкретный момент времени.
Создаем в СУБД юзера и БД, заливаем в БД дамп pv.sql, после чего в таблице config настраиваем параметры взаимодействия с swtoolz-core. Если флаг api_debug имеет значение 1, то в html код страницы будет выводится вся последовательность взаимодействия с swtoolz-core.
Далее переходим к заполнению таблицы com_indexes в нее заносим все доступные индексы. Поле str заполняем для удобства восприятия, и для ориентирования в админке, которая находится в разработке. В конце выбираем тот индекс, с которым устройство будет опрашиваться по умолчанию, устанавливаем для этого индекса поле default в значение 1
Для работы приложения в PHP необходимо включить библиотеку Curl. В качестве root-директории указываем папку public, это позволит повысить безопасность приложения. Что бы исключить из всех ссылок index.php нужно соответствующим образом настроить параметры хоста.
Для работы должен быть включен mod_rewrite. Ниже приведенный код достаточно будет скопировать в файл .htaccess, и положить этот файла в папку public
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Для базовой работы приложения в конфиге хоста будет достаточно изменить контекст location таким образом:
location / {
try_files $uri $uri/ /index.php;
}
Все файлы приложения находятся рядом с папкой public, но при желании можно изменить пути на нужные в файле public/index.php изменив соответствующим образом переменные $system_path и $application_folder, указывать желательно полный путь к папкам назначения. Почитать про эти настройки можно тут: EN/RU.
Определившись с расположением файлов приступаем к настройке приложения.
- Настраиваем подключение к СУБД в файле app/config/database.php
- В файле app/config/config.php настраиваем параметр base_url
- Приступаем к созданию узлов и устройств.