Стенды, на которых воспроизводится ошибка (обновлённые до sisyphus): education-11.2-x86-64-kde education-11.2-x86-64-xfce kworkstation-11.4-x86-64 workstation-11.2-x86-64 server-11.1-x86-64-textmode Версия пакета:alterator-manager-0.2.3-alt1 Шаги, приводящие к ошибке: 1) Установить пакеты: # apt-get install -y alterator-manager alterator-manager-tools alterator-module-executor alterator-interface-diag alterator-module-remote 2) Настроить беспарольный доступ по ssh: # su - test -c 'mkdir -p ~/.ssh && chmod 700 ~/.ssh' && \ su - test -c 'ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519 -q' && \ cat /home/test/.ssh/id_ed25519.pub >> /home/test/.ssh/authorized_keys && \ chmod 600 /home/test/.ssh/authorized_keys && \ chown -R test:test /home/test/.ssh 3) Создание родительского и вложенного объектов: # cat <<'EOF' > /usr/share/alterator/backends/test.backend type = "Backend" module = "executor" name = "test" interface = "test" [methods.ParentInfo] execute = "echo 'I am parent'" stdout_strings = true action_id = "ParentInfo" EOF # cat <<'EOF' > /usr/share/alterator/backends/test1.backend type = "Backend" module = "executor" name = "test/test1" interface = "test1" [methods.Info] execute = "echo 'I am test1'" stdout_strings = true stdout_byte_limit = 200000 action_id = "Info" EOF 4) Настройка политики polkit: # cat <<EOF > /usr/share/polkit-1/actions/org.altlinux.alterator.test.policy <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policyconfig PUBLIC "-//freedesktop.org//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> <policyconfig> <vendor>Alterator Test</vendor> <vendor_url>http://altlinux.org</vendor_url> <!-- Разрешаем действия для test --> <action id="org.altlinux.alterator.test.ParentInfo"> <description>Test Parent Info</description> <message>Authentication is required to run Parent Info</message> <defaults> <allow_any>yes</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> <!-- Разрешаем действия для test/test1 --> <action id="org.altlinux.alterator.test1.Info"> <description>Test1 Info</description> <message>Authentication is required to run Test1 Info</message> <defaults> <allow_any>yes</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> </policyconfig> EOF 5) Переход в сессию пользователя test: # su - test $ ssh test@localhost 6) Создать удалённое подключение: $ dbus-send --session --print-reply --dest='org.altlinux.alterator' '/org/altlinux/alterator/remote' 'org.altlinux.alterator.remote.Connect' string:"localhost" string:"testconn_hier" string:"org.kde.polkit-kde-authentication-agent-1" string:"" 7) Проверить иерархию объектов: $ dbus-send --session --print-reply --dest='org.altlinux.alterator' '/org/altlinux/alterator/connection/testconn_hier' org.freedesktop.DBus.Introspectable.Introspect | grep "test" 8) Вызвать метод вложенного объекта: $ dbus-send --session --print-reply --dest='org.altlinux.alterator' '/org/altlinux/alterator/connection/testconn_hier/test/test1' org.altlinux.alterator.test1.Info Фактический результат на сизифе: В дереве иерархии есть объект test, но нет объекта test1, при этом метод этого объекта успешно вызывается Фактический результат на p11 с таском 437151: В дереве иерархии есть оба объекта, но они находятся на одном уровне, хотя test1 по сути является вложенным, и при вызове метода объекта test1 возникает ошибка: Error org.altlinux.alterator.remote: Error remote handle method call. Ожидаемый результат: Объект test1 должен отображаться как вложенный в test, и метод этого объекта должен вызываться успешно
(Ответ для Иванов Александр Владимирович на комментарий #0) > 7) Проверить иерархию объектов: > $ dbus-send --session --print-reply --dest='org.altlinux.alterator' > '/org/altlinux/alterator/connection/testconn_hier' > org.freedesktop.DBus.Introspectable.Introspect | grep "test" Эта команда выводит не иерархию объектов, а интроспекцию объекта '/org/altlinux/alterator/connection/testconn_hier' Вот удобная команда для просмотра дерева объектов: $busctl tree <bus name> [--user] > > 8) Вызвать метод вложенного объекта: > $ dbus-send --session --print-reply --dest='org.altlinux.alterator' > '/org/altlinux/alterator/connection/testconn_hier/test/test1' > org.altlinux.alterator.test1.Info > > Фактический результат на сизифе: В дереве иерархии есть объект test, но нет > объекта test1, при этом метод этого объекта успешно вызывается Разве можно вызвать метод интерфейса объекта, если объекта нет? Вы в команде указали объект: '/org/altlinux/alterator/connection/testconn_hier/test/test1' > > Фактический результат на p11 с таском 437151: В дереве иерархии есть оба > объекта, но они находятся на одном уровне, хотя test1 по сути является > вложенным, и при вызове метода объекта test1 возникает ошибка: Error > org.altlinux.alterator.remote: Error remote handle method call. В р11 старая версия alterator-module-remote, она не поддерживает вложенные объекты. > > Ожидаемый результат: Объект test1 должен отображаться как вложенный в test, > и метод этого объекта должен вызываться успешно В таске 437151 нет alterator-module-remote, там только alterator-manager. Зачем тут тестировать alterator-module-remote?
(Ответ для Иван Савин на комментарий #1) > В таске 437151 нет alterator-module-remote, там только alterator-manager. > Зачем тут тестировать alterator-module-remote? Потому что один от другого зависит https://packages.altlinux.org/ru/sisyphus/srpms/alterator-manager/what_depends/by_binary