FreeNAS/freenas c9c5eccsrc/middlewared/middlewared/plugins/account_ builtin_administrator.py, tests/api2 test_group_utils.py

NAS-136296 / 25.10 / Consider primary group when checking for password-enabled users (#16654)

Allows users to be deleted or password to be disabled if another user
exists with `builtin_administrators` either in its auxiliary groups or
as its primary group.
DeltaFile
+52-13tests/api2/test_group_utils.py
+8-5src/middlewared/middlewared/plugins/account_/builtin_administrator.py
+60-182 files

FreeNAS/freenas c9072e6src/middlewared/middlewared/api/v25_10_0 group.py user.py

NAS-136431 / 25.10 / Improve API docs for group entries (#16657)

This commit expands field docstrings for group entries in the 25.10 API.
DeltaFile
+26-1src/middlewared/middlewared/api/v25_10_0/group.py
+5-0src/middlewared/middlewared/api/v25_10_0/user.py
+31-12 files

FreeNAS/freenas 4d051d1tests/api2 test_261_iscsi_cmd.py test_300_nfs.py

test
DeltaFile
+0-3,324tests/api2/test_261_iscsi_cmd.py
+0-2,063tests/api2/test_300_nfs.py
+0-1,619tests/api2/test_nvmet_tcp.py
+0-1,404tests/api2/test_200_ftp.py
+0-1,053tests/api2/test_fibre_channel.py
+0-936tests/api2/test_345_acl_nfs4.py
+0-10,399243 files not shown
+0-37,985249 files

FreeNAS/freenas f4f62d1tests/api2 test_group_utils.py

add test for `get_password_enabled_users`
DeltaFile
+52-13tests/api2/test_group_utils.py
+52-131 files

FreeNAS/freenas 90bb272tests/api2 test_261_iscsi_cmd.py test_300_nfs.py

test
DeltaFile
+0-3,324tests/api2/test_261_iscsi_cmd.py
+0-2,063tests/api2/test_300_nfs.py
+0-1,619tests/api2/test_nvmet_tcp.py
+0-1,404tests/api2/test_200_ftp.py
+0-1,053tests/api2/test_fibre_channel.py
+0-936tests/api2/test_345_acl_nfs4.py
+0-10,399245 files not shown
+55-38,034251 files

FreeNAS/freenas d2925fdsrc/middlewared/middlewared/api/v25_10_0 group.py user.py

Improve API docs for group entries

This commit expands field docstrings for group entries in the
25.10 API.
DeltaFile
+26-1src/middlewared/middlewared/api/v25_10_0/group.py
+5-0src/middlewared/middlewared/api/v25_10_0/user.py
+31-12 files

FreeNAS/freenas ad09dc5tests/api2 test_group_utils.py

add test for `get_password_enabled_users`
DeltaFile
+45-13tests/api2/test_group_utils.py
+45-131 files

FreeNAS/freenas 312e7aesrc/middlewared/middlewared/alert/source smb_recordsize.py, src/middlewared/middlewared/plugins smb.py

NAS-135244 / 25.04.2 / Fix configuration for SMB Veeam Fast Clone (by anodos325) (#16656)

This commit adds a new SMB share purpose of VEEAM_REPOSITORY_SHARE,
which requires the ZFS recordsize to be set to 128 KiB (per guidance
from Veeam) and sets the underlying SMB block size to 128 KiB so that
FileFsSizeInformation the Sectors Per Allocation Unit is reported to
Veeam Backup & Restore in such a way that it will use the correct
offsets and lengths when it issues
FSCTL_DUPLICTE_EXTENTS_TO_FILE requests. If this is not done, then Fast
Copy requests will be rejected by ZFS due to improper alignment and ZFS
will fallback to doing an internal copy of the specified range.

Original PR: https://github.com/truenas/middleware/pull/16635

Co-authored-by: Andrew Walker <awalker at ixsystems.com>
DeltaFile
+69-0tests/api2/test_smb_veeam_repo.py
+39-0src/middlewared/middlewared/plugins/smb.py
+19-0src/middlewared/middlewared/plugins/smb_/constants.py
+11-0src/middlewared/middlewared/alert/source/smb_recordsize.py
+1-1src/middlewared/middlewared/plugins/smb_/util_smbconf.py
+139-15 files

FreeNAS/freenas 637c800src/middlewared/middlewared/alert/source smb_recordsize.py, src/middlewared/middlewared/plugins smb.py

NAS-135244 / 25.10 / Fix configuration for SMB Veeam Fast Clone (#16635)

This commit adds a new SMB share purpose of VEEAM_REPOSITORY_SHARE,
which requires the ZFS recordsize to be set to 128 KiB (per guidance
from Veeam) and sets the underlying SMB block size to 128 KiB so that
FileFsSizeInformation the Sectors Per Allocation Unit is reported to
Veeam Backup & Restore in such a way that it will use the correct
offsets and lengths when it issues
FSCTL_DUPLICTE_EXTENTS_TO_FILE requests. If this is not done, then Fast
Copy requests will be rejected by ZFS due to improper alignment and ZFS
will fallback to doing an internal copy of the specified range.

(cherry picked from commit d8e36ed79d3e6a0916b3fbda1323807e3dcff72c)
DeltaFile
+69-0tests/api2/test_smb_veeam_repo.py
+39-0src/middlewared/middlewared/plugins/smb.py
+19-0src/middlewared/middlewared/plugins/smb_/constants.py
+11-0src/middlewared/middlewared/alert/source/smb_recordsize.py
+1-1src/middlewared/middlewared/plugins/smb_/util_smbconf.py
+139-15 files

FreeNAS/freenas b2ddacbsrc/middlewared/middlewared/plugins/nvmet global.py, src/middlewared/middlewared/utils/nvmet spdk.py

Add implementation of nvmet.global.sessions for SPDK backend
DeltaFile
+57-17src/middlewared/middlewared/plugins/nvmet/global.py
+4-0src/middlewared/middlewared/utils/nvmet/spdk.py
+61-172 files

FreeNAS/freenas 32b1bd8

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeNAS/freenas d8e36edsrc/middlewared/middlewared/alert/source smb_recordsize.py, src/middlewared/middlewared/api/v25_10_0 smb.py

NAS-135244 / 25.10 / Fix configuration for SMB Veeam Fast Clone (#16635)

This commit adds a new SMB share purpose of VEEAM_REPOSITORY_SHARE,
which requires the ZFS recordsize to be set to 128 KiB (per guidance
from Veeam) and sets the underlying SMB block size to 128 KiB so that
FileFsSizeInformation the Sectors Per Allocation Unit is reported to
Veeam Backup & Restore in such a way that it will use the correct
offsets and lengths when it issues
FSCTL_DUPLICTE_EXTENTS_TO_FILE requests. If this is not done, then Fast
Copy requests will be rejected by ZFS due to improper alignment and ZFS
will fallback to doing an internal copy of the specified range.
DeltaFile
+69-0tests/api2/test_smb_veeam_repo.py
+43-7src/middlewared/middlewared/plugins/smb.py
+17-3src/middlewared/middlewared/api/v25_10_0/smb.py
+11-0src/middlewared/middlewared/alert/source/smb_recordsize.py
+7-1src/middlewared/middlewared/plugins/smb_/util_smbconf.py
+1-0src/middlewared/middlewared/plugins/smb_/constants.py
+148-111 files not shown
+149-117 files

FreeNAS/freenas caf8ff6src/middlewared/middlewared/utils/nvmet spdk.py

Add NvmetPortAnaReferralConfig
DeltaFile
+64-1src/middlewared/middlewared/utils/nvmet/spdk.py
+64-11 files

FreeNAS/freenas 6d5b755src/middlewared/middlewared/utils/nvmet spdk.py

Remove NULL bdev when BACKUP node
DeltaFile
+4-21src/middlewared/middlewared/utils/nvmet/spdk.py
+4-211 files

FreeNAS/freenas 6b602a5src/middlewared/middlewared/plugins/nvmet constants.py, src/middlewared/middlewared/utils/nvmet spdk.py render_common.py

Initial HA implementation for SPDK
DeltaFile
+230-64src/middlewared/middlewared/utils/nvmet/spdk.py
+94-0src/middlewared/middlewared/utils/nvmet/render_common.py
+20-56src/middlewared/middlewared/utils/nvmet/kernel.py
+0-6src/middlewared/middlewared/plugins/nvmet/constants.py
+0-0src/middlewared/middlewared/utils/nvmet/__init__.py
+344-1265 files

FreeNAS/freenas 2daaf78src/middlewared/middlewared/plugins/nvmet spdk.py

Update nvmet.spdk.nics for HA
DeltaFile
+20-1src/middlewared/middlewared/plugins/nvmet/spdk.py
+20-11 files

FreeNAS/freenas dc830d6src/middlewared/middlewared/plugins/nvmet kernel.py spdk.py, src/middlewared/middlewared/utils/nvmet kernel.py spdk.py

Refactor some code into utils/nvmet directory
DeltaFile
+0-735src/middlewared/middlewared/plugins/nvmet/kernel.py
+735-0src/middlewared/middlewared/utils/nvmet/kernel.py
+4-478src/middlewared/middlewared/plugins/nvmet/spdk.py
+481-0src/middlewared/middlewared/utils/nvmet/spdk.py
+3-3src/middlewared/middlewared/plugins/nvmet/namespace.py
+1-1src/middlewared/middlewared/plugins/nvmet/global.py
+1,224-1,2172 files not shown
+1,226-1,2198 files

FreeNAS/freenas a5ee55fsrc/middlewared/middlewared/plugins/nvmet spdk.py kernel.py

Handle min/max controller id
DeltaFile
+16-2src/middlewared/middlewared/plugins/nvmet/spdk.py
+4-2src/middlewared/middlewared/plugins/nvmet/kernel.py
+3-0src/middlewared/middlewared/plugins/nvmet/constants.py
+23-43 files

FreeNAS/freenas 77ab3f0src/middlewared/middlewared/plugins/nvmet spdk.py

Add SPDK support for nvmet.host_subsys, including CHAP keys
DeltaFile
+145-3src/middlewared/middlewared/plugins/nvmet/spdk.py
+145-31 files

FreeNAS/freenas cc6c8d1src/middlewared/middlewared/plugins/nvmet global.py

Do not allow SPDK without avx2 in CPU flags
DeltaFile
+16-5src/middlewared/middlewared/plugins/nvmet/global.py
+16-51 files

FreeNAS/freenas 1f4e67dsrc/middlewared/middlewared/plugins/system info.py, src/middlewared/middlewared/utils cpu.py

Add private API system.cpu_flags
DeltaFile
+18-0src/middlewared/middlewared/utils/cpu.py
+8-1src/middlewared/middlewared/plugins/system/info.py
+26-12 files

FreeNAS/freenas ecde42bsrc/middlewared/middlewared/api/base/types nvmet.py __init__.py, src/middlewared/middlewared/api/v25_10_0 nvmet_subsys.py nvmet_host.py

Add NQN type to API

SPDK is stricter than the kernel implementation wrt NQN format.
DeltaFile
+49-0src/middlewared/middlewared/api/base/types/nvmet.py
+4-5src/middlewared/middlewared/api/v25_10_0/nvmet_subsys.py
+4-2tests/api2/test_nvmet_tcp.py
+2-1src/middlewared/middlewared/api/v25_10_0/nvmet_host.py
+2-1src/middlewared/middlewared/api/v25_10_0/nvmet_global.py
+1-0src/middlewared/middlewared/api/base/types/__init__.py
+62-96 files

FreeNAS/freenas 0ce9bc6src/middlewared/debian control

Add python3-truenas-spdk as build/runtime depend
DeltaFile
+2-0src/middlewared/debian/control
+2-01 files

FreeNAS/freenas 38c3accsrc/middlewared/middlewared/etc_files nvmet_spdk.py, src/middlewared/middlewared/plugins etc.py

Add SPDK plumbing
DeltaFile
+442-0src/middlewared/middlewared/plugins/nvmet/spdk.py
+21-9src/middlewared/middlewared/plugins/nvmet/global.py
+9-4src/middlewared/middlewared/plugins/nvmet/constants.py
+6-0src/middlewared/middlewared/etc_files/nvmet_spdk.py
+1-0src/middlewared/middlewared/plugins/etc.py
+479-135 files

FreeNAS/freenas 54b5436src/middlewared/middlewared/plugins/service_/services all.py, src/middlewared/middlewared/plugins/service_/services/pseudo misc.py

Add NVMfService
DeltaFile
+7-0src/middlewared/middlewared/plugins/service_/services/pseudo/misc.py
+2-0src/middlewared/middlewared/plugins/service_/services/all.py
+9-02 files

FreeNAS/freenas 96e975csrc/middlewared/middlewared/plugins/directoryservices_ activedirectory_join_mixin.py

NAS-136429 / 25.04.2 / Make KRB5_FCC_NOFILE nonfatal when trying to start AD (#16653)

This commit adds KRB5_FCC_NOFILE to the list of kerberos errors that we
try to wait out when activating active directory. This error may occur
if there's a race on keyring initialization. The second attempt will
succeed and issue won't recur.
DeltaFile
+2-0src/middlewared/middlewared/plugins/directoryservices_/activedirectory_join_mixin.py
+2-01 files

FreeNAS/freenas 2cbc143src/middlewared/middlewared/plugins/directoryservices_ cache.py

NAS-135915 / 25.04.2 / Don't treat NSS UNAVAIL return code as fatal when building cache (by anodos325) (#16655)

This commit changes how the UNAVAIL return code is treated while
building cache for SSSD when joined to IPA / LDAP. It may take some time
for SSSD to initialize and build its own caches. In this case we can
squash the NSS error and sleep a bit more to ensure we don't have
failures.

Original PR: https://github.com/truenas/middleware/pull/16651

Co-authored-by: Andrew Walker <awalker at ixsystems.com>
DeltaFile
+20-9src/middlewared/middlewared/plugins/directoryservices_/cache.py
+20-91 files

FreeNAS/freenas 54dbda7src/middlewared/middlewared/plugins/directoryservices_ cache.py

NAS-135915 / 25.10 / Don't treat NSS UNAVAIL return code as fatal when building cache (#16651)

This commit changes how the UNAVAIL return code is treated while
building cache for SSSD when joined to IPA / LDAP. It may take some time
for SSSD to initialize and build its own caches. In this case we can
squash the NSS error and sleep a bit more to ensure we don't have
failures.
DeltaFile
+20-9src/middlewared/middlewared/plugins/directoryservices_/cache.py
+20-91 files

FreeNAS/freenas 941481dsrc/middlewared/middlewared/plugins/directoryservices_ activedirectory_join_mixin.py

Make KRB5_FCC_NOFILE nonfatal when trying to start AD

This commit adds KRB5_FCC_NOFILE to the list of kerberos errors that we
try to wait out when activating active directory. This error may
occur if there's a race on keyring initialization. The second attempt
will succeed and issue won't recur.
DeltaFile
+2-0src/middlewared/middlewared/plugins/directoryservices_/activedirectory_join_mixin.py
+2-01 files

FreeNAS/freenas 7d0411bsrc/middlewared/middlewared/plugins/account_ builtin_administrator.py

check primary group in `get_password_enabled_users`
DeltaFile
+8-5src/middlewared/middlewared/plugins/account_/builtin_administrator.py
+8-51 files