From f530dcb5933c5933a3e90569c61b3982f2d7fe9f Mon Sep 17 00:00:00 2001 From: Naksen Date: Thu, 5 Mar 2026 13:35:45 +0300 Subject: [PATCH] fix: update domain controller name references to use HOST_MACHINE_SHORT_NAME --- .../versions/ebf19750805e_add_domain_controllers_ou.py | 6 +++--- app/config.py | 9 +++++++++ app/extra/scripts/add_domain_controller.py | 6 +++--- app/ldap_protocol/auth/use_cases.py | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/alembic/versions/ebf19750805e_add_domain_controllers_ou.py b/app/alembic/versions/ebf19750805e_add_domain_controllers_ou.py index 5f708272a..2ad84def9 100644 --- a/app/alembic/versions/ebf19750805e_add_domain_controllers_ou.py +++ b/app/alembic/versions/ebf19750805e_add_domain_controllers_ou.py @@ -65,7 +65,7 @@ async def _create_domain_controllers_ou( domain_controller_data = [ { - "name": settings.HOST_MACHINE_NAME, + "name": settings.HOST_MACHINE_SHORT_NAME, "object_class": "computer", "attributes": { "objectClass": ["top"], @@ -77,7 +77,7 @@ async def _create_domain_controllers_ou( "sAMAccountType": [ str(SamAccountTypeCodes.SAM_MACHINE_ACCOUNT), ], - "sAMAccountName": [settings.HOST_MACHINE_NAME], + "sAMAccountName": [settings.HOST_MACHINE_SHORT_NAME], "ipHostNumber": [settings.DEFAULT_NAMESERVER], }, }, @@ -101,7 +101,7 @@ async def _create_domain_controllers_ou( dc = await session.scalar( select(Directory).where( - qa(Directory.name) == settings.HOST_MACHINE_NAME, + qa(Directory.name) == settings.HOST_MACHINE_SHORT_NAME, ), ) if not dc: diff --git a/app/config.py b/app/config.py index 67550187e..dcf689f9f 100644 --- a/app/config.py +++ b/app/config.py @@ -98,6 +98,15 @@ class Settings(BaseModel): AUDIT_SECOND_RETRY_TIME: int = 60 AUDIT_THIRD_RETRY_TIME: int = 1440 + @computed_field # type: ignore + @cached_property + def HOST_MACHINE_SHORT_NAME(self) -> str: # noqa: N802 + """Host machine name part before the first dot.""" + value = self.HOST_MACHINE_NAME.strip() + if not value: + raise ValueError("HOST_MACHINE_NAME is not set or empty") + return value.split(".", 1)[0] + @computed_field # type: ignore @cached_property def POSTGRES_URI(self) -> PostgresDsn: # noqa diff --git a/app/extra/scripts/add_domain_controller.py b/app/extra/scripts/add_domain_controller.py index dbfc087a0..3f700328a 100644 --- a/app/extra/scripts/add_domain_controller.py +++ b/app/extra/scripts/add_domain_controller.py @@ -30,7 +30,7 @@ async def _add_domain_controller( ) -> None: dc_directory = Directory( object_class="", - name=settings.HOST_MACHINE_NAME, + name=settings.HOST_MACHINE_SHORT_NAME, is_system=True, ) dc_directory.create_path(dc_ou_dir) @@ -54,7 +54,7 @@ async def _add_domain_controller( ), Attribute( name="sAMAccountName", - value=settings.HOST_MACHINE_NAME, + value=settings.HOST_MACHINE_SHORT_NAME, directory_id=dc_directory.id, ), Attribute( @@ -76,7 +76,7 @@ async def _add_domain_controller( ), Attribute( name="cn", - value=settings.HOST_MACHINE_NAME, + value=settings.HOST_MACHINE_SHORT_NAME, directory_id=dc_directory.id, ), ] diff --git a/app/ldap_protocol/auth/use_cases.py b/app/ldap_protocol/auth/use_cases.py index 370467e4f..ca063bcd7 100644 --- a/app/ldap_protocol/auth/use_cases.py +++ b/app/ldap_protocol/auth/use_cases.py @@ -92,7 +92,7 @@ def _create_domain_controller_data(self) -> dict: }, "children": [ { - "name": self._settings.HOST_MACHINE_NAME, + "name": self._settings.HOST_MACHINE_SHORT_NAME, "object_class": "computer", "attributes": { "objectClass": ["top"], @@ -104,7 +104,9 @@ def _create_domain_controller_data(self) -> dict: "sAMAccountType": [ str(SamAccountTypeCodes.SAM_MACHINE_ACCOUNT), ], - "sAMAccountName": [self._settings.HOST_MACHINE_NAME], + "sAMAccountName": [ + self._settings.HOST_MACHINE_SHORT_NAME, + ], "ipHostNumber": [self._settings.DEFAULT_NAMESERVER], }, },