Bug 58058 - Ошибка при добавлении/удалении сайта из существующего sitelink'а
Summary: Ошибка при добавлении/удалении сайта из существующего sitelink'а
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: samba (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-27 16:55 MSK by Vladislav Glinkin
Modified: 2026-03-11 19:08 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladislav Glinkin 2026-02-27 16:55:18 MSK
Версии пакетов:
samba-dc-client-4.22.8-alt1
samba-dc-4.22.8-alt1

Шаги воспроизведения:
1) # samba-tool sites create TestSite1 && samba-tool sites create TestSite2 && samba-tool sites create TestSite3
2) # samba-tool sites sitelinks create TestSiteLink --site TestSite1,TestSite2
3) # samba-tool sites sitelinks add-site TestSiteLink TestSite3

Фактический результат:
ERROR: Error while adding site TestSite3 to site-link TestSiteLink: Expected string as element 0 in list
  File "/usr/lib64/samba-dc/python3.13/samba/netcmd/sitelinks.py", line 328, in run
    m["siteList"] = ldb.MessageElement(new_site_list, FLAG_MOD_REPLACE, "siteList")
                    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Аналогичная проблема проявляется при попытке удаления сайта из существующего SiteLink'а

Помогают изменения:
--- a/usr/lib64/samba-dc/python3.12/samba/netcmd/sitelinks.py  
+++ b/usr/lib64/samba-dc/python3.12/samba/netcmd/sitelinks.py  
@@ -325,7 +325,8 @@ class cmd_site_links_add_site(Command):  
            m = ldb.Message()  
            m.dn = sitelink.dn  

-            m["siteList"] = ldb.MessageElement(new_site_list, FLAG_MOD_REPLACE, "siteList")  
+            new_site_list_str = [str(dn) for dn in new_site_list]  
+            m["siteList"] = ldb.MessageElement(new_site_list_str, FLAG_MOD_REPLACE, "siteList")  

            samdb.modify(m)  

@@ -401,7 +402,8 @@ class cmd_site_links_delete_site(Command):  
            m = ldb.Message()  
            m.dn = sitelink.dn  

-            m["siteList"] = ldb.MessageElement(new_site_list, FLAG_MOD_REPLACE, "siteList")  
+            new_site_list_str = [str(dn) for dn in new_site_list]  
+            m["siteList"] = ldb.MessageElement(new_site_list_str, FLAG_MOD_REPLACE, "siteList")  

            samdb.modify(m)
Comment 1 Vladislav Glinkin 2026-03-11 19:08:46 MSK
Версия пакета: samba-dc-4.22.8-alt2

Ошибка не воспроизводится, проблема исправлена.