#ui_cli
Django version 2.0.2 'final'
Service to work with *nix-like systems, execute commands through UI-interface.
Still in dev state.
Data model: {Permission:(User(s), Contour(s), Server(s), Command(s))}
#EXAMPLES
Command execute window: Command executions history: Locked command: Modal window with dynamic params:
-
Favorite сервера-команды, на главном экране часто выполняемые выводить. Либо добавленные самим пользователем.
-
Возможность передавать аргументы в команду, после нажатия выполнить можно ввести путь/пароль и т.д.
-
Установка таймера выполнения команды или тайм-аут
-
Отмена команды. Запоминать PID запущенной, по кнопке убивать процесс?
-
Вывод ошибки с сервера, например если сервер не доступен -> показывать пользователю
-
Загружать команду в базу из файла, выполнять сразу через окно загрузки файла?
-
Создавать веб-сокет при выполнении программы(по клику на кнопку) При нажатии на выполнение новой команды - закрывается старый сокет, там прописать закрытие трансорта.
-
Новая модель (CSCU) Contour-Server-Command-User В которой хранятся локи на команды, смотреть по статусу выполнения(inprogress, done), хранить историю выполненных комманд пользователями?
-
Сделать lock-комманд, новое поле - разрешить выполнять параллельно. Если кто-то выполняет - проставляется lock в CSCU
-
Сделать garbage-collector для cscu, чтобы при инициализации сессии проверялся статус комманд, чтобы не оставалось залоченных комманд по ошибке
-
Выполнение комманд на нескольких серверах последовательно/параллельно
-
При нажатии выполнить в окне выбираешь время выполнения/через сколько запустить(ползунком). Для каждого пользователя есть экран с очередью задач, либо общая очередь, но отменять/переносить могут только те, кто создавал.
-
Доработать поле show_on_page для модели MenuItems
DONE 15. Locked на экране выполнения комманд сделать через общий веб-сокет с каналами, чтобы в реальном времени отображался статус
-
Написать обработчики, которые делают запрос и вызывают методы класса хислоггер, их уже передавать на вход в rq_enqueue Передавать в очередь только ключи, делать поиск уже непосредственно в вызове функции (без объектов моделей)
-
Сделать все обработчики задач для rq принимающими args и kwargs
-
Для передачи аргументов сделать доп таблицу, где для комманд будут храниться частоиспользуемые параметры, будет пиклист, в который можно вводить новые значения
-
Удаление cscu - отражение на экране "команды"
-
При потере соединения с сокетом закрывать функционал