--- /usr/lib/python3/dist-packages/middlewared/plugins/pool_/dataset_encryption_info.py 2025-11-23 16:29:54.794377157 -0800 +++ /usr/lib/python3/dist-packages/middlewared/plugins/pool_/dataset_encryption_info.py 2025-11-23 16:30:39.314554054 -0800 @@ -161,7 +161,7 @@ return results - @periodic(86400) + #@periodic(86400) @private @job(lock=lambda args: f'sync_encrypted_pool_dataset_keys_{args}') def sync_db_keys(self, job, name=None): --- /usr/lib/python3/dist-packages/middlewared/utils/disks_/disk_class.py 2025-11-23 16:17:43.675185000 -0800 +++ /usr/lib/python3/dist-packages/middlewared/utils/disks_/disk_class.py 2025-12-07 16:37:17.218189236 -0800 @@ -15,6 +15,8 @@ from .disk_io import read_gpt, wipe_disk_quick, create_gpt_partition from .gpt_parts import GptPartEntry, PART_TYPES +from middlewared.utils import ProductType, MIDDLEWARE_RUN_DIR + logger = logging.getLogger(__name__) __all__ = ("DiskEntry", "iterate_disks", "VALID_WHOLE_DISK") @@ -321,6 +323,8 @@ if return_json: cmd.extend(["-jc"]) + cmd.extend(["-n", "standby"]) + stdout = self.__run_smartctl_cmd_impl(cmd, raise_alert) if return_json: return json.loads(stdout) @@ -352,6 +356,14 @@ path = f"{base}/device/hwmon" rv = {"temp_c": None, "crit": None} + + try: + with open(f'{MIDDLEWARE_RUN_DIR}/standby_disks', 'r') as file: + if self.name in file.read().split(','): + return TempEntry(**rv) + except: + pass + try: with os.scandir(path) as sdir: for i in filter( --- /usr/lib/python3/dist-packages/middlewared/alert/source/smart.py 2025-11-27 07:57:36.376505701 -0800 +++ /usr/lib/python3/dist-packages/middlewared/alert/source/smart.py 2025-11-27 08:05:31.234243487 -0800 @@ -55,7 +55,7 @@ class SMARTAlertSource(ThreadedAlertSource): run_on_backup_node = False - schedule = IntervalSchedule(timedelta(minutes=90)) + schedule = IntervalSchedule(timedelta(minutes=300)) def parse_ata_smart_info(self, data: dict) -> SmartInfo: ue, test_failed, sbr, ec = 0, False, 0, 0 --- /usr/lib/python3/dist-packages/middlewared/plugins/disk.py 2025-12-07 17:03:17.474916500 -0800 +++ /usr/lib/python3/dist-packages/middlewared/plugins/disk.py 2025-12-01 15:12:54.755820405 -0800 @@ -2,8 +2,7 @@ from middlewared.api.current import DiskEntry, DiskUpdateArgs, DiskUpdateResult from middlewared.service import filterable_api_method, private, CRUDService import middlewared.sqlalchemy as sa -from middlewared.utils import ProductType - +from middlewared.utils import ProductType, MIDDLEWARE_RUN_DIR class DiskModel(sa.Model): __tablename__ = 'storage_disk' @@ -226,6 +225,19 @@ if not disk: return disk = disk[0] + + try: + with open(f'{MIDDLEWARE_RUN_DIR}/standby_disks', 'r') as file: + disk_list = file.read().split(',') + except: + disk_list = [] + if disk['hddstandby'] == 'ALWAYS ON' and dev in disk_list: + disk_list = list(filter(lambda a: a != dev, disk_list)) + elif disk['hddstandby'] != 'ALWAYS ON' and dev not in disk_list: + disk_list.append(dev) + disk_list.sort() + with open(f'{MIDDLEWARE_RUN_DIR}/standby_disks', 'w') as file: + file.write(','.join(disk_list)) return await self.middleware.call('disk.power_management_impl', dev, disk)