Skip to content

Latest commit

 

History

History
62 lines (55 loc) · 6.25 KB

Export.md

File metadata and controls

62 lines (55 loc) · 6.25 KB

Список серверов

В файле export_servers.py, находящемся в папке с установленным Pleasе (TODO: переместить в папку, доступную после установки), находятся настройки серверов в формате ассоциативного массива:

servers = { 
  'local_ejudge' : EjudgeExporter(
    network = { 
      'host' : '127.0.0.1',
      'port' : '22',
      'login' : 'ejudge',
      'password' : 'ejudge',
      'destination' : '/home/judges/'
    },  
    libs = []
  ),
  'lksh' : EjudgeExporter(
    ...
  ),
  'pcms2_server1' : PCMS2Exporter(
    network = {
      'host' : r'Z:\problems'
    },
    libs = []
  )
}  

Здесь

  • host - адрес сервера
  • port - ssh-порт
  • login - логин пользователя, у которого есть доступ к папке с контестами
  • password - пароль для аутентификации (опционально, используется только в Windows)
  • private_key - путь к закрытому ключу для аутентификации (опционально)
  • destination - путь к папке с контестами

Экспорт в Ejudge

Для экспорта в Ejudge необходимо:

  1. Добавить в export_servers.py конфигурацию сервера
  2. Создать в Ejudge контест, узнать его номер (с ведущими нулями)
  3. Далее возможно два варианта: 1. Задачи уже объединены в контест. Тогда достаточно написать please export <название контеста в Please> to <название конфигурации сервера, например, local_ejudge> contest <ID контеста, обычно состоит из шести цифр> Пример: please export A+12.01.03 to lksh contest 000006 Контест с конфигурационным файлом A+12.01.03.contest будет экспортирован в ejudge под номером 000006 1. Задачи не объединены в контест. В таком случае необходимо выполнить команду: please export to <название конфигурации сервера> contest <ID контеста> problems <список путей к задачам через пробел> Пример: please export to lksh contest 000006 problems sloniki aplusb. Задачи sloniki и aplusb будут залиты в ejudge с конфигурацией под названием lksh, в контест с номером 000006

Что происходит?

При экспорте в ejudge на сервер, в подпапку please_tmp контеста, заливается архив, содержащий внутри себя несколько задач в том же формате, что и в please, и скрипт, написанный на Python 3. После запуска данный скрипт считывает конфигурацию контеста из файла ../conf/serve.cfg, заменяет уже существующие задачи на новые (уникальный идентификатор задачи - internal_name в ejudge), дописывает в конец файла добавившиеся задачи.

После успешного добавления задач необходимо зайти в View details контеста и сделать там Check contest settings, далее - Restart management.

PCMS2

Для экспорта в PCMS2 необходимо:

  1. Подключить расшаренную vfs папку PCMS2 сервера. 1. Windows:
    1. Чтобы подключить диск из папки "Мой компьютер", нажмите кнопку Пуск, щелкните правой кнопкой мыши пункт Мой компьютер и выберите команду Проводник.
    2. В меню Сервис выберите Подключить сетевой диск.
    3. Выберите букву диска в поле Диск.
    4. В поле Папка введите UNC-путь для сервера и общего ресурса в следующем формате: \<имя pcms2 сервера><имя расшаренной vfs папки>. Можно найти компьютер и общий ресурс, нажав кнопку Обзор. 1. Linux: mkdir /mount/<имя точки монтирования> && mount -t cifs -o username=<username>,password=<password> //<имя pcms2 сервера>/<имя расшаренной vfs папки> /mount/<имя точки монтирования>
  2. Добавить в export_servers.py конфигурацию сервера: путь до папки problems
  3. Залить задачи в pcms2. Далее возможно два варианта: 1. Задачи уже объединены в контест. Тогда достаточно написать please export <название контеста в Please> to <название конфигурации сервера> contest <package-префикс задач> Пример: please export A+12.01.03 to pcms2_server1 contest ru.lksh.2011.july.A.day02 Контест с конфигурационным файлом A+12.01.03.contest будет экспортирован в PCMS2 в папку ru/lksh/2011/july/A/day02/ 1. Задачи не объединены в контест. В таком случае необходимо выполнить команду: please export to <название конфигурации сервера> contest <package-префикс задач> problems <список путей к задачам через пробел> Пример: please export to pcms2_server1 contest ru.lksh.2011.july.A.day02 problems sloniki aplusb. Задачи sloniki и aplusb будут залиты в PCMS2 с конфигурацией под названием pcms2_server1, в папку ru/lksh/2011/july/A/day02/