Skip to content

RyabykinIlya/ui_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#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 execute window Command executions history: Command executions histsory Locked command: Locked command Modal window with dynamic params: Modal window with dynamic params

TODO:

  1. Favorite сервера-команды, на главном экране часто выполняемые выводить. Либо добавленные самим пользователем.

  2. Возможность передавать аргументы в команду, после нажатия выполнить можно ввести путь/пароль и т.д.

  3. Установка таймера выполнения команды или тайм-аут

  4. Отмена команды. Запоминать PID запущенной, по кнопке убивать процесс?

  5. Вывод ошибки с сервера, например если сервер не доступен -> показывать пользователю

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

  7. Создавать веб-сокет при выполнении программы(по клику на кнопку) При нажатии на выполнение новой команды - закрывается старый сокет, там прописать закрытие трансорта.

  8. Новая модель (CSCU) Contour-Server-Command-User В которой хранятся локи на команды, смотреть по статусу выполнения(inprogress, done), хранить историю выполненных комманд пользователями?

  9. Сделать lock-комманд, новое поле - разрешить выполнять параллельно. Если кто-то выполняет - проставляется lock в CSCU

  10. Сделать garbage-collector для cscu, чтобы при инициализации сессии проверялся статус комманд, чтобы не оставалось залоченных комманд по ошибке

  11. Выполнение комманд на нескольких серверах последовательно/параллельно

  12. При нажатии выполнить в окне выбираешь время выполнения/через сколько запустить(ползунком). Для каждого пользователя есть экран с очередью задач, либо общая очередь, но отменять/переносить могут только те, кто создавал.

  13. Доработать поле show_on_page для модели MenuItems

DONE 15. Locked на экране выполнения комманд сделать через общий веб-сокет с каналами, чтобы в реальном времени отображался статус

IMPORTANT

  1. https://habr.com/ru/company/oleg-bunin/blog/433476

  2. Написать обработчики, которые делают запрос и вызывают методы класса хислоггер, их уже передавать на вход в rq_enqueue Передавать в очередь только ключи, делать поиск уже непосредственно в вызове функции (без объектов моделей)

  3. Сделать все обработчики задач для rq принимающими args и kwargs

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

  5. Удаление cscu - отражение на экране "команды"

  6. При потере соединения с сокетом закрывать функционал