FreeNAS/freenas 9af7089tests/protocols pynfs_proto.py

Fix test breakage
DeltaFile
+131-71tests/protocols/pynfs_proto.py
+131-711 files

FreeNAS/freenas 23de7betests/sharing_protocols/fibre_channel test_fibre_channel.py, tests/sharing_protocols/iscsi test_261_iscsi_cmd.py test_264_iscsi_mode_compat.py

REMOVE TESTS
DeltaFile
+0-3,596tests/sharing_protocols/iscsi/test_261_iscsi_cmd.py
+0-2,303tests/sharing_protocols/nvmet/test_nvmet_tcp.py
+0-1,107tests/sharing_protocols/iscsi/test_264_iscsi_mode_compat.py
+0-1,081tests/sharing_protocols/fibre_channel/test_fibre_channel.py
+0-921tests/sharing_protocols/nvmet/nvmet_ha_utils.py
+0-818tests/sharing_protocols/smb/test_smb_protocol_base.py
+0-9,82614 files not shown
+0-14,22820 files

FreeNAS/freenas 84250bctests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_op_copy.py test_nfs_server_side_copy.py

expand NFS tests for clone and copy ops

This commit expands and fixes server-side copy and clone
tests for NFS protocol.
DeltaFile
+349-68tests/protocols/pynfs_proto.py
+388-0tests/sharing_protocols/nfs/test_nfs_op_copy.py
+162-16tests/sharing_protocols/nfs/test_nfs_server_side_copy.py
+899-843 files

FreeNAS/freenas 6b0cfaetests/sharing_protocols/iscsi test_262_iscsi_alua.py

iSCSI ALUA: regression test for failover LUN-replace stall

Add an extended test that builds 2 targets (25 + 10 LUNs), opens an
iSCSI session to the standby on the 25-LUN target so the kernel has
tgt_devs to clean up during become_active, then triggers an ungraceful
failover via poweroff_vm. Asserts:

  - /var/log/failover.log on the new master does not contain
    'Failed to restart service "iscsitarget" after 15 seconds',
    which would indicate the LUN-replace loop stalled.
  - /sys/kernel/scst_tgt/async_lun_replace reads 0 after failover,
    confirming reset_active released the parked cleanup work.
  - All LUNs are reachable on the new master.

A function-scoped fixture handles recovery (start_vm, wait_for_backup,
wait_for_settle) so the cluster is restored to a clean two-node state
even if an assertion above failed.

Uses the dataset() asset helper rather than zvol() for lower
per-extent overhead at this scale.
DeltaFile
+210-1tests/sharing_protocols/iscsi/test_262_iscsi_alua.py
+210-11 files

FreeNAS/freenas 97d280esrc/middlewared/middlewared/plugins/iscsi_ targets.py

Reinstate setting recovery_tmo (to 30) for internal HA targets
DeltaFile
+16-0src/middlewared/middlewared/plugins/iscsi_/targets.py
+16-01 files

FreeNAS/freenas 9065ab9src/middlewared/middlewared/plugins/iscsi_ scst.py alua.py

Release parked async LUN-replace cleanup after DLM peer eviction

scst.async_lun_replace=1 now also tells the kernel to park the deferred
cleanup of old tgt_devs from each LUN replace until the flag is cleared.
This avoids stalling become_active on scst_dlm_lock_wait inside
scst_clear_reservation while the dead peer is still a DLM lockspace
member.

Add iscsi.scst.disable_async_lun_replace and call it from the end of
iscsi.alua.reset_active, after dlm.reset_active (which evicts the peer)
completes.
DeltaFile
+20-1src/middlewared/middlewared/plugins/iscsi_/scst.py
+13-2src/middlewared/middlewared/plugins/iscsi_/alua.py
+33-32 files

FreeNAS/freenas 603d914src/middlewared/middlewared/plugins/iscsi_ scst.py alua.py

Release parked async LUN-replace cleanup after DLM peer eviction

scst.async_lun_replace=1 now also tells the kernel to park the deferred
cleanup of old tgt_devs from each LUN replace until the flag is cleared.
This avoids stalling become_active on scst_dlm_lock_wait inside
scst_clear_reservation while the dead peer is still a DLM lockspace
member.

