Bug 51894

Summary: Не работает веб интерфейс
Product: Sisyphus Reporter: Pavel Sivolapov <sivolapovps>
Component: ravadaAssignee: Andrew Vasilyev <andy>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: amakeenk, andy
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Pavel Sivolapov 2024-10-30 17:59:28 MSK
Стенды:
Alt Server 11.0 x86_64 - обновлен до sisyphus
Alt Workstation 11.0 x86_64 - обновлен до sisyphus

Версия пакета:
ravada-2.3.1-alt1.noarch

Шаги воспроизведения:
1. Установить пакет:
   # apt-get install ravada

2. Выполнить настройку до момента включения служб rvd_back и rvd_front
   https://www.altlinux.org/VDI/Ravada

3. Запустить службы:
# systemctl enable --now rvd_back
# systemctl enable --now rvd_front   

4. Перейти в веб интерфейс:
   http://<ip>:8081
5. Залогиниться под созданным пользователем на этапе настройки

Ожидаемый результат:
Открылся веб интерфейс

Реальный результат:
Белый экран. В f12 есть ошибки 404 на ресурсы по адресу:
http://localhost:8081/fallback/*

Пример:
http://localhost:8081/fallback/angular-1.8.2/angular-resource.min.js

Сравнение # curl http://localhost:8081/fallback

Версия ravada-2.3.1-alt1
<script src="/fallback/angular-1.8.2/angular-resource.min.js"></script>

Версия ravada-1.7.2-alt1
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular-resource.min.js"></script>

fallback отключен в /usr/sbin/rvd_front 
,fallback => 0

В гите ravada https://github.com/UPC/ravada/blob/main/script/rvd_front
,fallback => $CONFIG_FRONT->{fallback}

Чинится исправлением строки в /etc/rvd_front.conf
,fallback => 1 
на
,fallback => 0 

Или сборкой пакета с файлом fallback.conf и правильно заданными переменными
Comment 1 Andrew Vasilyev 2024-10-30 18:12:09 MSK
  Пожалуйста, проверьте из задания #361186