Add iscsi.scst.disable_async_lun_replace and call it from the end of
iscsi.alua.reset_active, after dlm.reset_active (which evicts the peer)
completes.
DeltaFile
+20-1src/middlewared/middlewared/plugins/iscsi_/scst.py
+5-0src/middlewared/middlewared/plugins/iscsi_/alua.py
+25-12 files

FreeNAS/freenas 44e1852tests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_change_attr.py

Add basic NFSv4 change-attribute regression tests

This commit adds a variety of tests in which we validate
the behavior the the NFSv4 change-attribute FATTR4_CHANGE over
a variety of NFS operations that should advance it.
DeltaFile
+262-0tests/sharing_protocols/nfs/test_nfs_change_attr.py
+27-0tests/protocols/pynfs_proto.py
+289-02 files

FreeNAS/freenas c0767ectests/api2 test_300_nfs.py, tests/protocols pynfs_proto.py

NAS-140934 / 26.0.0-RC.1 / Expand sharing protocol tests for NFS (by anodos325) (#18917)

This commit converts some NFS tests into using lower-level pynfs library
to explicitly test server behavior and expands test coverage for readdir
operations.

Originally tests were executed via the linux NFS client which was
extremely limiting in how we can exercise server in a fine-grained
manner. This had the practical impact that a bug in an ACL-related
server response for non-Linux clients was undetected ( where READDIR
also requests NFS4.1 DACL -- linux never does this).

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

---------

Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
DeltaFile
+844-0tests/protocols/pynfs_proto.py
+658-0tests/sharing_protocols/nfs/test_nfs_dacl_readdir.py
+475-109tests/sharing_protocols/nfs/test_nfs_acl.py
+355-0tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+299-28tests/sharing_protocols/nfs/test_nfs_xattr.py
+51-39tests/api2/test_300_nfs.py
+2,682-1765 files not shown
+2,911-20411 files

FreeNAS/freenas 8d95dfbsrc/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/migration 0015_update_profile.py

forward port
DeltaFile
+10-13src/middlewared/middlewared/alert/source/update.py
+0-11src/middlewared/middlewared/migration/0015_update_profile.py
+4-0src/middlewared/middlewared/plugins/update_/profile_.py
+14-243 files

FreeNAS/freenas 90b5a3b

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeNAS/freenas f74948asrc/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/migration 0015_update_profile.py

NAS-140905 / 26.0.0-RC.1 / Stop migration 0015 from forcing MISSION_CRITICAL profile (#18916)

Two small fixes for issues present on Goldeye:

- Migration `0015_update_profile.py` was force-setting `update.profile =
MISSION_CRITICAL` on every enterprise system regardless of the running
version's actual profile. A user upgrading from Fangtooth to a Goldeye
`EARLY_ADOPTER` release (e.g. 25.10-RC.1) was silently locked into
`MISSION_CRITICAL`. Once 25.10.3 (the first `MISSION_CRITICAL` Goldeye
release) shipped, `update.status` started returning a profile mismatch
and the `CurrentlyRunningVersionDoesNotMatchProfile` alert fired.
Migration is now a no-op; `update.config` already auto-populates
`profile` from `current_version_profile()` on first read.
- The mismatch alert was resolving profile names through
`update.profile_choices`, which filters out profiles outside the user's
product type (enterprise hides `DEVELOPER`/`EARLY_ADOPTER`). When the
running profile fell outside that filter, the alert text rendered
`<Unknown>` instead of the friendly name. Switched to resolving via
`UpdateProfiles[...].describe().name`.

    [3 lines not shown]
DeltaFile
+10-13src/middlewared/middlewared/alert/source/update.py
+0-11src/middlewared/middlewared/migration/0015_update_profile.py
+4-0src/middlewared/middlewared/plugins/update_/profile_.py
+14-243 files

FreeNAS/freenas 6ed3216src/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/plugins/update_ profile_.py

rename `display_name`
DeltaFile
+1-1src/middlewared/middlewared/alert/source/update.py
+1-1src/middlewared/middlewared/plugins/update_/profile_.py
+2-22 files

FreeNAS/freenas 5a6f945src/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/plugins/update_ profile_.py

don't override builtin name prop
DeltaFile
+1-1src/middlewared/middlewared/alert/source/update.py
+1-1src/middlewared/middlewared/plugins/update_/profile_.py
+2-22 files

FreeNAS/freenas 9f6d07esrc/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/plugins/update_ profile_.py

`UpdateProfiles.name` property
DeltaFile
+5-1src/middlewared/middlewared/plugins/update_/profile_.py
+1-1src/middlewared/middlewared/alert/source/update.py
+6-22 files

FreeNAS/freenas 6bbecf7tests/api2 test_300_nfs.py, tests/protocols pynfs_proto.py

Address review:

* Validate we bclone when using OP_CLONE
* Remove unnecessary op.getfh

(cherry picked from commit e48c858fb527d29c8745b963a7d00f192337161e)
DeltaFile
+72-0tests/sharing_protocols/nfs/test_nfs_server_side_copy.py
+28-20tests/protocols/pynfs_proto.py
+11-5tests/sharing_protocols/nfs/test_nfs_xattr.py
+6-2tests/sharing_protocols/nfs/test_nfs_acl.py
+0-6tests/api2/test_300_nfs.py
+117-335 files

FreeNAS/freenas ca735b7tests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_server_side_copy.py

Fix ruff complaints

(cherry picked from commit 972f9b5d259c227137cb2c5ec796b393db9b725e)
DeltaFile
+10-5tests/sharing_protocols/nfs/test_nfs_server_side_copy.py
+3-2tests/protocols/pynfs_proto.py
+13-72 files

FreeNAS/freenas 37fe76etests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_dacl_readdir.py test_nfs_acl.py

Expand sharing protocol tests for NFS

This commit converts some NFS tests into using lower-level
pynfs library to explicitly test server behavior and expands
test coverage for readdir operations.

Originally tests were executed via the linux NFS client which
was extremely limiting in how we can exercise server in a
fine-grained manner.

(cherry picked from commit b7d93a78a95c85f3c943f9fcb73054d1c4812b30)
DeltaFile
+835-0tests/protocols/pynfs_proto.py
+658-0tests/sharing_protocols/nfs/test_nfs_dacl_readdir.py
+471-109tests/sharing_protocols/nfs/test_nfs_acl.py
+355-0tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+293-28tests/sharing_protocols/nfs/test_nfs_xattr.py
+90-0tests/sharing_protocols/nfs/conftest.py
+2,702-1374 files not shown
+2,816-19910 files

FreeNAS/freenas 10417e3tests/api2 test_300_nfs.py, tests/protocols pynfs_proto.py

NAS-140934 / 27.0.0-BETA.1 / Expand sharing protocol tests for NFS (#18912)

This commit converts some NFS tests into using lower-level pynfs library
to explicitly test server behavior and expands test coverage for readdir
operations.

Originally tests were executed via the linux NFS client which was
extremely limiting in how we can exercise server in a fine-grained
manner. This had the practical impact that a bug in an ACL-related
server response for non-Linux clients was undetected ( where READDIR
also requests NFS4.1 DACL -- linux never does this).
DeltaFile
+844-0tests/protocols/pynfs_proto.py
+658-0tests/sharing_protocols/nfs/test_nfs_dacl_readdir.py
+475-109tests/sharing_protocols/nfs/test_nfs_acl.py
+355-0tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+299-28tests/sharing_protocols/nfs/test_nfs_xattr.py
+51-39tests/api2/test_300_nfs.py
+2,682-1765 files not shown
+2,911-20411 files

FreeNAS/freenas 972f9b5tests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_server_side_copy.py

Fix ruff complaints
DeltaFile
+10-5tests/sharing_protocols/nfs/test_nfs_server_side_copy.py
+3-2tests/protocols/pynfs_proto.py
+13-72 files

FreeNAS/freenas 4248d5asrc/middlewared/middlewared/migration 0015_update_profile.py

remove migration 0015 completely
DeltaFile
+0-16src/middlewared/middlewared/migration/0015_update_profile.py
+0-161 files

FreeNAS/freenas e48c858tests/api2 test_300_nfs.py, tests/protocols pynfs_proto.py

Address review:

* Validate we bclone when using OP_CLONE
* Remove unnecessary op.getfh
DeltaFile
+72-0tests/sharing_protocols/nfs/test_nfs_server_side_copy.py
+28-20tests/protocols/pynfs_proto.py
+11-5tests/sharing_protocols/nfs/test_nfs_xattr.py
+6-2tests/sharing_protocols/nfs/test_nfs_acl.py
+0-6tests/api2/test_300_nfs.py
+117-335 files

FreeNAS/freenas cb19f51src/middlewared/middlewared/alert/source update.py, src/middlewared/middlewared/migration 0015_update_profile.py

correct profile display in `CurrentlyRunningVersionDoesNotMatchProfileAlertClass`
DeltaFile
+10-13src/middlewared/middlewared/alert/source/update.py
+7-2src/middlewared/middlewared/migration/0015_update_profile.py
+1-1src/middlewared/middlewared/plugins/update_/profile_.py
+18-163 files

FreeNAS/freenas 9c9ea18

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeNAS/freenas d6a9327

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeNAS/freenas 67210c8src/middlewared/middlewared/plugins filesystem.py, src/middlewared/middlewared/plugins/filesystem_ utils.py acl.py

NAS-140915 / 27.0.0-BETA.1 / Add recursion for filesystem.set_zfs_attributes (#18906)

This commit expands the API for filesystem.set_zfs_attributes to include
options for recursion. Specifically, we can do non-recursive, recursive
on files only and recursive on directories only, or recursively on both
files and directories.
DeltaFile
+194-73src/middlewared/middlewared/plugins/filesystem_/utils.py
+155-1tests/api2/test_190_filesystem.py
+61-19src/middlewared/middlewared/plugins/filesystem.py
+15-16src/middlewared/middlewared/plugins/pool_/dataset_encryption_lock.py
+11-15src/middlewared/middlewared/plugins/filesystem_/acl.py
+10-9src/middlewared/middlewared/plugins/pool_/import_pool.py
+446-1337 files not shown
+496-15113 files

FreeNAS/freenas b7d93a7tests/protocols pynfs_proto.py, tests/sharing_protocols/nfs test_nfs_dacl_readdir.py test_nfs_acl.py

Expand sharing protocol tests for NFS

This commit converts some NFS tests into using lower-level
pynfs library to explicitly test server behavior and expands
test coverage for readdir operations.

Originally tests were executed via the linux NFS client which
was extremely limiting in how we can exercise server in a
fine-grained manner.
DeltaFile
+835-0tests/protocols/pynfs_proto.py
+658-0tests/sharing_protocols/nfs/test_nfs_dacl_readdir.py
+471-109tests/sharing_protocols/nfs/test_nfs_acl.py
+355-0tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+293-28tests/sharing_protocols/nfs/test_nfs_xattr.py
+90-0tests/sharing_protocols/nfs/conftest.py
+2,702-1374 files not shown
+2,816-19910 files

FreeNAS/freenas d234705tests/sharing_protocols/nfs test_nfs_dacl_posix_backing.py

Fix
DeltaFile
+8-6tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+8-61 files

FreeNAS/freenas aa971a2tests/sharing_protocols/fibre_channel test_fibre_channel.py, tests/sharing_protocols/iscsi test_261_iscsi_cmd.py test_264_iscsi_mode_compat.py

Remove tests
DeltaFile
+0-3,596tests/sharing_protocols/iscsi/test_261_iscsi_cmd.py
+0-2,303tests/sharing_protocols/nvmet/test_nvmet_tcp.py
+0-1,107tests/sharing_protocols/iscsi/test_264_iscsi_mode_compat.py
+0-1,081tests/sharing_protocols/fibre_channel/test_fibre_channel.py
+0-921tests/sharing_protocols/nvmet/nvmet_ha_utils.py
+0-818tests/sharing_protocols/smb/test_smb_protocol_base.py
+0-9,82614 files not shown
+0-14,22820 files

FreeNAS/freenas 1331a0btests requirements.txt, tests/sharing_protocols/nfs test_nfs_dacl_posix_backing.py test_nfs_dacl_readdir.py

Expand testing further

* Use tag for pynfs
* add testing for POSIX1E ACL
DeltaFile
+353-0tests/sharing_protocols/nfs/test_nfs_dacl_posix_backing.py
+149-10tests/sharing_protocols/nfs/test_nfs_dacl_readdir.py
+1-1tests/requirements.txt
+503-113 files