Comment 2 Pavel Sivolapov 2024-10-31 10:58:48 MSK
(Ответ для Andrew Vasilyev на комментарий #1)
>   Пожалуйста, проверьте из задания #361186

Файл fallback.conf появился, но эффекта не возымело.

Может поэтому?
https://github.com/UPC/ravada/blob/main/etc/get_fallback.pl

my $DIR_FALLBACK = getcwd.'/public/fallback';

mkdir $DIR_FALLBACK or die "Error: $! $DIR_FALLBACK"
    if ! -e $DIR_FALLBACK;

Скрипт опирается на ссылки из fallback.conf и скачивает эти файлы в определенные директории внутри директории /usr/share/ravada/public/fallback

Данной директории нет в пакете

# rpm -ql ravada | grep fallback
/etc/fallback.conf
Comment 3 Andrew Vasilyev 2024-10-31 13:06:19 MSK
(Ответ для Pavel Sivolapov на комментарий #2)
> https://github.com/UPC/ravada/blob/main/etc/get_fallback.pl
> 
> my $DIR_FALLBACK = getcwd.'/public/fallback';
> 
> mkdir $DIR_FALLBACK or die "Error: $! $DIR_FALLBACK"
>     if ! -e $DIR_FALLBACK;

  Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(

> Скрипт опирается на ссылки из fallback.conf и скачивает эти файлы в

  В скрипте явная ошибка, конфиг он ищет в текущем каталоге:

my $FILE_CONFIG = 'etc/fallback.conf';
...
open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";

  Т.е. нужно искать другой способ решения проблемы :(
Comment 4 Pavel Sivolapov 2024-10-31 16:57:03 MSK
(Ответ для Andrew Vasilyev на комментарий #3)

>   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(

https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16

get_fallback();

Принтит всё что в get_fallback.pl и выполняет, то что в нём

Доп:
https://github.com/UPC/ravada/issues/1968
https://ravada.readthedocs.io/en/latest/docs/local_resources.html

Разработчики не стали бы мерджить fallback просто так...
https://github.com/UPC/ravada/pull/1124/commits/7e9797a586bc533f0db57c9518afbaf7ed7cc430

>   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> 
> my $FILE_CONFIG = 'etc/fallback.conf';
> ...
> open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> 
>   Т.е. нужно искать другой способ решения проблемы :(

Используют /etc для файлов не входящих в итоговый пакет, звучит логично.
Comment 5 Andrew Vasilyev 2024-10-31 17:51:41 MSK
(Ответ для Pavel Sivolapov на комментарий #4)
> (Ответ для Andrew Vasilyev на комментарий #3)
> >   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(
> 
> https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16
> 
> get_fallback();
> 
> Принтит всё что в get_fallback.pl и выполняет, то что в нём

  Этот скрипт выполняется при сборке в Debian, у нас он отсутствует.
  И именно ему нужен локальный etc/fallback.conf из дерева исходников.
  В систему этот конфиг не ставится и никем не используется.

> Доп:
> https://github.com/UPC/ravada/issues/1968
> https://ravada.readthedocs.io/en/latest/docs/local_resources.html
> 
> Разработчики не стали бы мерджить fallback просто так...
> https://github.com/UPC/ravada/pull/1124/commits/
> 7e9797a586bc533f0db57c9518afbaf7ed7cc430
> 
> >   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> > 
> > my $FILE_CONFIG = 'etc/fallback.conf';
> > ...
> > open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> > 
> >   Т.е. нужно искать другой способ решения проблемы :(
> 
> Используют /etc для файлов не входящих в итоговый пакет, звучит логично.

  Ещё раз: не /etc,
Comment 6 Andrew Vasilyev 2024-10-31 17:53:10 MSK
  Уехал битый комментарий :(

> (Ответ для Andrew Vasilyev на комментарий #3)
> >   Но этот скрипт не пакуется и нигде не вызывается в коде ravada :(
> 
> https://github.com/UPC/ravada/blob/main/deb/debianize.pl#L372C1-L372C16
> 
> get_fallback();
> 
> Принтит всё что в get_fallback.pl и выполняет, то что в нём

  Этот скрипт выполняется при сборке в Debian, у нас он отсутствует.
  И именно ему нужен локальный etc/fallback.conf из дерева исходников.
  В систему этот конфиг не ставится и никем не используется.

> Доп:
> https://github.com/UPC/ravada/issues/1968
> https://ravada.readthedocs.io/en/latest/docs/local_resources.html
> 
> Разработчики не стали бы мерджить fallback просто так...
> https://github.com/UPC/ravada/pull/1124/commits/
> 7e9797a586bc533f0db57c9518afbaf7ed7cc430
> 
> >   В скрипте явная ошибка, конфиг он ищет в текущем каталоге:
> > 
> > my $FILE_CONFIG = 'etc/fallback.conf';
> > ...
> > open my $in,'<',$FILE_CONFIG or die "$! $FILE_CONFIG";
> > 
> >   Т.е. нужно искать другой способ решения проблемы :(
> 
> Используют /etc для файлов не входящих в итоговый пакет, звучит логично.

  Ещё раз: не /etc, а etc/..., т.е. тот etc/, что в дереве исходников.
Comment 7 Andrew Vasilyev 2024-10-31 17:58:37 MSK
  Видится 2 варианта решения:

1. Отключить fallback в /etc/rvd_front.conf при начальной установке.

2. Запаковать содержимое указанных в etc/fallback.conf сайтов в
  /usr/share/ravada/public/fallback и тащить его с собой.

  IMHO, 2-й вариант так себе :(
Comment 8 Pavel Sivolapov 2024-10-31 18:06:29 MSK
(Ответ для Andrew Vasilyev на комментарий #7)
>   Видится 2 варианта решения:
> 
> 1. Отключить fallback в /etc/rvd_front.conf при начальной установке.
> 
> 2. Запаковать содержимое указанных в etc/fallback.conf сайтов в
>   /usr/share/ravada/public/fallback и тащить его с собой.
> 
>   IMHO, 2-й вариант так себе :(

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

Первый вариант хорош тем, что дефолтное значение fallback и так 0 в /usr/sbin/rvd_front
Comment 9 Andrew Vasilyev 2024-10-31 19:29:53 MSK
(Ответ для Pavel Sivolapov на комментарий #8)
> Первый вариант хорош тем, что дефолтное значение fallback и так 0 в
> /usr/sbin/rvd_front

  Сделал fallback = 0, то же задание.
Comment 10 Pavel Sivolapov 2024-11-01 12:04:14 MSK
(Ответ для Andrew Vasilyev на комментарий #9)

>   Сделал fallback = 0, то же задание.

Не воспроизводится.
Comment 11 Andrew Vasilyev 2024-11-01 14:59:12 MSK
  По-хорошему нужно будет добавить get_fallback.pl и конфиг к нему в
  пакет, чтобы админ мог заполнить /usr/share/ravada/public/fallback/
  на работающей системе.
Comment 12 Alexander Makeenkov 2024-11-01 15:04:51 MSK
(Ответ для Andrew Vasilyev на комментарий #1)
>   Пожалуйста, проверьте из задания #361186

(Ответ для Pavel Sivolapov на комментарий #10)
> (Ответ для Andrew Vasilyev на комментарий #9)
> 
> >   Сделал fallback = 0, то же задание.
> 
> Не воспроизводится.

А коммит в репозиторий планируется?
Задание 361186 удалено.
Comment 13 Andrew Vasilyev 2024-11-01 15:45:43 MSK
(Ответ для Alexander Makeenkov на комментарий #12)
> А коммит в репозиторий планируется?
> Задание 361186 удалено.

#361427 AWAITING #1.2 sisyphus/andy ravada.git=2.3.1-alt2
Comment 14 Repository Robot 2024-11-01 17:55:39 MSK
ravada-2.3.1-alt2 -> sisyphus:

 Thu Oct 31 2024 Andrew A. Vasilyev <andy@altlinux> 2.3.1-alt2
 - change fallback in config to default=0 (ALT #51894)
 - add sysusers support
Comment 15 Andrew Vasilyev 2024-11-01 18:09:21 MSK
  В задании #361460 упакован скрипт get_fallback.pl,
  который, по идее, должен скачать что-то в public/fallback,
  после чего можно попробовать сделать fallback => 1 в /etc/rvd_front.conf