├── .editorconfig ├── .gitattributes ├── .gitignore ├── .travis.yml ├── README.md ├── composer.json ├── composer.lock ├── debian ├── changelog ├── compat ├── control ├── copyright ├── install ├── postinst ├── postrm ├── rules └── triggers ├── docs ├── Doxyfile ├── class-diagram.dia ├── class-diagram.png ├── class-diagram.svg └── doxygen.sh ├── openmediavault.mk ├── srv └── salt │ └── omv │ └── deploy │ └── zfszed │ ├── default.sls │ ├── files │ └── etc_zfs_zed-d_zed-rc.j2 │ └── init.sls ├── tests └── php │ └── omvzfs │ ├── expectations │ └── omvzfs.zpoolstatus │ │ ├── all_devices │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.json │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.json │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.json │ │ ├── cmd_output.zpool_status.redundantpool_mixed.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_double.json │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_byid.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_byid.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_refsmixed.json │ │ ├── cmd_output.zpool_status.simplepool_nvme_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_nvme_byid.json │ │ ├── cmd_output.zpool_status.simplepool_sata_bydev.json │ │ └── cmd_output.zpool_status.simplepool_sata_byid.json │ │ ├── all_devices_with_exclusion │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.exclude_offline.json │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.exclude_spare_avail.json │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.exclude_spare_avail_online.json │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.exclude_offline.json │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.exclude_unavail.json │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.exclude_unavail_spare_avail.json │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.exclude_offline.json │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.exclude_unavail.json │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.exclude_unavail_online.json │ │ ├── cmd_output.zpool_status.simplepool_sata_bydev.exclude_online.json │ │ └── cmd_output.zpool_status.simplepool_sata_bydev.exclude_unavail.json │ │ └── parsed_structure │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.json │ │ ├── cmd_output.zpool_status.complexpool_outoforder.json │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.json │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.json │ │ ├── cmd_output.zpool_status.poolerror_zfs_8000_9P.json │ │ ├── cmd_output.zpool_status.poolwithcache_doublecache.json │ │ ├── cmd_output.zpool_status.poolwithcache_simplecache.json │ │ ├── cmd_output.zpool_status.poolwithlogs_doublelog.json │ │ ├── cmd_output.zpool_status.poolwithlogs_doublemirrorlog.json │ │ ├── cmd_output.zpool_status.poolwithlogs_mirrorlog.json │ │ ├── cmd_output.zpool_status.poolwithlogs_simplelog.json │ │ ├── cmd_output.zpool_status.poolwithspares_multiplespares.json │ │ ├── cmd_output.zpool_status.poolwithspares_singlespare.json │ │ ├── cmd_output.zpool_status.redundantpool_mirror_double.json │ │ ├── cmd_output.zpool_status.redundantpool_mirror_single.json │ │ ├── cmd_output.zpool_status.redundantpool_mixed.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_double.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_extended.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_single.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_double.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_extended.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_single.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_double.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_extended.json │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_single.json │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_byid.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_byid.json │ │ ├── cmd_output.zpool_status.simplepool_mixed_refsmixed.json │ │ ├── cmd_output.zpool_status.simplepool_nvme_bydev.json │ │ ├── cmd_output.zpool_status.simplepool_nvme_byid.json │ │ ├── cmd_output.zpool_status.simplepool_sata_bydev.json │ │ └── cmd_output.zpool_status.simplepool_sata_byid.json │ ├── mocks │ └── omvzfs.zpoolstatus │ │ ├── cmd_output.zpool_status.complexpool_createdupfront.txt │ │ ├── cmd_output.zpool_status.complexpool_outoforder.txt │ │ ├── cmd_output.zpool_status.degradedpool_multidegradation.txt │ │ ├── cmd_output.zpool_status.degradedpool_simplemirror.txt │ │ ├── cmd_output.zpool_status.poolerror_zfs_8000_9P.txt │ │ ├── cmd_output.zpool_status.poolwithcache_doublecache.txt │ │ ├── cmd_output.zpool_status.poolwithcache_simplecache.txt │ │ ├── cmd_output.zpool_status.poolwithlogs_doublelog.txt │ │ ├── cmd_output.zpool_status.poolwithlogs_doublemirrorlog.txt │ │ ├── cmd_output.zpool_status.poolwithlogs_mirrorlog.txt │ │ ├── cmd_output.zpool_status.poolwithlogs_simplelog.txt │ │ ├── cmd_output.zpool_status.poolwithspares_multiplespares.txt │ │ ├── cmd_output.zpool_status.poolwithspares_singlespare.txt │ │ ├── cmd_output.zpool_status.redundantpool_mirror_double.txt │ │ ├── cmd_output.zpool_status.redundantpool_mirror_single.txt │ │ ├── cmd_output.zpool_status.redundantpool_mixed.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_double.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_extended.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz1_single.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_double.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_extended.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz2_single.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_double.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_extended.txt │ │ ├── cmd_output.zpool_status.redundantpool_raidz3_single.txt │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_bydev.txt │ │ ├── cmd_output.zpool_status.simplepool_devicemapper_byid.txt │ │ ├── cmd_output.zpool_status.simplepool_mixed_bydev.txt │ │ ├── cmd_output.zpool_status.simplepool_mixed_byid.txt │ │ ├── cmd_output.zpool_status.simplepool_mixed_refsmixed.txt │ │ ├── cmd_output.zpool_status.simplepool_nvme_bydev.txt │ │ ├── cmd_output.zpool_status.simplepool_nvme_byid.txt │ │ ├── cmd_output.zpool_status.simplepool_sata_bydev.txt │ │ └── cmd_output.zpool_status.simplepool_sata_byid.txt │ ├── omvzfs.zpoolstatus.class.Test.php │ ├── omvzfs.zpoolstatus.parser.Test.php │ └── utils.php └── usr └── share ├── omvzfs ├── Dataset.php ├── Exception.php ├── Filesystem.php ├── Snapshot.php ├── Utils.php ├── Vdev.php ├── VdevState.php ├── VdevType.php ├── Zpool.php ├── ZpoolStatus.php └── Zvol.php ├── openmediavault ├── datamodels │ ├── conf.service.zfs.json │ └── rpc.zfs.json ├── engined │ ├── inc │ │ └── 50zfsbackend.inc │ ├── module │ │ ├── zfs.inc │ │ └── zfszed.inc │ └── rpc │ │ └── zfs.inc ├── locale │ ├── ach │ │ └── openmediavault-zfs.po │ ├── ady │ │ └── openmediavault-zfs.po │ ├── ar_SA │ │ └── openmediavault-zfs.po │ ├── bg │ │ └── openmediavault-zfs.po │ ├── ca_ES │ │ └── openmediavault-zfs.po │ ├── cs_CZ │ │ └── openmediavault-zfs.po │ ├── da_DA │ │ └── openmediavault-zfs.po │ ├── de_DE │ │ └── openmediavault-zfs.po │ ├── en_GB │ │ └── openmediavault-zfs.po │ ├── es │ │ └── openmediavault-zfs.po │ ├── es_CO │ │ └── openmediavault-zfs.po │ ├── es_ES │ │ └── openmediavault-zfs.po │ ├── eu │ │ └── openmediavault-zfs.po │ ├── fi │ │ └── openmediavault-zfs.po │ ├── fr │ │ └── openmediavault-zfs.po │ ├── fr_FR │ │ └── openmediavault-zfs.po │ ├── gl │ │ └── openmediavault-zfs.po │ ├── hu │ │ └── openmediavault-zfs.po │ ├── hu_HU │ │ └── openmediavault-zfs.po │ ├── it_IT │ │ └── openmediavault-zfs.po │ ├── ja_JP │ │ └── openmediavault-zfs.po │ ├── ko_KR │ │ └── openmediavault-zfs.po │ ├── nl │ │ └── openmediavault-zfs.po │ ├── nl_BE │ │ └── openmediavault-zfs.po │ ├── nl_NL │ │ └── openmediavault-zfs.po │ ├── no_NO │ │ └── openmediavault-zfs.po │ ├── oc │ │ └── openmediavault-zfs.po │ ├── openmediavault-zfs.pot │ ├── pl │ │ └── openmediavault-zfs.po │ ├── pl_PL │ │ └── openmediavault-zfs.po │ ├── pt │ │ └── openmediavault-zfs.po │ ├── pt_BR │ │ └── openmediavault-zfs.po │ ├── ru_RU │ │ └── openmediavault-zfs.po │ ├── sv_SV │ │ └── openmediavault-zfs.po │ ├── tr │ │ └── openmediavault-zfs.po │ ├── uk_UK │ │ └── openmediavault-zfs.po │ ├── zh_CN │ │ └── openmediavault-zfs.po │ └── zh_TW │ │ └── openmediavault-zfs.po └── workbench │ ├── component.d │ ├── omv-storage-zfs-naviation-page.yaml │ ├── omv-storage-zfs-pools-create-form-page.yaml │ ├── omv-storage-zfs-pools-datatable-page.yaml │ ├── omv-storage-zfs-pools-details-text-page.yaml │ ├── omv-storage-zfs-pools-expand-form-page.yaml │ ├── omv-storage-zfs-pools-properties-form-page.yaml │ └── omv-storage-zfs-snapshots-datatable-page.yaml │ ├── dashboard.d │ └── zfsarc.yaml │ ├── navigation.d │ ├── storage.zfs.pools.yaml │ ├── storage.zfs.snapshots.yaml │ └── storage.zfs.yaml │ └── route.d │ ├── storage.zfs.pools.create.yaml │ ├── storage.zfs.pools.details.yaml │ ├── storage.zfs.pools.expand.yaml │ ├── storage.zfs.pools.properties.yaml │ ├── storage.zfs.pools.yaml │ ├── storage.zfs.snapshots.yaml │ └── storage.zfs.yaml └── php └── openmediavault └── system ├── filesystem ├── backend │ └── zfs.inc └── filesystemzfs.inc └── storage ├── backend └── zvol.inc └── storagedevicezvol.inc /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.{php,inc}] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.gif binary 4 | *.jpg binary 5 | *.png binary 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # General 2 | *.tmp 3 | *.bak 4 | *.swp 5 | *~ 6 | html 7 | latex 8 | 9 | # Eclipse 10 | .project 11 | .metadata 12 | .settings/ 13 | *.launch 14 | .buildpath 15 | *.pydevproject 16 | 17 | # JetBrains 18 | .idea/ 19 | *.ipr 20 | *.iws 21 | *.iml 22 | 23 | # Netbeans 24 | nbproject/ 25 | build/ 26 | nbbuild/ 27 | dist/ 28 | nbdist/ 29 | nbactions.xml 30 | nb-configuration.xml 31 | 32 | # Sublime Text 33 | *.sublime-workspace 34 | *.sublime-project 35 | 36 | # Vim 37 | [._]*.s[a-w][a-z] 38 | [._]s[a-w][a-z] 39 | *.un~ 40 | Session.vim 41 | .netrwhist 42 | 43 | # geany 44 | *.geany 45 | 46 | # SVN 47 | .svn/ 48 | 49 | # Mac 50 | .DS_Store 51 | .AppleDouble 52 | .LSOverride 53 | 54 | # Windows 55 | Thumbs.db 56 | ehthumbs.db 57 | Desktop.ini 58 | 59 | # Package files 60 | debian/openmediavault-* 61 | debian/files 62 | debian/*.debhelper.log 63 | debian/*.debhelper 64 | debian/*substvars 65 | 66 | ### Composer ### 67 | composer.phar 68 | /vendor/ 69 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # see http://about.travis-ci.org/docs/user/languages/php/ for more hints 2 | language: php 3 | 4 | # list any PHP version you want to test against 5 | php: 6 | # main version should be kept as close as possible to supported OMV's PHP version 7 | # and dependencies should be updated with --prefer-lowest to prevent being ahead 8 | - 7.0 9 | 10 | # install project dependencies 11 | install: 12 | - composer install 13 | 14 | script: 15 | - composer run-script test 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | openmediavault-zfs 2 | ================== 3 | 4 | ### Commands: 5 | 6 | - build .deb package: 7 | ``fakeroot debian/rules clean binary`` 8 | - install PHP dependencies: 9 | ``composer install`` 10 | - run PHP tests: 11 | ``composer run-script test`` 12 | 13 | ### Objects: 14 | 15 | ``` 16 | - zpool 17 | - vdev 18 | - disk 19 | - zvol 20 | - dataset 21 | - snapshot 22 | 23 | ::= | ; 24 | ::= | | | | ; 25 | ::= "disk" "disk" | "disk" ; 26 | ::= "disk" "disk" "disk" | "disk" ; 27 | ::= "disk" "disk" "disk" "disk" | "disk" ; 28 | ::= "disk" "disk" "disk" "disk" "disk" | "disk" ; 29 | ::= "internal" | | ; 30 | ::= "internal" | ; 31 | ::= "" | ; 32 | ::= "disk" | "disk" ; 33 | ``` 34 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OpenMediaVault-Plugin-Developers/openmediavault-zfs", 3 | "type": "library", 4 | "description": "OpenMediaVault plugin for ZFS", 5 | "keywords": ["openmediavault","openmediavault-plugin","omv-extras","zfs"], 6 | "homepage": "https://github.com/OpenMediaVault-Plugin-Developers/openmediavault-zfs", 7 | "license": "GPL-3.0", 8 | "authors": [ 9 | { 10 | "name": "OpenMediaVault Plugin Developers", 11 | "email": "plugins@omv-extras.org", 12 | "homepage": "http://omv-extras.org" 13 | } 14 | ], 15 | "require": { 16 | "php": "^7.0" 17 | }, 18 | "require-dev": { 19 | "phpunit/phpunit": "^6.5" 20 | }, 21 | "scripts": { 22 | "test": "phpunit --bootstrap vendor/autoload.php --colors=always tests/php/" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 13 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: openmediavault-zfs 2 | Section: net 3 | XB-Plugin-Section: filesystems 4 | Priority: optional 5 | Maintainer: OpenMediaVault Plugin Developers 6 | Build-Depends: debhelper (>= 13) 7 | Standards-Version: 4.3.0 8 | Homepage: http://omv-extras.org/ 9 | 10 | Package: openmediavault-zfs 11 | Architecture: any 12 | Depends: libzfs4linux | libzfs6linux, 13 | proxmox-headers-6.2 [amd64] | proxmox-headers-6.5 [amd64] | proxmox-headers-6.8 [amd64] | proxmox-headers-6.11 [amd64] | pve-headers [amd64] | linux-headers-amd64 [amd64], 14 | linux-headers-586 [i386] | linux-headers-686 [i386] | linux-headers-686-pae [i386], 15 | openmediavault (>= 7.7), 16 | proxmox-headers-6.2 [amd64] | proxmox-headers-6.5 [amd64] | proxmox-headers-6.8 [amd64] | proxmox-headers-6.11 [amd64] | pve-headers [amd64] | zfs-dkms [amd64], 17 | zfs-dkms [i386], 18 | zfsutils-linux [i386 amd64], 19 | zfs-zed, 20 | ${misc:Depends} 21 | Description: OpenMediaVault plugin for ZFS 22 | ZFS is a combined file system and logical volume manager designed 23 | by Sun Microsystems. The features of ZFS include protection against 24 | data corruption, support for high storage capacities, efficient data 25 | compression, integration of the concepts of filesystem and volume 26 | management, snapshots and copy-on-write clones, continuous integrity 27 | checking and automatic repair, RAID-Z and native NFSv4 ACLs. 28 | . 29 | The native Linux kernel port of the ZFS filesystem. 30 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Contact: OpenMediaVault Plugin Developers 3 | Copyright: 2013-2025 openmediavault plugin developers 4 | License: GPL-3 5 | -------------------------------------------------------------------------------- /debian/install: -------------------------------------------------------------------------------- 1 | srv/* srv 2 | usr/share/openmediavault/* usr/share/openmediavault 3 | usr/share/php/* usr/share/php 4 | usr/share/omvzfs/* usr/share/omvzfs 5 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | . /etc/default/openmediavault 6 | . /usr/share/openmediavault/scripts/helper-functions 7 | 8 | case "$1" in 9 | configure) 10 | # Activate package triggers 11 | dpkg-trigger update-workbench 12 | 13 | # add zfs-zed notfication 14 | xpath="/config/system/notification/notifications" 15 | if ! omv_config_exists "${xpath}/notification[id='zfs']"; then 16 | object="$(omv_uuid)" 17 | object="${object}zfs" 18 | object="${object}0" 19 | omv_config_add_node_data "${xpath}" "notification" "${object}" 20 | fi 21 | omv-salt deploy run --no-color --quiet zfszed || : 22 | 23 | # load zfs kernel module 24 | modprobe --quiet zfs || : 25 | echo "zfs" > /etc/modules-load.d/zfs.conf 26 | ;; 27 | 28 | abort-upgrade|abort-remove|abort-deconfigure) 29 | ;; 30 | 31 | *) 32 | echo "postinst called with unknown argument \`$1'" >&2 33 | exit 1 34 | ;; 35 | esac 36 | 37 | #DEBHELPER# 38 | 39 | exit 0 40 | -------------------------------------------------------------------------------- /debian/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | . /etc/default/openmediavault 6 | . /usr/share/openmediavault/scripts/helper-functions 7 | 8 | remove_action() { 9 | dpkg-trigger update-workbench 10 | } 11 | 12 | case "$1" in 13 | purge) 14 | remove_action 15 | echo "Deleting Configuration" 16 | omv_config_delete "/config/services/zfs" 17 | rm -f /etc/modules-load.d/zfs.conf 18 | ;; 19 | 20 | remove) 21 | remove_action 22 | ;; 23 | 24 | upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 25 | ;; 26 | 27 | *) 28 | echo "postrm called with unknown argument \`$1'" >&2 29 | exit 1 30 | ;; 31 | esac 32 | 33 | #DEBHELPER# 34 | 35 | exit 0 36 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | include ./openmediavault.mk 4 | 5 | PLUGIN_NAME=zfs 6 | 7 | clean: 8 | dh_testdir 9 | dh_testroot 10 | dh_clean 11 | 12 | install: 13 | dh_testdir 14 | dh_testroot 15 | dh_prep 16 | dh_installdirs 17 | dh_install 18 | 19 | binary-indep: install omv_clean_scm 20 | dh_testdir 21 | dh_testroot 22 | dh_installchangelogs 23 | dh_installdebconf 24 | dh_lintian 25 | dh_link 26 | dh_compress 27 | dh_fixperms 28 | dh_installdeb 29 | dh_gencontrol 30 | dh_md5sums 31 | dh_builddeb 32 | 33 | binary-arch: install 34 | # We have nothing to do by default. 35 | 36 | build: 37 | # We have nothing to do by default. 38 | 39 | binary: binary-indep binary-arch 40 | .PHONY: clean binary-indep binary-arch binary install 41 | -------------------------------------------------------------------------------- /debian/triggers: -------------------------------------------------------------------------------- 1 | activate restart-engined 2 | -------------------------------------------------------------------------------- /docs/class-diagram.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/openmediavault-zfs/b08d129f73d0943ac23c597738da885bf3ddb023/docs/class-diagram.dia -------------------------------------------------------------------------------- /docs/class-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/openmediavault-zfs/b08d129f73d0943ac23c597738da885bf3ddb023/docs/class-diagram.png -------------------------------------------------------------------------------- /docs/doxygen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DOXYGEN=$(which doxygen) 4 | 5 | [ -z $DOXYGEN ] && exit 1 6 | 7 | $DOXYGEN Doxyfile 8 | 9 | exit 0 10 | -------------------------------------------------------------------------------- /openmediavault.mk: -------------------------------------------------------------------------------- 1 | # -*- mode: makefile; coding: utf-8 -*- 2 | # 3 | # This file is part of OpenMediaVault. 4 | # 5 | # @license http://www.gnu.org/licenses/gpl.html GPL Version 3 6 | # @author Volker Theile 7 | # @copyright Copyright (c) 2009-2013 Volker Theile 8 | # 9 | # OpenMediaVault is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # any later version. 13 | # 14 | # OpenMediaVault is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with OpenMediaVault. If not, see . 21 | 22 | OMV_PACKAGE := $(shell pwd | sed 's|.*/||') 23 | OMV_POT_DIR := $(CURDIR)/usr/share/openmediavault/locale 24 | OMV_POT_FILE := $(OMV_PACKAGE).pot 25 | OMV_TRANSIFEX_SLUG := $(OMV_PACKAGE)pot 26 | 27 | omv_pull_po: 28 | tx --root="$(CURDIR)/../" pull --all \ 29 | --resource=$(OMV_PACKAGE).$(OMV_TRANSIFEX_SLUG) 30 | 31 | omv_push_pot: 32 | tx --root="$(CURDIR)/../" push --source \ 33 | --resource=$(OMV_PACKAGE).$(OMV_TRANSIFEX_SLUG) 34 | 35 | omv_build_pot: 36 | dh_testdir 37 | dh_clean 38 | echo "Building PO template file ..." >&2 39 | mkdir -p $(OMV_POT_DIR) 40 | find $(CURDIR) \( -iname *.js -o -iname *.php -o -iname *.inc \) \ 41 | -type f -print0 | xargs -0r xgettext --keyword=_ \ 42 | --output-dir=$(OMV_POT_DIR) --output=$(OMV_POT_FILE) \ 43 | --force-po --no-location --no-wrap --sort-output \ 44 | --package-name=$(OMV_PACKAGE) - 45 | # Remove '#, c-format' comments, otherwise manuall upload of translation 46 | # files confuses Transifex. 47 | sed --in-place '/^#, c-format/d' $(OMV_POT_DIR)/$(OMV_POT_FILE) 48 | 49 | omv_clean_scm: 50 | dh_testdir 51 | echo "Removing SCM files ..." >&2 52 | find $(CURDIR)/debian/$(OMV_PACKAGE) \( -name .svn -o -name .git \) \ 53 | -type d -print0 -prune | xargs -0r rm -rf 54 | 55 | omv_build_doc: debian/doxygen.conf 56 | mkdir -p debian/doxygen 57 | doxygen $< 58 | 59 | source: clean 60 | dpkg-buildpackage -S -us -uc 61 | 62 | .PHONY: omv_pull_po omv_push_pot omv_build_pot omv_clean_scm omv_build_doc 63 | .PHONY: source 64 | -------------------------------------------------------------------------------- /srv/salt/omv/deploy/zfszed/default.sls: -------------------------------------------------------------------------------- 1 | # @license http://www.gnu.org/licenses/gpl.html GPL Version 3 2 | # @author OpenMediaVault Plugin Developers 3 | # @copyright Copyright (c) 2019-2025 openmediavault plugin developers 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | {% set notification_config = salt['omv_conf.get_by_filter']( 19 | 'conf.system.notification.notification', 20 | {'operator': 'stringEquals', 'arg0': 'id', 'arg1': 'zfs'})[0] %} 21 | {% set email_config = salt['omv_conf.get']('conf.system.notification.email') %} 22 | 23 | create_zed-rc_config: 24 | file.managed: 25 | - name: "/etc/zfs/zed.d/zed.rc" 26 | - source: 27 | - salt://{{ tpldir }}/files/etc_zfs_zed-d_zed-rc.j2 28 | - template: jinja 29 | - context: 30 | email_config: {{ email_config | json }} 31 | notification_config: {{ notification_config | json }} 32 | - user: root 33 | - group: root 34 | - mode: 644 35 | 36 | restart_zed_service: 37 | service.running: 38 | - name: zfs-zed 39 | - enable: True 40 | - watch: 41 | - file: create_zed-rc_config 42 | 43 | -------------------------------------------------------------------------------- /srv/salt/omv/deploy/zfszed/files/etc_zfs_zed-d_zed-rc.j2: -------------------------------------------------------------------------------- 1 | {{ pillar['headers']['multiline'] }} 2 | {% if not email_config.enable or not notification_config.enable -%} 3 | #ZED_EMAIL_ADDR= 4 | #ZED_NOTIFY_INTERNAL_SECS=3600 5 | {%- else -%} 6 | ZED_EMAIL_ADDR="{{ email_config.primaryemail }}" 7 | ZED_NOTIFY_INTERNAL_SECS=3600 8 | ZED_NOTIFY_VERBOSE=1 9 | ZED_SYSLOG_SUBCLASS_EXCLUDE="history_event" 10 | {%- endif %} 11 | -------------------------------------------------------------------------------- /srv/salt/omv/deploy/zfszed/init.sls: -------------------------------------------------------------------------------- 1 | include: 2 | - .{{ salt['pillar.get']('deploy_zfszed', 'default') }} 3 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.complexpool_createdupfront.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 10 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1", 11 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1", 12 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1", 13 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd5678-sdm-part1", 14 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde1234-sdn-part1", 15 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde2345-sdo-part1", 16 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde3456-sdp-part1", 17 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde4567-sdr-part1" 18 | ] 19 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.degradedpool_multidegradation.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "7289430804289271706", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "5643719822593634226", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1" 10 | ] 11 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.degradedpool_simplemirror.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "7289430804289271706", 4 | "351480577971836490" 5 | ] 6 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.redundantpool_mixed.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 10 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1", 11 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1", 12 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1" 13 | ] 14 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.redundantpool_raidz3_double.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 10 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1", 11 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1" 12 | ] 13 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_devicemapper_bydev.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/dm-0", 3 | "/dev/dm-1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_devicemapper_byid.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/dm-name-sdb-crypt", 3 | "/dev/disk/by-id/dm-name-nvme0n1-crypt" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_mixed_bydev.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/sdg1", 3 | "/dev/sdh1", 4 | "/dev/dm-0", 5 | "/dev/nvme0n1p1", 6 | "/dev/nvme0n2p1" 7 | ] 8 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_mixed_byid.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1", 4 | "/dev/disk/by-id/dm-name-sdb-crypt", 5 | "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 6 | "/dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1" 7 | ] 8 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_mixed_refsmixed.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 3 | "/dev/sdh1", 4 | "/dev/disk/by-id/dm-name-sdb-crypt", 5 | "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 6 | "/dev/nvme0n2p1" 7 | ] 8 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_nvme_bydev.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/nvme0n1p1", 3 | "/dev/nvme0n2p1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_nvme_byid.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 3 | "/dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_sata_bydev.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/sdg1", 3 | "/dev/sdh1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices/cmd_output.zpool_status.simplepool_sata_byid.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.complexpool_createdupfront.exclude_offline.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 10 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1", 11 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1", 12 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1", 13 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd5678-sdm-part1", 14 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde1234-sdn-part1", 15 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde2345-sdo-part1", 16 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde3456-sdp-part1", 17 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde4567-sdr-part1" 18 | ] 19 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.complexpool_createdupfront.exclude_spare_avail.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 10 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1", 11 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1", 12 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1", 13 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd5678-sdm-part1" 14 | ] 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.complexpool_createdupfront.exclude_spare_avail_online.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_multidegradation.exclude_offline.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "7289430804289271706", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 6 | "5643719822593634226", 7 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 8 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 9 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1" 10 | ] 11 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_multidegradation.exclude_unavail.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 5 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 6 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1" 7 | ] 8 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_multidegradation.exclude_unavail_spare_avail.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 4 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1" 5 | ] 6 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_simplemirror.exclude_offline.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 3 | "7289430804289271706", 4 | "351480577971836490" 5 | ] 6 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_simplemirror.exclude_unavail.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1" 3 | ] 4 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.degradedpool_simplemirror.exclude_unavail_online.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.simplepool_sata_bydev.exclude_online.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/all_devices_with_exclusion/cmd_output.zpool_status.simplepool_sata_bydev.exclude_unavail.json: -------------------------------------------------------------------------------- 1 | [ 2 | "/dev/sdg1", 3 | "/dev/sdh1" 4 | ] 5 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.degradedpool_multidegradation.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "degradedpool_multidegradation", 3 | "state": "DEGRADED", 4 | "status": "One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state.", 5 | "action": "Replace the device using 'zpool replace'.", 6 | "see": "http://zfsonlinux.org/msg/ZFS-8000-4J", 7 | "scan": "resilvered 4.50K in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 8 | "config": [ 9 | { 10 | "name": "degradedpool_multidegradation", 11 | "state": "DEGRADED", 12 | "read": "0", 13 | "write": "0", 14 | "cksum": "0", 15 | "notes": null, 16 | "subentries": [ 17 | { 18 | "name": "mirror-0", 19 | "state": "DEGRADED", 20 | "read": "0", 21 | "write": "0", 22 | "cksum": "0", 23 | "notes": null, 24 | "subentries": [ 25 | { 26 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 27 | "state": "ONLINE", 28 | "read": "0", 29 | "write": "0", 30 | "cksum": "0", 31 | "notes": null, 32 | "subentries": [] 33 | }, 34 | { 35 | "name": "7289430804289271706", 36 | "state": "UNAVAIL", 37 | "read": "0", 38 | "write": "0", 39 | "cksum": "0", 40 | "notes": "was /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 41 | "subentries": [] 42 | }, 43 | { 44 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 45 | "state": "ONLINE", 46 | "read": "0", 47 | "write": "0", 48 | "cksum": "0", 49 | "notes": null, 50 | "subentries": [] 51 | } 52 | ] 53 | } 54 | ] 55 | }, 56 | { 57 | "name": "logs", 58 | "state": null, 59 | "read": null, 60 | "write": null, 61 | "cksum": null, 62 | "notes": null, 63 | "subentries": [ 64 | { 65 | "name": "mirror-1", 66 | "state": "DEGRADED", 67 | "read": "0", 68 | "write": "0", 69 | "cksum": "0", 70 | "notes": null, 71 | "subentries": [ 72 | { 73 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 74 | "state": "ONLINE", 75 | "read": "0", 76 | "write": "0", 77 | "cksum": "0", 78 | "notes": null, 79 | "subentries": [] 80 | }, 81 | { 82 | "name": "5643719822593634226", 83 | "state": "UNAVAIL", 84 | "read": "0", 85 | "write": "0", 86 | "cksum": "0", 87 | "notes": "was /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 88 | "subentries": [] 89 | } 90 | ] 91 | } 92 | ] 93 | }, 94 | { 95 | "name": "spares", 96 | "state": null, 97 | "read": null, 98 | "write": null, 99 | "cksum": null, 100 | "notes": null, 101 | "subentries": [ 102 | { 103 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 104 | "state": "AVAIL", 105 | "read": null, 106 | "write": null, 107 | "cksum": null, 108 | "notes": null, 109 | "subentries": [] 110 | }, 111 | { 112 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 113 | "state": "UNAVAIL", 114 | "read": null, 115 | "write": null, 116 | "cksum": null, 117 | "notes": null, 118 | "subentries": [] 119 | }, 120 | { 121 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 122 | "state": "AVAIL", 123 | "read": null, 124 | "write": null, 125 | "cksum": null, 126 | "notes": null, 127 | "subentries": [] 128 | } 129 | ] 130 | } 131 | ], 132 | "errors": "No known data errors" 133 | } 134 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.degradedpool_simplemirror.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "degradedpool_simplemirror", 3 | "state": "DEGRADED", 4 | "status": "One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state.", 5 | "action": "Replace the device using 'zpool replace'.", 6 | "see": "http://zfsonlinux.org/msg/ZFS-8000-4J", 7 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 8 | "config": [ 9 | { 10 | "name": "degradedpool_simplemirror", 11 | "state": "DEGRADED", 12 | "read": "0", 13 | "write": "0", 14 | "cksum": "0", 15 | "notes": null, 16 | "subentries": [ 17 | { 18 | "name": "mirror-0", 19 | "state": "DEGRADED", 20 | "read": "0", 21 | "write": "0", 22 | "cksum": "0", 23 | "notes": null, 24 | "subentries": [ 25 | { 26 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 27 | "state": "ONLINE", 28 | "read": "0", 29 | "write": "0", 30 | "cksum": "0", 31 | "notes": null, 32 | "subentries": [] 33 | }, 34 | { 35 | "name": "7289430804289271706", 36 | "state": "UNAVAIL", 37 | "read": "0", 38 | "write": "0", 39 | "cksum": "0", 40 | "notes": "was /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 41 | "subentries": [] 42 | }, 43 | { 44 | "name": "351480577971836490", 45 | "state": "UNAVAIL", 46 | "read": "0", 47 | "write": "0", 48 | "cksum": "0", 49 | "notes": "was /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 50 | "subentries": [] 51 | } 52 | ] 53 | } 54 | ] 55 | } 56 | ], 57 | "errors": "No known data errors" 58 | } 59 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolerror_zfs_8000_9P.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolerror_zfs_8000_9P", 3 | "state": "ONLINE", 4 | "status": "One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected.", 5 | "action": "Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'.", 6 | "see": "http://zfsonlinux.org/msg/ZFS-8000-9P", 7 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 8 | "config": [ 9 | { 10 | "name": "poolerror_zfs_8000_9P", 11 | "state": "ONLINE", 12 | "read": "0", 13 | "write": "0", 14 | "cksum": "0", 15 | "notes": null, 16 | "subentries": [ 17 | { 18 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 19 | "state": "ONLINE", 20 | "read": "0", 21 | "write": "0", 22 | "cksum": "1.13M", 23 | "notes": null, 24 | "subentries": [] 25 | }, 26 | { 27 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 28 | "state": "ONLINE", 29 | "read": "5.2K", 30 | "write": "2", 31 | "cksum": "12K", 32 | "notes": null, 33 | "subentries": [] 34 | } 35 | ] 36 | } 37 | ], 38 | "errors": "No known data errors" 39 | } 40 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithcache_doublecache.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithcache_doublecache", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithcache_doublecache", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "cache", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [] 60 | }, 61 | { 62 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 63 | "state": "ONLINE", 64 | "read": "0", 65 | "write": "0", 66 | "cksum": "0", 67 | "notes": null, 68 | "subentries": [] 69 | } 70 | ] 71 | } 72 | ], 73 | "errors": "No known data errors" 74 | } 75 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithcache_simplecache.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithcache_simplecache", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithcache_simplecache", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "cache", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [] 60 | } 61 | ] 62 | } 63 | ], 64 | "errors": "No known data errors" 65 | } 66 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithlogs_doublelog.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithlogs_doublelog", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithlogs_doublelog", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "logs", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [] 60 | }, 61 | { 62 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 63 | "state": "ONLINE", 64 | "read": "0", 65 | "write": "0", 66 | "cksum": "0", 67 | "notes": null, 68 | "subentries": [] 69 | } 70 | ] 71 | } 72 | ], 73 | "errors": "No known data errors" 74 | } 75 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithlogs_doublemirrorlog.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithlogs_doublemirrorlog", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithlogs_doublemirrorlog", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "logs", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "mirror-1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [ 60 | { 61 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 62 | "state": "ONLINE", 63 | "read": "0", 64 | "write": "0", 65 | "cksum": "0", 66 | "notes": null, 67 | "subentries": [] 68 | }, 69 | { 70 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 71 | "state": "ONLINE", 72 | "read": "0", 73 | "write": "0", 74 | "cksum": "0", 75 | "notes": null, 76 | "subentries": [] 77 | } 78 | ] 79 | }, 80 | { 81 | "name": "mirror-2", 82 | "state": "ONLINE", 83 | "read": "0", 84 | "write": "0", 85 | "cksum": "0", 86 | "notes": null, 87 | "subentries": [ 88 | { 89 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 90 | "state": "ONLINE", 91 | "read": "0", 92 | "write": "0", 93 | "cksum": "0", 94 | "notes": null, 95 | "subentries": [] 96 | }, 97 | { 98 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 99 | "state": "ONLINE", 100 | "read": "0", 101 | "write": "0", 102 | "cksum": "0", 103 | "notes": null, 104 | "subentries": [] 105 | } 106 | ] 107 | } 108 | ] 109 | } 110 | ], 111 | "errors": "No known data errors" 112 | } 113 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithlogs_mirrorlog.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithlogs_mirrorlog", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithlogs_mirrorlog", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "logs", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "mirror-1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [ 60 | { 61 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 62 | "state": "ONLINE", 63 | "read": "0", 64 | "write": "0", 65 | "cksum": "0", 66 | "notes": null, 67 | "subentries": [] 68 | }, 69 | { 70 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 71 | "state": "ONLINE", 72 | "read": "0", 73 | "write": "0", 74 | "cksum": "0", 75 | "notes": null, 76 | "subentries": [] 77 | } 78 | ] 79 | } 80 | ] 81 | } 82 | ], 83 | "errors": "No known data errors" 84 | } 85 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithlogs_simplelog.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithlogs_simplelog", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithlogs_simplelog", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "logs", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "ONLINE", 55 | "read": "0", 56 | "write": "0", 57 | "cksum": "0", 58 | "notes": null, 59 | "subentries": [] 60 | } 61 | ] 62 | } 63 | ], 64 | "errors": "No known data errors" 65 | } 66 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithspares_multiplespares.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithspares_multiplespares", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithspares_multiplespares", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "spares", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "AVAIL", 55 | "read": null, 56 | "write": null, 57 | "cksum": null, 58 | "notes": null, 59 | "subentries": [] 60 | }, 61 | { 62 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 63 | "state": "AVAIL", 64 | "read": null, 65 | "write": null, 66 | "cksum": null, 67 | "notes": null, 68 | "subentries": [] 69 | }, 70 | { 71 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 72 | "state": "AVAIL", 73 | "read": null, 74 | "write": null, 75 | "cksum": null, 76 | "notes": null, 77 | "subentries": [] 78 | } 79 | ] 80 | } 81 | ], 82 | "errors": "No known data errors" 83 | } 84 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.poolwithspares_singlespare.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "poolwithspares_singlespare", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "poolwithspares_singlespare", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "spares", 46 | "state": null, 47 | "read": null, 48 | "write": null, 49 | "cksum": null, 50 | "notes": null, 51 | "subentries": [ 52 | { 53 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 54 | "state": "AVAIL", 55 | "read": null, 56 | "write": null, 57 | "cksum": null, 58 | "notes": null, 59 | "subentries": [] 60 | } 61 | ] 62 | } 63 | ], 64 | "errors": "No known data errors" 65 | } 66 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_mirror_double.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_mirror_double", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_mirror_double", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | } 40 | ] 41 | }, 42 | { 43 | "name": "mirror-1", 44 | "state": "ONLINE", 45 | "read": "0", 46 | "write": "0", 47 | "cksum": "0", 48 | "notes": null, 49 | "subentries": [ 50 | { 51 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 52 | "state": "ONLINE", 53 | "read": "0", 54 | "write": "0", 55 | "cksum": "0", 56 | "notes": null, 57 | "subentries": [] 58 | }, 59 | { 60 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 61 | "state": "ONLINE", 62 | "read": "0", 63 | "write": "0", 64 | "cksum": "0", 65 | "notes": null, 66 | "subentries": [] 67 | } 68 | ] 69 | } 70 | ] 71 | } 72 | ], 73 | "errors": "No known data errors" 74 | } 75 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_mirror_single.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_mirror_single", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_mirror_single", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "mirror-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | } 49 | ] 50 | } 51 | ] 52 | } 53 | ], 54 | "errors": "No known data errors" 55 | } 56 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz1_double.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz1_double", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz1_double", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz1-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | } 49 | ] 50 | }, 51 | { 52 | "name": "raidz1-1", 53 | "state": "ONLINE", 54 | "read": "0", 55 | "write": "0", 56 | "cksum": "0", 57 | "notes": null, 58 | "subentries": [ 59 | { 60 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 61 | "state": "ONLINE", 62 | "read": "0", 63 | "write": "0", 64 | "cksum": "0", 65 | "notes": null, 66 | "subentries": [] 67 | }, 68 | { 69 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 70 | "state": "ONLINE", 71 | "read": "0", 72 | "write": "0", 73 | "cksum": "0", 74 | "notes": null, 75 | "subentries": [] 76 | }, 77 | { 78 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 79 | "state": "ONLINE", 80 | "read": "0", 81 | "write": "0", 82 | "cksum": "0", 83 | "notes": null, 84 | "subentries": [] 85 | } 86 | ] 87 | } 88 | ] 89 | } 90 | ], 91 | "errors": "No known data errors" 92 | } 93 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz1_extended.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz1_extended", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz1_extended", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz1-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | } 58 | ] 59 | } 60 | ] 61 | } 62 | ], 63 | "errors": "No known data errors" 64 | } 65 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz1_single.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz1_single", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz1_single", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz1-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | } 49 | ] 50 | } 51 | ] 52 | } 53 | ], 54 | "errors": "No known data errors" 55 | } 56 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz2_double.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz2_double", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz2_double", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz2-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | } 58 | ] 59 | }, 60 | { 61 | "name": "raidz2-1", 62 | "state": "ONLINE", 63 | "read": "0", 64 | "write": "0", 65 | "cksum": "0", 66 | "notes": null, 67 | "subentries": [ 68 | { 69 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 70 | "state": "ONLINE", 71 | "read": "0", 72 | "write": "0", 73 | "cksum": "0", 74 | "notes": null, 75 | "subentries": [] 76 | }, 77 | { 78 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 79 | "state": "ONLINE", 80 | "read": "0", 81 | "write": "0", 82 | "cksum": "0", 83 | "notes": null, 84 | "subentries": [] 85 | }, 86 | { 87 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1", 88 | "state": "ONLINE", 89 | "read": "0", 90 | "write": "0", 91 | "cksum": "0", 92 | "notes": null, 93 | "subentries": [] 94 | }, 95 | { 96 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1", 97 | "state": "ONLINE", 98 | "read": "0", 99 | "write": "0", 100 | "cksum": "0", 101 | "notes": null, 102 | "subentries": [] 103 | } 104 | ] 105 | } 106 | ] 107 | } 108 | ], 109 | "errors": "No known data errors" 110 | } 111 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz2_extended.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz2_extended", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz2_extended", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz2-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | }, 58 | { 59 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 60 | "state": "ONLINE", 61 | "read": "0", 62 | "write": "0", 63 | "cksum": "0", 64 | "notes": null, 65 | "subentries": [] 66 | } 67 | ] 68 | } 69 | ] 70 | } 71 | ], 72 | "errors": "No known data errors" 73 | } 74 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz2_single.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz2_single", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz2_single", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz2-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | } 58 | ] 59 | } 60 | ] 61 | } 62 | ], 63 | "errors": "No known data errors" 64 | } 65 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz3_extended.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz3_extended", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz3_extended", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz3-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | }, 58 | { 59 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 60 | "state": "ONLINE", 61 | "read": "0", 62 | "write": "0", 63 | "cksum": "0", 64 | "notes": null, 65 | "subentries": [] 66 | }, 67 | { 68 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1", 69 | "state": "ONLINE", 70 | "read": "0", 71 | "write": "0", 72 | "cksum": "0", 73 | "notes": null, 74 | "subentries": [] 75 | } 76 | ] 77 | } 78 | ] 79 | } 80 | ], 81 | "errors": "No known data errors" 82 | } 83 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.redundantpool_raidz3_single.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "redundantpool_raidz3_single", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "redundantpool_raidz3_single", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "raidz3-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [ 22 | { 23 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1", 24 | "state": "ONLINE", 25 | "read": "0", 26 | "write": "0", 27 | "cksum": "0", 28 | "notes": null, 29 | "subentries": [] 30 | }, 31 | { 32 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1", 33 | "state": "ONLINE", 34 | "read": "0", 35 | "write": "0", 36 | "cksum": "0", 37 | "notes": null, 38 | "subentries": [] 39 | }, 40 | { 41 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1", 42 | "state": "ONLINE", 43 | "read": "0", 44 | "write": "0", 45 | "cksum": "0", 46 | "notes": null, 47 | "subentries": [] 48 | }, 49 | { 50 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1", 51 | "state": "ONLINE", 52 | "read": "0", 53 | "write": "0", 54 | "cksum": "0", 55 | "notes": null, 56 | "subentries": [] 57 | }, 58 | { 59 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1", 60 | "state": "ONLINE", 61 | "read": "0", 62 | "write": "0", 63 | "cksum": "0", 64 | "notes": null, 65 | "subentries": [] 66 | } 67 | ] 68 | } 69 | ] 70 | } 71 | ], 72 | "errors": "No known data errors" 73 | } 74 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_devicemapper_bydev.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_devicemapper_bydev", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_devicemapper_bydev", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/dm-0", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/dm-1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_devicemapper_byid.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_devicemapper_byid", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_devicemapper_byid", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/disk/by-id/dm-name-sdb-crypt", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/disk/by-id/dm-name-nvme0n1-crypt", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_mixed_bydev.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_mixed_bydev", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_mixed_bydev", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/sdg1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/sdh1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | }, 32 | { 33 | "name": "/dev/dm-0", 34 | "state": "ONLINE", 35 | "read": "0", 36 | "write": "0", 37 | "cksum": "0", 38 | "notes": null, 39 | "subentries": [] 40 | }, 41 | { 42 | "name": "/dev/nvme0n1p1", 43 | "state": "ONLINE", 44 | "read": "0", 45 | "write": "0", 46 | "cksum": "0", 47 | "notes": null, 48 | "subentries": [] 49 | }, 50 | { 51 | "name": "/dev/nvme0n2p1", 52 | "state": "ONLINE", 53 | "read": "0", 54 | "write": "0", 55 | "cksum": "0", 56 | "notes": null, 57 | "subentries": [] 58 | } 59 | ] 60 | } 61 | ], 62 | "errors": "No known data errors" 63 | } 64 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_mixed_byid.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_mixed_byid", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_mixed_byid", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | }, 32 | { 33 | "name": "/dev/disk/by-id/dm-name-sdb-crypt", 34 | "state": "ONLINE", 35 | "read": "0", 36 | "write": "0", 37 | "cksum": "0", 38 | "notes": null, 39 | "subentries": [] 40 | }, 41 | { 42 | "name": "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 43 | "state": "ONLINE", 44 | "read": "0", 45 | "write": "0", 46 | "cksum": "0", 47 | "notes": null, 48 | "subentries": [] 49 | }, 50 | { 51 | "name": "/dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1", 52 | "state": "ONLINE", 53 | "read": "0", 54 | "write": "0", 55 | "cksum": "0", 56 | "notes": null, 57 | "subentries": [] 58 | } 59 | ] 60 | } 61 | ], 62 | "errors": "No known data errors" 63 | } 64 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_mixed_refsmixed.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_mixed_refsmixed", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_mixed_refsmixed", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/sdh1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | }, 32 | { 33 | "name": "/dev/disk/by-id/dm-name-sdb-crypt", 34 | "state": "ONLINE", 35 | "read": "0", 36 | "write": "0", 37 | "cksum": "0", 38 | "notes": null, 39 | "subentries": [] 40 | }, 41 | { 42 | "name": "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 43 | "state": "ONLINE", 44 | "read": "0", 45 | "write": "0", 46 | "cksum": "0", 47 | "notes": null, 48 | "subentries": [] 49 | }, 50 | { 51 | "name": "/dev/nvme0n2p1", 52 | "state": "ONLINE", 53 | "read": "0", 54 | "write": "0", 55 | "cksum": "0", 56 | "notes": null, 57 | "subentries": [] 58 | } 59 | ] 60 | } 61 | ], 62 | "errors": "No known data errors" 63 | } 64 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_nvme_bydev.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_nvme_bydev", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_nvme_bydev", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/nvme0n1p1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/nvme0n2p1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_nvme_byid.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_nvme_byid", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_nvme_byid", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_sata_bydev.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_sata_bydev", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_sata_bydev", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/sdg1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/sdh1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/expectations/omvzfs.zpoolstatus/parsed_structure/cmd_output.zpool_status.simplepool_sata_byid.json: -------------------------------------------------------------------------------- 1 | { 2 | "pool": "simplepool_sata_byid", 3 | "state": "ONLINE", 4 | "scan": "scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018", 5 | "config": [ 6 | { 7 | "name": "simplepool_sata_byid", 8 | "state": "ONLINE", 9 | "read": "0", 10 | "write": "0", 11 | "cksum": "0", 12 | "notes": null, 13 | "subentries": [ 14 | { 15 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1", 16 | "state": "ONLINE", 17 | "read": "0", 18 | "write": "0", 19 | "cksum": "0", 20 | "notes": null, 21 | "subentries": [] 22 | }, 23 | { 24 | "name": "/dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1", 25 | "state": "ONLINE", 26 | "read": "0", 27 | "write": "0", 28 | "cksum": "0", 29 | "notes": null, 30 | "subentries": [] 31 | } 32 | ] 33 | } 34 | ], 35 | "errors": "No known data errors" 36 | } 37 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.complexpool_createdupfront.txt: -------------------------------------------------------------------------------- 1 | pool: complexpool_createdupfront 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | complexpool_createdupfront ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | raidz2-1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 ONLINE 0 0 0 18 | logs 19 | mirror-2 ONLINE 0 0 0 20 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1 ONLINE 0 0 0 21 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1 ONLINE 0 0 0 22 | cache 23 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1 ONLINE 0 0 0 24 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd5678-sdm-part1 ONLINE 0 0 0 25 | spares 26 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde1234-sdn-part1 AVAIL 27 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde2345-sdo-part1 AVAIL 28 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde3456-sdp-part1 AVAIL 29 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde4567-sdr-part1 AVAIL 30 | 31 | errors: No known data errors 32 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.complexpool_outoforder.txt: -------------------------------------------------------------------------------- 1 | pool: complexpool_outoforder 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | complexpool_outoforder ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | raidz2-2 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 ONLINE 0 0 0 18 | logs 19 | mirror-1 ONLINE 0 0 0 20 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1 ONLINE 0 0 0 21 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1 ONLINE 0 0 0 22 | cache 23 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1 ONLINE 0 0 0 24 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd5678-sdm-part1 ONLINE 0 0 0 25 | spares 26 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde1234-sdn-part1 AVAIL 27 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde2345-sdo-part1 AVAIL 28 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde3456-sdp-part1 AVAIL 29 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBbcde4567-sdr-part1 AVAIL 30 | 31 | errors: No known data errors 32 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.degradedpool_multidegradation.txt: -------------------------------------------------------------------------------- 1 | pool: degradedpool_multidegradation 2 | state: DEGRADED 3 | status: One or more devices could not be used because the label is missing or 4 | invalid. Sufficient replicas exist for the pool to continue 5 | functioning in a degraded state. 6 | action: Replace the device using 'zpool replace'. 7 | see: http://zfsonlinux.org/msg/ZFS-8000-4J 8 | scan: resilvered 4.50K in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 9 | config: 10 | 11 | NAME STATE READ WRITE CKSUM 12 | degradedpool_multidegradation DEGRADED 0 0 0 13 | mirror-0 DEGRADED 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 15 | 7289430804289271706 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 17 | logs 18 | mirror-1 DEGRADED 0 0 0 19 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 20 | 5643719822593634226 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 21 | spares 22 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 AVAIL 23 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 UNAVAIL 24 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 AVAIL 25 | 26 | errors: No known data errors 27 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.degradedpool_simplemirror.txt: -------------------------------------------------------------------------------- 1 | pool: degradedpool_simplemirror 2 | state: DEGRADED 3 | status: One or more devices could not be used because the label is missing or 4 | invalid. Sufficient replicas exist for the pool to continue 5 | functioning in a degraded state. 6 | action: Replace the device using 'zpool replace'. 7 | see: http://zfsonlinux.org/msg/ZFS-8000-4J 8 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 9 | config: 10 | 11 | NAME STATE READ WRITE CKSUM 12 | degradedpool_simplemirror DEGRADED 0 0 0 13 | mirror-0 DEGRADED 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 15 | 7289430804289271706 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 16 | 351480577971836490 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 17 | 18 | errors: No known data errors 19 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolerror_zfs_8000_9P.txt: -------------------------------------------------------------------------------- 1 | pool: poolerror_zfs_8000_9P 2 | state: ONLINE 3 | status: One or more devices has experienced an unrecoverable error. An 4 | attempt was made to correct the error. Applications are unaffected. 5 | action: Determine if the device needs to be replaced, and clear the errors 6 | using 'zpool clear' or replace the device with 'zpool replace'. 7 | see: http://zfsonlinux.org/msg/ZFS-8000-9P 8 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 9 | config: 10 | 11 | NAME STATE READ WRITE CKSUM 12 | poolerror_zfs_8000_9P ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 1.13M 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 5.2K 2 12K 15 | 16 | errors: No known data errors 17 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithcache_doublecache.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithcache_doublecache 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithcache_doublecache ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | cache 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | 15 | errors: No known data errors 16 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithcache_simplecache.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithcache_simplecache 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithcache_simplecache ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | cache 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithlogs_doublelog.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithlogs_doublelog 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithlogs_doublelog ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | logs 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | 15 | errors: No known data errors 16 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithlogs_doublemirrorlog.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithlogs_doublemirrorlog 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithlogs_doublemirrorlog ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | logs 12 | mirror-1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 15 | mirror-2 ONLINE 0 0 0 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 18 | 19 | errors: No known data errors 20 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithlogs_mirrorlog.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithlogs_mirrorlog 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithlogs_mirrorlog ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | logs 12 | mirror-1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 15 | 16 | errors: No known data errors 17 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithlogs_simplelog.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithlogs_simplelog 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithlogs_simplelog ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | logs 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithspares_multiplespares.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithspares_multiplespares 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithspares_multiplespares ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | spares 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 AVAIL 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 AVAIL 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 AVAIL 15 | 16 | errors: No known data errors 17 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.poolwithspares_singlespare.txt: -------------------------------------------------------------------------------- 1 | pool: poolwithspares_singlespare 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | poolwithspares_singlespare ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | spares 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 AVAIL 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_mirror_double.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_mirror_double 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_mirror_double ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | mirror-1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | 15 | errors: No known data errors 16 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_mirror_single.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_mirror_single 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_mirror_single ONLINE 0 0 0 8 | mirror-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | 13 | errors: No known data errors 14 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_mixed.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_mixed 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_mixed ONLINE 0 0 0 8 | raidz1-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | mirror-1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | raidz2-2 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 ONLINE 0 0 0 18 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 ONLINE 0 0 0 19 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1 ONLINE 0 0 0 20 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1 ONLINE 0 0 0 21 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd4567-sdl-part1 ONLINE 0 0 0 22 | 23 | errors: No known data errors 24 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz1_double.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz1_double 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz1_double ONLINE 0 0 0 8 | raidz1-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | raidz1-1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | 17 | errors: No known data errors 18 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz1_extended.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz1_extended 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz1_extended ONLINE 0 0 0 8 | raidz1-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz1_single.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz1_single 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz1_single ONLINE 0 0 0 8 | raidz1-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | 13 | errors: No known data errors 14 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz2_double.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz2_double 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz2_double ONLINE 0 0 0 8 | raidz2-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | raidz2-1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 ONLINE 0 0 0 18 | 19 | errors: No known data errors 20 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz2_extended.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz2_extended 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz2_extended ONLINE 0 0 0 8 | raidz2-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 14 | 15 | errors: No known data errors 16 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz2_single.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz2_single 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz2_single ONLINE 0 0 0 8 | raidz2-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz3_double.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz3_double 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz3_double ONLINE 0 0 0 8 | raidz3-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 14 | raidz3-1 ONLINE 0 0 0 15 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 16 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBaea157d4-sdh-part1 ONLINE 0 0 0 17 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd1234-sdi-part1 ONLINE 0 0 0 18 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd2345-sdj-part1 ONLINE 0 0 0 19 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBabcd3456-sdk-part1 ONLINE 0 0 0 20 | 21 | errors: No known data errors 22 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz3_extended.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz3_extended 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz3_extended ONLINE 0 0 0 8 | raidz3-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 14 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB86483a44-sdg-part1 ONLINE 0 0 0 15 | 16 | errors: No known data errors 17 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.redundantpool_raidz3_single.txt: -------------------------------------------------------------------------------- 1 | pool: redundantpool_raidz3_single 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | redundantpool_raidz3_single ONLINE 0 0 0 8 | raidz3-0 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdb-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBefaa040c-sdc-part1 ONLINE 0 0 0 11 | /dev/disk/by-id/ata-VBOX_HARDDISK_VBe26698ba-sdd-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB17d69a13-sde-part1 ONLINE 0 0 0 13 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB075dfa27-sdf-part1 ONLINE 0 0 0 14 | 15 | errors: No known data errors 16 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_devicemapper_bydev.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_devicemapper_bydev 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_devicemapper_bydev ONLINE 0 0 0 8 | /dev/dm-0 ONLINE 0 0 0 9 | /dev/dm-1 ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_devicemapper_byid.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_devicemapper_byid 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_devicemapper_byid ONLINE 0 0 0 8 | /dev/disk/by-id/dm-name-sdb-crypt ONLINE 0 0 0 9 | /dev/disk/by-id/dm-name-nvme0n1-crypt ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_mixed_bydev.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_mixed_bydev 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_mixed_bydev ONLINE 0 0 0 8 | /dev/sdg1 ONLINE 0 0 0 9 | /dev/sdh1 ONLINE 0 0 0 10 | /dev/dm-0 ONLINE 0 0 0 11 | /dev/nvme0n1p1 ONLINE 0 0 0 12 | /dev/nvme0n2p1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_mixed_byid.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_mixed_byid 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_mixed_byid ONLINE 0 0 0 8 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1 ONLINE 0 0 0 10 | /dev/disk/by-id/dm-name-sdb-crypt ONLINE 0 0 0 11 | /dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1 ONLINE 0 0 0 12 | /dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_mixed_refsmixed.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_mixed_refsmixed 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_mixed_refsmixed ONLINE 0 0 0 8 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1 ONLINE 0 0 0 9 | /dev/sdh1 ONLINE 0 0 0 10 | /dev/disk/by-id/dm-name-sdb-crypt ONLINE 0 0 0 11 | /dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1 ONLINE 0 0 0 12 | /dev/nvme0n2p1 ONLINE 0 0 0 13 | 14 | errors: No known data errors 15 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_nvme_bydev.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_nvme_bydev 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_nvme_bydev ONLINE 0 0 0 8 | /dev/nvme0n1p1 ONLINE 0 0 0 9 | /dev/nvme0n2p1 ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_nvme_byid.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_nvme_byid 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_nvme_byid ONLINE 0 0 0 8 | /dev/disk/by-id/nvme-eui.33a4d1b00c48b843a6adacfeffe59c2c-nvme0n1p1-part1 ONLINE 0 0 0 9 | /dev/disk/by-id/nvme-eui.185908b61679a14e8091246837f8ac6b-nvme0n2p1-part1 ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_sata_bydev.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_sata_bydev 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_sata_bydev ONLINE 0 0 0 8 | /dev/sdg1 ONLINE 0 0 0 9 | /dev/sdh1 ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/mocks/omvzfs.zpoolstatus/cmd_output.zpool_status.simplepool_sata_byid.txt: -------------------------------------------------------------------------------- 1 | pool: simplepool_sata_byid 2 | state: ONLINE 3 | scan: scrub repaired 0B in 0h0m with 0 errors on Sun Oct 14 00:00:30 2018 4 | config: 5 | 6 | NAME STATE READ WRITE CKSUM 7 | simplepool_sata_byid ONLINE 0 0 0 8 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdg-part1 ONLINE 0 0 0 9 | /dev/disk/by-id/ata-VBOX_HARDDISK_VB84ca63f0-sdh-part1 ONLINE 0 0 0 10 | 11 | errors: No known data errors 12 | -------------------------------------------------------------------------------- /tests/php/omvzfs/omvzfs.zpoolstatus.parser.Test.php: -------------------------------------------------------------------------------- 1 | assertEquals($expectedStructure, $result); 17 | } 18 | 19 | public function parseStatusDataProvider() { 20 | $mocks = [ 21 | "cmd_output.zpool_status.simplepool_sata_bydev", 22 | "cmd_output.zpool_status.simplepool_sata_byid", 23 | "cmd_output.zpool_status.simplepool_nvme_bydev", 24 | "cmd_output.zpool_status.simplepool_nvme_byid", 25 | "cmd_output.zpool_status.simplepool_devicemapper_bydev", 26 | "cmd_output.zpool_status.simplepool_devicemapper_byid", 27 | "cmd_output.zpool_status.simplepool_mixed_bydev", 28 | "cmd_output.zpool_status.simplepool_mixed_byid", 29 | "cmd_output.zpool_status.simplepool_mixed_refsmixed", 30 | "cmd_output.zpool_status.redundantpool_mirror_single", 31 | "cmd_output.zpool_status.redundantpool_mirror_double", 32 | "cmd_output.zpool_status.redundantpool_raidz1_single", 33 | "cmd_output.zpool_status.redundantpool_raidz1_extended", 34 | "cmd_output.zpool_status.redundantpool_raidz1_double", 35 | "cmd_output.zpool_status.redundantpool_raidz2_single", 36 | "cmd_output.zpool_status.redundantpool_raidz2_extended", 37 | "cmd_output.zpool_status.redundantpool_raidz2_double", 38 | "cmd_output.zpool_status.redundantpool_raidz3_single", 39 | "cmd_output.zpool_status.redundantpool_raidz3_extended", 40 | "cmd_output.zpool_status.redundantpool_raidz3_double", 41 | "cmd_output.zpool_status.redundantpool_mixed", 42 | "cmd_output.zpool_status.poolwithcache_simplecache", 43 | "cmd_output.zpool_status.poolwithcache_doublecache", 44 | "cmd_output.zpool_status.poolwithlogs_simplelog", 45 | "cmd_output.zpool_status.poolwithlogs_doublelog", 46 | "cmd_output.zpool_status.poolwithlogs_mirrorlog", 47 | "cmd_output.zpool_status.poolwithlogs_doublemirrorlog", 48 | "cmd_output.zpool_status.poolwithspares_singlespare", 49 | "cmd_output.zpool_status.poolwithspares_multiplespares", 50 | "cmd_output.zpool_status.complexpool_createdupfront", 51 | "cmd_output.zpool_status.complexpool_outoforder", 52 | "cmd_output.zpool_status.degradedpool_simplemirror", 53 | "cmd_output.zpool_status.degradedpool_multidegradation", 54 | "cmd_output.zpool_status.poolerror_zfs_8000_9P", 55 | ]; 56 | 57 | $datasets = []; 58 | 59 | foreach ($mocks as $mockName) { 60 | $datasets[$mockName] = [ 61 | // mock file content 62 | OMVZFSTestUtils::loadCmdOutputFile( 63 | "/mocks/omvzfs.zpoolstatus/" . $mockName . ".txt" 64 | ), 65 | // mock expected structure 66 | OMVZFSTestUtils::loadJSONFile( 67 | "/expectations/omvzfs.zpoolstatus/parsed_structure/" . $mockName . ".json" 68 | ) 69 | ]; 70 | } 71 | 72 | return $datasets; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /tests/php/omvzfs/utils.php: -------------------------------------------------------------------------------- 1 | 9 | * @abstract 10 | */ 11 | class OMVModuleZFSException extends Exception { 12 | 13 | /** 14 | * XXX 15 | * 16 | * @param Disk $disk XXX 17 | * @return void XXX 18 | * @access public 19 | */ 20 | public function __construct($message = "", $code = 0, Exception $previous = NULL) { 21 | parent::__construct($message, $code, $previous); 22 | } 23 | 24 | } 25 | 26 | ?> 27 | -------------------------------------------------------------------------------- /usr/share/omvzfs/Filesystem.php: -------------------------------------------------------------------------------- 1 | name = $name; 29 | $cmd = "zfs list -p -H -t filesystem \"" . $name . "\" 2>&1"; 30 | try { 31 | OMVModuleZFSUtil::exec($cmd, $out, $res); 32 | } 33 | catch (\OMV\ExecException $e) { 34 | 35 | } 36 | } 37 | 38 | public function exists(){ 39 | try { 40 | $cmd = "zfs list -p -H -t filesystem \"" . $this->name . "\" 2>&1"; 41 | OMVModuleZFSUtil::exec($cmd, $out, $res); 42 | return TRUE; 43 | } 44 | catch (\OMV\ExecException $e) { 45 | return FALSE; 46 | } 47 | } 48 | 49 | public static function getAllFilesystems(){ 50 | $cmd = "zfs list -p -H -o name,mountpoint -t filesystem | awk '$2 != \"/\" && $2 != \"/boot\" { print $0 }'"; 51 | OMVModuleZFSUtil::exec($cmd, $out, $res); 52 | $filesystems=[]; 53 | foreach($out as $line) { 54 | $tmpary = preg_split('/\t+/', $line); 55 | $filesystems[]=new OMVModuleZFSFilesystem($tmpary[0]); 56 | } 57 | return $filesystems; 58 | } 59 | 60 | 61 | /** 62 | * Craete a Dataset on commandline. 63 | * 64 | * @return OMVModuleZFSFilesystem 65 | * @access public 66 | */ 67 | public static function create($name) { 68 | $cmd = "zfs create -p \"" . $name . "\" 2>&1"; 69 | OMVModuleZFSUtil::exec($cmd,$out,$res); 70 | return new OMVModuleZFSFilesystem($name); 71 | } 72 | 73 | /** 74 | * 75 | * @return int 76 | * @access public 77 | */ 78 | public function getUsed() { 79 | return OMVModuleZFSUtil::SizeTobytes($this->properties["used"]["value"]); 80 | } 81 | 82 | /** 83 | * 84 | * @return int 85 | * @access public 86 | */ 87 | public function getAvailable() { 88 | return OMVModuleZFSUtil::SizeTobytes($this->properties["available"]["value"]); 89 | } 90 | 91 | /** 92 | * XXX 93 | * 94 | * @return int 95 | * @access public 96 | */ 97 | public function getSize() { 98 | $used = $this->getUsed(); 99 | $avail = $this->getAvailable(); 100 | return $avail + $used; 101 | } 102 | 103 | /** 104 | * Get the mountpoint of the Dataset 105 | * 106 | * @return string $mountPoint 107 | * @access public 108 | */ 109 | public function getMountPoint() { 110 | return $this->properties["mountpoint"]["value"]; 111 | } 112 | 113 | 114 | public function getChildren(){ 115 | $name = $this->name; 116 | $cmd="zfs list -p -H -r -t filesystem $name 2>&1"; 117 | OMVModuleZFSUtil::exec($cmd,$out,$res); 118 | $children=[]; 119 | foreach ($out as $line) { 120 | $tmpary = preg_split('/\t+/', $line); 121 | $children[]=new OMVModuleZFSFilesystem($tmpary[0]); 122 | } 123 | return $children; 124 | } 125 | /** 126 | * Upgrades the Dataset to latest filesystem version 127 | * 128 | * @return void 129 | * @access public 130 | */ 131 | public function upgrade() { 132 | $cmd = "zfs upgrade \"" . $this->name . "\" 2>&1"; 133 | OMVModuleZFSUtil::exec($cmd,$out,$res); 134 | } 135 | 136 | /** 137 | * Mount the Dataset 138 | * 139 | * @return void 140 | * @access public 141 | */ 142 | public function mount() { 143 | $cmd = "zfs mount \"" . $this->name . "\" 2>&1"; 144 | OMVModuleZFSUtil::exec($cmd,$out,$res); 145 | $this->updateProperty("mounted"); 146 | } 147 | 148 | /** 149 | * Unmount the Dataset 150 | * 151 | * @return void 152 | * @access public 153 | */ 154 | public function unmount() { 155 | $cmd = "zfs unmount \"" . $this->name . "\" 2>&1"; 156 | OMVModuleZFSUtil::exec($cmd,$out,$res); 157 | $this->updateProperty("mounted"); 158 | } 159 | 160 | } 161 | 162 | ?> 163 | -------------------------------------------------------------------------------- /usr/share/omvzfs/Snapshot.php: -------------------------------------------------------------------------------- 1 | name = $name; 31 | } 32 | 33 | /** 34 | * Create a Snapshot on commandline. 35 | * 36 | * @return void 37 | * @access private 38 | */ 39 | public static function create($name) { 40 | $cmd = "zfs snapshot \"" . $name . "\" 2>&1"; 41 | OMVModuleZFSUtil::exec($cmd,$out,$res); 42 | return new OMVModuleZFSSnapshot($name); 43 | } 44 | 45 | public static function getAllSnapshots() { 46 | $cmd = "zfs snapshot \"" . $name . "\" 2>&1"; 47 | OMVModuleZFSUtil::exec($cmd,$out,$res); 48 | return new OMVModuleZFSSnapshot($name); 49 | } 50 | 51 | /** 52 | * Rollback a Snapshot on commandline. 53 | * 54 | * @return void 55 | * @access public 56 | */ 57 | public function rollback() { 58 | $cmd = "zfs rollback \"" . $this->name . "\" 2>&1"; 59 | OMVModuleZFSUtil::exec($cmd,$out,$res); 60 | } 61 | 62 | /** 63 | * Clones a Snapshot on commandline. 64 | * 65 | * @param string $newname 66 | * @return void 67 | * @access public 68 | */ 69 | public function clonesnap($newname) { 70 | $cmd = "zfs clone -p \"" . $this->name . "\" \"" . $newname . "\" 2>&1"; 71 | OMVModuleZFSUtil::exec($cmd,$out,$res); 72 | } 73 | 74 | } 75 | 76 | ?> 77 | -------------------------------------------------------------------------------- /usr/share/omvzfs/VdevState.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | abstract class OMVModuleZFSVdevState { 17 | // Unknown state 18 | const STATE_UNKNOWN = 0x1; 19 | 20 | // Vdev is either closed or offline 21 | const STATE_OFFLINE = 0x2; 22 | 23 | // Vdev has been removed 24 | const STATE_REMOVED = 0x4; 25 | 26 | // Vdev is either in: 27 | // * "cannot open" state + "data corrupted" aux state 28 | // * "cannot open" state + "bad log" aux state 29 | // * "device is faulted" 30 | const STATE_FAULTED = 0x8; 31 | 32 | // Vdev cannot be opened because it was split into another pool 33 | const STATE_SPLIT = 0x10; 34 | 35 | // Vdev cannot be opened for another reason 36 | // Usually, "used" devices' names (data vdevs, caches, logs) will have 37 | // their name changed to GUID and will have a "was /previous/path" note. 38 | // However, "spares" that disappeared won't be changed 39 | // (they will still be identified by their "/previous/path"). 40 | const STATE_UNAVAIL = 0x20; 41 | 42 | // Vdev contains unhealthy descendants 43 | const STATE_DEGRADED = 0x40; 44 | 45 | // Vdev is healthy 46 | const STATE_ONLINE = 0x80; 47 | 48 | // Spare vdev is healthy 49 | const STATE_SPARE_AVAIL = 0x100; 50 | 51 | // Spare is already in use by another pool 52 | const STATE_SPARE_INUSE = 0x200; 53 | 54 | /** 55 | * Parses the raw STATE's column string and turns it into one of the constants. 56 | * 57 | * @param string $state 58 | * The raw value of "STATE" column 59 | * @return OMVModuleZFSVdevState::STATE_* 60 | * @throws OMVModuleZFSException 61 | */ 62 | public static function parseState(string $state) { 63 | switch ($state) { 64 | case "OFFLINE": 65 | return OMVModuleZFSVdevState::STATE_OFFLINE; 66 | case "REMOVED": 67 | return OMVModuleZFSVdevState::STATE_REMOVED; 68 | case "FAULTED": 69 | return OMVModuleZFSVdevState::STATE_FAULTED; 70 | case "SPLIT": 71 | return OMVModuleZFSVdevState::STATE_SPLIT; 72 | case "UNAVAIL": 73 | return OMVModuleZFSVdevState::STATE_UNAVAIL; 74 | case "DEGRADED": 75 | return OMVModuleZFSVdevState::STATE_DEGRADED; 76 | case "ONLINE": 77 | return OMVModuleZFSVdevState::STATE_ONLINE; 78 | case "AVAIL": 79 | return OMVModuleZFSVdevState::STATE_SPARE_AVAIL; 80 | case "INUSE": 81 | return OMVModuleZFSVdevState::STATE_SPARE_INUSE; 82 | case "UNKNOWN": 83 | return OMVModuleZFSVdevState::STATE_UNKNOWN; 84 | default: 85 | break; 86 | } 87 | 88 | throw new OMVModuleZFSException("Unrecognized vdev state string"); 89 | } 90 | } 91 | 92 | ?> 93 | -------------------------------------------------------------------------------- /usr/share/omvzfs/VdevType.php: -------------------------------------------------------------------------------- 1 | 9 | * @abstract 10 | */ 11 | abstract class OMVModuleZFSVdevType { 12 | 13 | /** 14 | * @var OMVMODULEZFSPLAIN 15 | * @access public 16 | */ 17 | const OMVMODULEZFSPLAIN = 0; 18 | 19 | /** 20 | * @var OMVMODULEZFSMIRROR 21 | * @access public 22 | */ 23 | const OMVMODULEZFSMIRROR = 1; 24 | 25 | /** 26 | * @var OMVMODULEZFSRAIDZ1 27 | * @access public 28 | */ 29 | const OMVMODULEZFSRAIDZ1 = 2; 30 | 31 | /** 32 | * @var OMVMODULEZFSRAIDZ2 33 | * @access public 34 | */ 35 | const OMVMODULEZFSRAIDZ2 = 3; 36 | 37 | /** 38 | * @var OMVMODULEZFSRAIDZ3 39 | * @access public 40 | */ 41 | const OMVMODULEZFSRAIDZ3 = 4; 42 | 43 | } 44 | 45 | ?> 46 | -------------------------------------------------------------------------------- /usr/share/omvzfs/Zvol.php: -------------------------------------------------------------------------------- 1 | name = $name; 33 | $cmd = "zfs list -p -H -t volume \"" . $name . "\" 2>&1"; 34 | try { 35 | OMVModuleZFSUtil::exec($cmd, $out, $res); 36 | } 37 | catch (\OMV\ExecException $e) { 38 | $zvol_exists = false; 39 | } 40 | } 41 | 42 | /** 43 | * Get the total size of the Zvol 44 | * 45 | * @return string $size 46 | * @access public 47 | */ 48 | public function getSize() { 49 | return OMVModuleZFSUtil::SizeTobytes($this->properties["volsize"]["value"]); 50 | } 51 | 52 | /** 53 | * Get the available size of the Zvol 54 | * 55 | * @return string $size 56 | * @access public 57 | */ 58 | public function getAvailable() { 59 | $size=$this->getSize(); 60 | $used=$this->getUsed(); 61 | return $size - $used; 62 | } 63 | 64 | /** 65 | * Get the used size of the Zvol 66 | * 67 | * @return string $size 68 | * @access public 69 | */ 70 | public function getUsed() { 71 | return OMVModuleZFSUtil::SizeTobytes($this->properties["logicalused"]["value"]); 72 | } 73 | 74 | /** 75 | * Returns TRUE or FALSE depending on if the volume is thin provisioned or not. 76 | * 77 | */ 78 | public function isThinVol() { 79 | $property = $this->getProperty("refreservation"); 80 | if (strcmp($property['value'], "none") === 0) 81 | return TRUE; 82 | return FALSE; 83 | } 84 | 85 | /** 86 | * Create a Zvol on commandline. Optionally provide a number of properties to set. 87 | * 88 | * @param string $size Size of the Zvol that should be created 89 | * @param array $properties Properties to set when creatiing the dataset. 90 | * @param boolean $sparse Defines if a sparse volume should be created. 91 | * @return void 92 | * @access public 93 | */ 94 | 95 | public static function create($name, $size, array $properties = null, $sparse = null) { 96 | $cmd = "zfs create -p "; 97 | if ((isset($sparse)) && ($sparse == true)) { 98 | $cmd .= "-s "; 99 | } 100 | $cmd .= "-V " . $size . " \"" . $name . "\" 2>&1"; 101 | OMVModuleZFSUtil::exec($cmd,$out,$res); 102 | return new self($name); 103 | } 104 | 105 | } 106 | 107 | ?> 108 | -------------------------------------------------------------------------------- /usr/share/openmediavault/datamodels/conf.service.zfs.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "config", 3 | "title": "zfs", 4 | "id": "conf.service.zfs", 5 | "queryinfo": { 6 | "xpath": "/config/services/zfs", 7 | "iterable": false 8 | }, 9 | "properties": { 10 | "autoShareNestedEnabled": { 11 | "type": "boolean" 12 | }, 13 | "autoShareNestedProperty": { 14 | "type": "string" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /usr/share/openmediavault/engined/inc/50zfsbackend.inc: -------------------------------------------------------------------------------- 1 | registerBackend(new \OMV\System\Storage\Backend\Zvol()); 4 | $mngr = \OMV\System\Filesystem\Backend\Manager::getInstance(); 5 | $mngr->registerBackend(new \OMV\System\Filesystem\Backend\Zfs()); 6 | -------------------------------------------------------------------------------- /usr/share/openmediavault/engined/module/zfs.inc: -------------------------------------------------------------------------------- 1 | 5 | * @author OpenMediaVault Plugin Developers 6 | * @copyright Copyright (c) 2009-2015 Volker Theile 7 | * @copyright Copyright (c) 2015-2025 openmediavault plugin developers 8 | * 9 | * This program is free software: you can redistribute it and/or modify 10 | * it under the terms of the GNU General Public License as published by 11 | * the Free Software Foundation, either version 3 of the License, or 12 | * any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program. If not, see . 21 | */ 22 | class OMVModuleZFS extends \OMV\Engine\Module\ServiceAbstract 23 | implements \OMV\Engine\Notify\IListener { 24 | /** 25 | * Get the module name. 26 | */ 27 | public function getName() 28 | { 29 | return "zfs"; 30 | } 31 | 32 | /** 33 | * Helper function to find out whether the given shared folder 34 | * configuration object is used. If it is used, then mark the 35 | * module as dirty. 36 | * @param type The event message type. 37 | * @param path The event message path. 38 | * @param object The configuration object. 39 | */ 40 | final public function onSharedFolder($type, $path, $object) 41 | { 42 | $db = \OMV\Config\Database::getInstance(); 43 | $share = $db->getAssoc("conf.system.sharedfolder",$object['sharedfolderref']); 44 | $mntent = $db->getAssoc("conf.system.filesystem.mountpoint",$share['mntentref']); 45 | $bindmntent = $db->getAssoc("conf.system.filesystem.mountpoint",$object['mntentref']); 46 | 47 | if (!strcmp($mntent['type'],'zfs')) { 48 | if ((strpos($object['extraoptions'],'nohide') === false) and 49 | (strpos($object['extraoptions'],'crossmnt') === false)) { 50 | $object['extraoptions'] = $object['extraoptions'] . ",crossmnt"; 51 | $newshare = new \OMV\Config\ConfigObject("conf.service.nfs.share"); 52 | $newshare->setAssoc($object); 53 | $db->set($newshare,TRUE); 54 | } 55 | if (strpos($bindmntent['opts'], '_netdev') === false) { 56 | $bindmntent['opts'] = $bindmntent['opts'] . ",_netdev"; 57 | $newbindmntent = new \OMV\Config\ConfigObject("conf.system.filesystem.mountpoint"); 58 | $newbindmntent->setAssoc($bindmntent); 59 | $db->set($newbindmntent); 60 | $moduleMngr = \OMV\Engine\Module\Manager::getInstance(); 61 | $fstab = $moduleMngr->getModule("fstab"); 62 | $fstab->setDirty(); 63 | } 64 | } 65 | } 66 | 67 | /** 68 | * Bind listeners. 69 | */ 70 | function bindListeners(\OMV\Engine\Notify\Dispatcher $dispatcher) 71 | { 72 | $dispatcher->addListener( 73 | OMV_NOTIFY_CREATE | OMV_NOTIFY_MODIFY, 74 | "org.openmediavault.conf.service.nfs.share", 75 | [ $this, "onSharedFolder" ]); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /usr/share/openmediavault/engined/module/zfszed.inc: -------------------------------------------------------------------------------- 1 | 5 | * @author OpenMediaVault Plugin Developers 6 | * @copyright Copyright (c) 2009-2015 Volker Theile 7 | * @copyright Copyright (c) 2015-2025 openmediavault plugin developers 8 | * 9 | * This program is free software: you can redistribute it and/or modify 10 | * it under the terms of the GNU General Public License as published by 11 | * the Free Software Foundation, either version 3 of the License, or 12 | * any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program. If not, see . 21 | */ 22 | namespace Engined\Module; 23 | 24 | class ZfsZed extends \OMV\Engine\Module\ServiceAbstract 25 | implements \OMV\Engine\Notify\IListener, \OMV\Engine\Module\INotification { 26 | 27 | public function getName() { 28 | return "zfszed"; 29 | } 30 | 31 | public function deployAfter(): array { 32 | return ["email"]; 33 | } 34 | 35 | public function getNotificationConfig() { 36 | return [ 37 | [ 38 | "id" => "zfs", 39 | "type" => getText("Storage"), 40 | "title" => gettext("ZFS ZED") 41 | ] 42 | ]; 43 | } 44 | 45 | function bindListeners(\OMV\Engine\Notify\Dispatcher $dispatcher) { 46 | $dispatcher->addListener( 47 | OMV_NOTIFY_MODIFY, 48 | "org.openmediavault.conf.system.notification.email", 49 | [ $this, "setDirty" ]); 50 | $dispatcher->addListener( 51 | OMV_NOTIFY_MODIFY, 52 | "org.openmediavault.conf.system.notification.notification", 53 | [ $this, "setDirty" ]); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /usr/share/openmediavault/locale/ach/openmediavault-zfs.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the openmediavault-zfs package. 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: openmediavault-zfs\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-07-07 07:55-0500\n" 11 | "PO-Revision-Date: 2014-10-16 11:20+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Acoli (http://app.transifex.com/openmediavault-plugin-developers/openmediavault-zfs/language/ach/)\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Language: ach\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | 20 | msgid "Add" 21 | msgstr "" 22 | 23 | msgid "Add filesystem|snap|volume" 24 | msgstr "" 25 | 26 | msgid "Add pool" 27 | msgstr "" 28 | 29 | msgid "Are you sure you want to delete to this snapshot?" 30 | msgstr "" 31 | 32 | msgid "Are you sure you want to delete?" 33 | msgstr "" 34 | 35 | msgid "Are you sure you want to export?" 36 | msgstr "" 37 | 38 | msgid "Are you sure you want to rollback to this snapshot?" 39 | msgstr "" 40 | 41 | msgid "Ashift value" 42 | msgstr "" 43 | 44 | msgid "Available" 45 | msgstr "" 46 | 47 | msgid "Basic" 48 | msgstr "" 49 | 50 | msgid "By ID" 51 | msgstr "" 52 | 53 | msgid "By Path" 54 | msgstr "" 55 | 56 | msgid "Clone" 57 | msgstr "" 58 | 59 | msgid "Compression" 60 | msgstr "" 61 | 62 | msgid "Compression type" 63 | msgstr "" 64 | 65 | msgid "Create" 66 | msgstr "" 67 | 68 | msgid "Created pool." 69 | msgstr "" 70 | 71 | msgid "Delete" 72 | msgstr "" 73 | 74 | msgid "Deleting object ..." 75 | msgstr "" 76 | 77 | msgid "Deleting snapshot ..." 78 | msgstr "" 79 | 80 | msgid "Details" 81 | msgstr "" 82 | 83 | msgid "Device alias" 84 | msgstr "" 85 | 86 | msgid "Devices" 87 | msgstr "" 88 | 89 | msgid "Discover" 90 | msgstr "" 91 | 92 | msgid "Discover complete." 93 | msgstr "" 94 | 95 | msgid "Discovering new pools ..." 96 | msgstr "" 97 | 98 | msgid "Edit property" 99 | msgstr "" 100 | 101 | msgid "Expand" 102 | msgstr "" 103 | 104 | msgid "Expand pool" 105 | msgstr "" 106 | 107 | msgid "Expanded pool." 108 | msgstr "" 109 | 110 | msgid "Filesystem" 111 | msgstr "" 112 | 113 | msgid "Force" 114 | msgstr "" 115 | 116 | msgid "Force creation" 117 | msgstr "" 118 | 119 | msgid "Forces import, even if the pool appears to be potentially active." 120 | msgstr "" 121 | 122 | msgid "" 123 | "Forces the creation of the Vded even if errors are reported. Use with " 124 | "extreme caution!" 125 | msgstr "" 126 | 127 | msgid "" 128 | "Forces the creation of the pool even if errors are reported. Use with " 129 | "extreme caution!" 130 | msgstr "" 131 | 132 | msgid "Hits" 133 | msgstr "" 134 | 135 | msgid "Import all" 136 | msgstr "" 137 | 138 | msgid "Import all missing pools." 139 | msgstr "" 140 | 141 | msgid "Mirror" 142 | msgstr "" 143 | 144 | msgid "Misses" 145 | msgstr "" 146 | 147 | msgid "Modified" 148 | msgstr "" 149 | 150 | msgid "Mountpoint" 151 | msgstr "" 152 | 153 | msgid "Name" 154 | msgstr "" 155 | 156 | msgid "New Property" 157 | msgstr "" 158 | 159 | msgid "New property" 160 | msgstr "" 161 | 162 | msgid "None" 163 | msgstr "" 164 | 165 | msgid "Object deleted." 166 | msgstr "" 167 | 168 | msgid "Optional mountpoint for the pool. Default is to use the pool name." 169 | msgstr "" 170 | 171 | msgid "Optional mountpoint. Default is to use the name." 172 | msgstr "" 173 | 174 | msgid "Parent" 175 | msgstr "" 176 | 177 | msgid "Path" 178 | msgstr "" 179 | 180 | msgid "Pool" 181 | msgstr "" 182 | 183 | msgid "Pool name" 184 | msgstr "" 185 | 186 | msgid "Pool type" 187 | msgstr "" 188 | 189 | msgid "Pools" 190 | msgstr "" 191 | 192 | msgid "Prefix" 193 | msgstr "" 194 | 195 | msgid "Properties" 196 | msgstr "" 197 | 198 | msgid "Properties saved." 199 | msgstr "" 200 | 201 | msgid "Property" 202 | msgstr "" 203 | 204 | msgid "RAID-Z1" 205 | msgstr "" 206 | 207 | msgid "RAID-Z2" 208 | msgstr "" 209 | 210 | msgid "RAID-Z3" 211 | msgstr "" 212 | 213 | msgid "Refer" 214 | msgstr "" 215 | 216 | msgid "Rollback" 217 | msgstr "" 218 | 219 | msgid "Scrub" 220 | msgstr "" 221 | 222 | msgid "Set ashift" 223 | msgstr "" 224 | 225 | msgid "Size" 226 | msgstr "" 227 | 228 | msgid "Snap clone name" 229 | msgstr "" 230 | 231 | msgid "Snapshot" 232 | msgstr "" 233 | 234 | msgid "Snapshot deleted." 235 | msgstr "" 236 | 237 | msgid "Snapshots" 238 | msgstr "" 239 | 240 | msgid "Source" 241 | msgstr "" 242 | 243 | msgid "Source name" 244 | msgstr "" 245 | 246 | msgid "Source path" 247 | msgstr "" 248 | 249 | msgid "Source pool" 250 | msgstr "" 251 | 252 | msgid "" 253 | "Specifies which device alias should be used. Don't change unless needed." 254 | msgstr "" 255 | 256 | msgid "Specify ashift value. Only use if you are sure you need it." 257 | msgstr "" 258 | 259 | msgid "State" 260 | msgstr "" 261 | 262 | msgid "Status" 263 | msgstr "" 264 | 265 | msgid "Thin provisioning" 266 | msgstr "" 267 | 268 | msgid "Tools" 269 | msgstr "" 270 | 271 | msgid "Type" 272 | msgstr "" 273 | 274 | msgid "Used" 275 | msgstr "" 276 | 277 | msgid "Value" 278 | msgstr "" 279 | 280 | msgid "Vdev type" 281 | msgstr "" 282 | 283 | msgid "Volume" 284 | msgstr "" 285 | 286 | msgid "ZFS Hits/Misses" 287 | msgstr "" 288 | 289 | msgid "ZFS ZED" 290 | msgstr "" 291 | 292 | msgid "Zvol %s [%s, %s]" 293 | msgstr "" 294 | 295 | msgid "zfs" 296 | msgstr "" 297 | 298 | msgid "zpool export" 299 | msgstr "" 300 | 301 | msgid "zpool import" 302 | msgstr "" 303 | -------------------------------------------------------------------------------- /usr/share/openmediavault/locale/ady/openmediavault-zfs.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the openmediavault-zfs package. 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: openmediavault-zfs\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-07-07 07:55-0500\n" 11 | "PO-Revision-Date: 2014-10-16 11:20+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Adyghe (http://app.transifex.com/openmediavault-plugin-developers/openmediavault-zfs/language/ady/)\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Language: ady\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | msgid "Add" 21 | msgstr "" 22 | 23 | msgid "Add filesystem|snap|volume" 24 | msgstr "" 25 | 26 | msgid "Add pool" 27 | msgstr "" 28 | 29 | msgid "Are you sure you want to delete to this snapshot?" 30 | msgstr "" 31 | 32 | msgid "Are you sure you want to delete?" 33 | msgstr "" 34 | 35 | msgid "Are you sure you want to export?" 36 | msgstr "" 37 | 38 | msgid "Are you sure you want to rollback to this snapshot?" 39 | msgstr "" 40 | 41 | msgid "Ashift value" 42 | msgstr "" 43 | 44 | msgid "Available" 45 | msgstr "" 46 | 47 | msgid "Basic" 48 | msgstr "" 49 | 50 | msgid "By ID" 51 | msgstr "" 52 | 53 | msgid "By Path" 54 | msgstr "" 55 | 56 | msgid "Clone" 57 | msgstr "" 58 | 59 | msgid "Compression" 60 | msgstr "" 61 | 62 | msgid "Compression type" 63 | msgstr "" 64 | 65 | msgid "Create" 66 | msgstr "" 67 | 68 | msgid "Created pool." 69 | msgstr "" 70 | 71 | msgid "Delete" 72 | msgstr "" 73 | 74 | msgid "Deleting object ..." 75 | msgstr "" 76 | 77 | msgid "Deleting snapshot ..." 78 | msgstr "" 79 | 80 | msgid "Details" 81 | msgstr "" 82 | 83 | msgid "Device alias" 84 | msgstr "" 85 | 86 | msgid "Devices" 87 | msgstr "" 88 | 89 | msgid "Discover" 90 | msgstr "" 91 | 92 | msgid "Discover complete." 93 | msgstr "" 94 | 95 | msgid "Discovering new pools ..." 96 | msgstr "" 97 | 98 | msgid "Edit property" 99 | msgstr "" 100 | 101 | msgid "Expand" 102 | msgstr "" 103 | 104 | msgid "Expand pool" 105 | msgstr "" 106 | 107 | msgid "Expanded pool." 108 | msgstr "" 109 | 110 | msgid "Filesystem" 111 | msgstr "" 112 | 113 | msgid "Force" 114 | msgstr "" 115 | 116 | msgid "Force creation" 117 | msgstr "" 118 | 119 | msgid "Forces import, even if the pool appears to be potentially active." 120 | msgstr "" 121 | 122 | msgid "" 123 | "Forces the creation of the Vded even if errors are reported. Use with " 124 | "extreme caution!" 125 | msgstr "" 126 | 127 | msgid "" 128 | "Forces the creation of the pool even if errors are reported. Use with " 129 | "extreme caution!" 130 | msgstr "" 131 | 132 | msgid "Hits" 133 | msgstr "" 134 | 135 | msgid "Import all" 136 | msgstr "" 137 | 138 | msgid "Import all missing pools." 139 | msgstr "" 140 | 141 | msgid "Mirror" 142 | msgstr "" 143 | 144 | msgid "Misses" 145 | msgstr "" 146 | 147 | msgid "Modified" 148 | msgstr "" 149 | 150 | msgid "Mountpoint" 151 | msgstr "" 152 | 153 | msgid "Name" 154 | msgstr "" 155 | 156 | msgid "New Property" 157 | msgstr "" 158 | 159 | msgid "New property" 160 | msgstr "" 161 | 162 | msgid "None" 163 | msgstr "" 164 | 165 | msgid "Object deleted." 166 | msgstr "" 167 | 168 | msgid "Optional mountpoint for the pool. Default is to use the pool name." 169 | msgstr "" 170 | 171 | msgid "Optional mountpoint. Default is to use the name." 172 | msgstr "" 173 | 174 | msgid "Parent" 175 | msgstr "" 176 | 177 | msgid "Path" 178 | msgstr "" 179 | 180 | msgid "Pool" 181 | msgstr "" 182 | 183 | msgid "Pool name" 184 | msgstr "" 185 | 186 | msgid "Pool type" 187 | msgstr "" 188 | 189 | msgid "Pools" 190 | msgstr "" 191 | 192 | msgid "Prefix" 193 | msgstr "" 194 | 195 | msgid "Properties" 196 | msgstr "" 197 | 198 | msgid "Properties saved." 199 | msgstr "" 200 | 201 | msgid "Property" 202 | msgstr "" 203 | 204 | msgid "RAID-Z1" 205 | msgstr "" 206 | 207 | msgid "RAID-Z2" 208 | msgstr "" 209 | 210 | msgid "RAID-Z3" 211 | msgstr "" 212 | 213 | msgid "Refer" 214 | msgstr "" 215 | 216 | msgid "Rollback" 217 | msgstr "" 218 | 219 | msgid "Scrub" 220 | msgstr "" 221 | 222 | msgid "Set ashift" 223 | msgstr "" 224 | 225 | msgid "Size" 226 | msgstr "" 227 | 228 | msgid "Snap clone name" 229 | msgstr "" 230 | 231 | msgid "Snapshot" 232 | msgstr "" 233 | 234 | msgid "Snapshot deleted." 235 | msgstr "" 236 | 237 | msgid "Snapshots" 238 | msgstr "" 239 | 240 | msgid "Source" 241 | msgstr "" 242 | 243 | msgid "Source name" 244 | msgstr "" 245 | 246 | msgid "Source path" 247 | msgstr "" 248 | 249 | msgid "Source pool" 250 | msgstr "" 251 | 252 | msgid "" 253 | "Specifies which device alias should be used. Don't change unless needed." 254 | msgstr "" 255 | 256 | msgid "Specify ashift value. Only use if you are sure you need it." 257 | msgstr "" 258 | 259 | msgid "State" 260 | msgstr "" 261 | 262 | msgid "Status" 263 | msgstr "" 264 | 265 | msgid "Thin provisioning" 266 | msgstr "" 267 | 268 | msgid "Tools" 269 | msgstr "" 270 | 271 | msgid "Type" 272 | msgstr "" 273 | 274 | msgid "Used" 275 | msgstr "" 276 | 277 | msgid "Value" 278 | msgstr "" 279 | 280 | msgid "Vdev type" 281 | msgstr "" 282 | 283 | msgid "Volume" 284 | msgstr "" 285 | 286 | msgid "ZFS Hits/Misses" 287 | msgstr "" 288 | 289 | msgid "ZFS ZED" 290 | msgstr "" 291 | 292 | msgid "Zvol %s [%s, %s]" 293 | msgstr "" 294 | 295 | msgid "zfs" 296 | msgstr "" 297 | 298 | msgid "zpool export" 299 | msgstr "" 300 | 301 | msgid "zpool import" 302 | msgstr "" 303 | -------------------------------------------------------------------------------- /usr/share/openmediavault/locale/bg/openmediavault-zfs.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the openmediavault-zfs package. 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: openmediavault-zfs\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-07-07 07:55-0500\n" 11 | "PO-Revision-Date: 2014-10-16 11:20+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Bulgarian (http://app.transifex.com/openmediavault-plugin-developers/openmediavault-zfs/language/bg/)\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Language: bg\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | msgid "Add" 21 | msgstr "" 22 | 23 | msgid "Add filesystem|snap|volume" 24 | msgstr "" 25 | 26 | msgid "Add pool" 27 | msgstr "" 28 | 29 | msgid "Are you sure you want to delete to this snapshot?" 30 | msgstr "" 31 | 32 | msgid "Are you sure you want to delete?" 33 | msgstr "" 34 | 35 | msgid "Are you sure you want to export?" 36 | msgstr "" 37 | 38 | msgid "Are you sure you want to rollback to this snapshot?" 39 | msgstr "" 40 | 41 | msgid "Ashift value" 42 | msgstr "" 43 | 44 | msgid "Available" 45 | msgstr "" 46 | 47 | msgid "Basic" 48 | msgstr "" 49 | 50 | msgid "By ID" 51 | msgstr "" 52 | 53 | msgid "By Path" 54 | msgstr "" 55 | 56 | msgid "Clone" 57 | msgstr "" 58 | 59 | msgid "Compression" 60 | msgstr "" 61 | 62 | msgid "Compression type" 63 | msgstr "" 64 | 65 | msgid "Create" 66 | msgstr "" 67 | 68 | msgid "Created pool." 69 | msgstr "" 70 | 71 | msgid "Delete" 72 | msgstr "" 73 | 74 | msgid "Deleting object ..." 75 | msgstr "" 76 | 77 | msgid "Deleting snapshot ..." 78 | msgstr "" 79 | 80 | msgid "Details" 81 | msgstr "" 82 | 83 | msgid "Device alias" 84 | msgstr "" 85 | 86 | msgid "Devices" 87 | msgstr "" 88 | 89 | msgid "Discover" 90 | msgstr "" 91 | 92 | msgid "Discover complete." 93 | msgstr "" 94 | 95 | msgid "Discovering new pools ..." 96 | msgstr "" 97 | 98 | msgid "Edit property" 99 | msgstr "" 100 | 101 | msgid "Expand" 102 | msgstr "" 103 | 104 | msgid "Expand pool" 105 | msgstr "" 106 | 107 | msgid "Expanded pool." 108 | msgstr "" 109 | 110 | msgid "Filesystem" 111 | msgstr "" 112 | 113 | msgid "Force" 114 | msgstr "" 115 | 116 | msgid "Force creation" 117 | msgstr "" 118 | 119 | msgid "Forces import, even if the pool appears to be potentially active." 120 | msgstr "" 121 | 122 | msgid "" 123 | "Forces the creation of the Vded even if errors are reported. Use with " 124 | "extreme caution!" 125 | msgstr "" 126 | 127 | msgid "" 128 | "Forces the creation of the pool even if errors are reported. Use with " 129 | "extreme caution!" 130 | msgstr "" 131 | 132 | msgid "Hits" 133 | msgstr "" 134 | 135 | msgid "Import all" 136 | msgstr "" 137 | 138 | msgid "Import all missing pools." 139 | msgstr "" 140 | 141 | msgid "Mirror" 142 | msgstr "" 143 | 144 | msgid "Misses" 145 | msgstr "" 146 | 147 | msgid "Modified" 148 | msgstr "" 149 | 150 | msgid "Mountpoint" 151 | msgstr "" 152 | 153 | msgid "Name" 154 | msgstr "" 155 | 156 | msgid "New Property" 157 | msgstr "" 158 | 159 | msgid "New property" 160 | msgstr "" 161 | 162 | msgid "None" 163 | msgstr "" 164 | 165 | msgid "Object deleted." 166 | msgstr "" 167 | 168 | msgid "Optional mountpoint for the pool. Default is to use the pool name." 169 | msgstr "" 170 | 171 | msgid "Optional mountpoint. Default is to use the name." 172 | msgstr "" 173 | 174 | msgid "Parent" 175 | msgstr "" 176 | 177 | msgid "Path" 178 | msgstr "" 179 | 180 | msgid "Pool" 181 | msgstr "" 182 | 183 | msgid "Pool name" 184 | msgstr "" 185 | 186 | msgid "Pool type" 187 | msgstr "" 188 | 189 | msgid "Pools" 190 | msgstr "" 191 | 192 | msgid "Prefix" 193 | msgstr "" 194 | 195 | msgid "Properties" 196 | msgstr "" 197 | 198 | msgid "Properties saved." 199 | msgstr "" 200 | 201 | msgid "Property" 202 | msgstr "" 203 | 204 | msgid "RAID-Z1" 205 | msgstr "" 206 | 207 | msgid "RAID-Z2" 208 | msgstr "" 209 | 210 | msgid "RAID-Z3" 211 | msgstr "" 212 | 213 | msgid "Refer" 214 | msgstr "" 215 | 216 | msgid "Rollback" 217 | msgstr "" 218 | 219 | msgid "Scrub" 220 | msgstr "" 221 | 222 | msgid "Set ashift" 223 | msgstr "" 224 | 225 | msgid "Size" 226 | msgstr "" 227 | 228 | msgid "Snap clone name" 229 | msgstr "" 230 | 231 | msgid "Snapshot" 232 | msgstr "" 233 | 234 | msgid "Snapshot deleted." 235 | msgstr "" 236 | 237 | msgid "Snapshots" 238 | msgstr "" 239 | 240 | msgid "Source" 241 | msgstr "" 242 | 243 | msgid "Source name" 244 | msgstr "" 245 | 246 | msgid "Source path" 247 | msgstr "" 248 | 249 | msgid "Source pool" 250 | msgstr "" 251 | 252 | msgid "" 253 | "Specifies which device alias should be used. Don't change unless needed." 254 | msgstr "" 255 | 256 | msgid "Specify ashift value. Only use if you are sure you need it." 257 | msgstr "" 258 | 259 | msgid "State" 260 | msgstr "" 261 | 262 | msgid "Status" 263 | msgstr "" 264 | 265 | msgid "Thin provisioning" 266 | msgstr "" 267 | 268 | msgid "Tools" 269 | msgstr "" 270 | 271 | msgid "Type" 272 | msgstr "" 273 | 274 | msgid "Used" 275 | msgstr "" 276 | 277 | msgid "Value" 278 | msgstr "" 279 | 280 | msgid "Vdev type" 281 | msgstr "" 282 | 283 | msgid "Volume" 284 | msgstr "" 285 | 286 | msgid "ZFS Hits/Misses" 287 | msgstr "" 288 | 289 | msgid "ZFS ZED" 290 | msgstr "" 291 | 292 | msgid "Zvol %s [%s, %s]" 293 | msgstr "" 294 | 295 | msgid "zfs" 296 | msgstr "" 297 | 298 | msgid "zpool export" 299 | msgstr "" 300 | 301 | msgid "zpool import" 302 | msgstr "" 303 | -------------------------------------------------------------------------------- /usr/share/openmediavault/locale/eu/openmediavault-zfs.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the openmediavault-zfs package. 4 | # 5 | # Translators: 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: openmediavault-zfs\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-07-07 07:55-0500\n" 11 | "PO-Revision-Date: 2014-10-16 11:20+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Basque (http://app.transifex.com/openmediavault-plugin-developers/openmediavault-zfs/language/eu/)\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Language: eu\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | msgid "Add" 21 | msgstr "" 22 | 23 | msgid "Add filesystem|snap|volume" 24 | msgstr "" 25 | 26 | msgid "Add pool" 27 | msgstr "" 28 | 29 | msgid "Are you sure you want to delete to this snapshot?" 30 | msgstr "" 31 | 32 | msgid "Are you sure you want to delete?" 33 | msgstr "" 34 | 35 | msgid "Are you sure you want to export?" 36 | msgstr "" 37 | 38 | msgid "Are you sure you want to rollback to this snapshot?" 39 | msgstr "" 40 | 41 | msgid "Ashift value" 42 | msgstr "" 43 | 44 | msgid "Available" 45 | msgstr "" 46 | 47 | msgid "Basic" 48 | msgstr "" 49 | 50 | msgid "By ID" 51 | msgstr "" 52 | 53 | msgid "By Path" 54 | msgstr "" 55 | 56 | msgid "Clone" 57 | msgstr "" 58 | 59 | msgid "Compression" 60 | msgstr "" 61 | 62 | msgid "Compression type" 63 | msgstr "" 64 | 65 | msgid "Create" 66 | msgstr "" 67 | 68 | msgid "Created pool." 69 | msgstr "" 70 | 71 | msgid "Delete" 72 | msgstr "" 73 | 74 | msgid "Deleting object ..." 75 | msgstr "" 76 | 77 | msgid "Deleting snapshot ..." 78 | msgstr "" 79 | 80 | msgid "Details" 81 | msgstr "" 82 | 83 | msgid "Device alias" 84 | msgstr "" 85 | 86 | msgid "Devices" 87 | msgstr "" 88 | 89 | msgid "Discover" 90 | msgstr "" 91 | 92 | msgid "Discover complete." 93 | msgstr "" 94 | 95 | msgid "Discovering new pools ..." 96 | msgstr "" 97 | 98 | msgid "Edit property" 99 | msgstr "" 100 | 101 | msgid "Expand" 102 | msgstr "" 103 | 104 | msgid "Expand pool" 105 | msgstr "" 106 | 107 | msgid "Expanded pool." 108 | msgstr "" 109 | 110 | msgid "Filesystem" 111 | msgstr "" 112 | 113 | msgid "Force" 114 | msgstr "" 115 | 116 | msgid "Force creation" 117 | msgstr "" 118 | 119 | msgid "Forces import, even if the pool appears to be potentially active." 120 | msgstr "" 121 | 122 | msgid "" 123 | "Forces the creation of the Vded even if errors are reported. Use with " 124 | "extreme caution!" 125 | msgstr "" 126 | 127 | msgid "" 128 | "Forces the creation of the pool even if errors are reported. Use with " 129 | "extreme caution!" 130 | msgstr "" 131 | 132 | msgid "Hits" 133 | msgstr "" 134 | 135 | msgid "Import all" 136 | msgstr "" 137 | 138 | msgid "Import all missing pools." 139 | msgstr "" 140 | 141 | msgid "Mirror" 142 | msgstr "" 143 | 144 | msgid "Misses" 145 | msgstr "" 146 | 147 | msgid "Modified" 148 | msgstr "" 149 | 150 | msgid "Mountpoint" 151 | msgstr "" 152 | 153 | msgid "Name" 154 | msgstr "" 155 | 156 | msgid "New Property" 157 | msgstr "" 158 | 159 | msgid "New property" 160 | msgstr "" 161 | 162 | msgid "None" 163 | msgstr "" 164 | 165 | msgid "Object deleted." 166 | msgstr "" 167 | 168 | msgid "Optional mountpoint for the pool. Default is to use the pool name." 169 | msgstr "" 170 | 171 | msgid "Optional mountpoint. Default is to use the name." 172 | msgstr "" 173 | 174 | msgid "Parent" 175 | msgstr "" 176 | 177 | msgid "Path" 178 | msgstr "" 179 | 180 | msgid "Pool" 181 | msgstr "" 182 | 183 | msgid "Pool name" 184 | msgstr "" 185 | 186 | msgid "Pool type" 187 | msgstr "" 188 | 189 | msgid "Pools" 190 | msgstr "" 191 | 192 | msgid "Prefix" 193 | msgstr "" 194 | 195 | msgid "Properties" 196 | msgstr "" 197 | 198 | msgid "Properties saved." 199 | msgstr "" 200 | 201 | msgid "Property" 202 | msgstr "" 203 | 204 | msgid "RAID-Z1" 205 | msgstr "" 206 | 207 | msgid "RAID-Z2" 208 | msgstr "" 209 | 210 | msgid "RAID-Z3" 211 | msgstr "" 212 | 213 | msgid "Refer" 214 | msgstr "" 215 | 216 | msgid "Rollback" 217 | msgstr "" 218 | 219 | msgid "Scrub" 220 | msgstr "" 221 | 222 | msgid "Set ashift" 223 | msgstr "" 224 | 225 | msgid "Size" 226 | msgstr "" 227 | 228 | msgid "Snap clone name" 229 | msgstr "" 230 | 231 | msgid "Snapshot" 232 | msgstr "" 233 | 234 | msgid "Snapshot deleted." 235 | msgstr "" 236 | 237 | msgid "Snapshots" 238 | msgstr "" 239 | 240 | msgid "Source" 241 | msgstr "" 242 | 243 | msgid "Source name" 244 | msgstr "" 245 | 246 | msgid "Source path" 247 | msgstr "" 248 | 249 | msgid "Source pool" 250 | msgstr "" 251 | 252 | msgid "" 253 | "Specifies which device alias should be used. Don't change unless needed." 254 | msgstr "" 255 | 256 | msgid "Specify ashift value. Only use if you are sure you need it." 257 | msgstr "" 258 | 259 | msgid "State" 260 | msgstr "" 261 | 262 | msgid "Status" 263 | msgstr "" 264 | 265 | msgid "Thin provisioning" 266 | msgstr "" 267 | 268 | msgid "Tools" 269 | msgstr "" 270 | 271 | msgid "Type" 272 | msgstr "" 273 | 274 | msgid "Used" 275 | msgstr "" 276 | 277 | msgid "Value" 278 | msgstr "" 279 | 280 | msgid "Vdev type" 281 | msgstr "" 282 | 283 | msgid "Volume" 284 | msgstr "" 285 | 286 | msgid "ZFS Hits/Misses" 287 | msgstr "" 288 | 289 | msgid "ZFS ZED" 290 | msgstr "" 291 | 292 | msgid "Zvol %s [%s, %s]" 293 | msgstr "" 294 | 295 | msgid "zfs" 296 | msgstr "" 297 | 298 | msgid "zpool export" 299 | msgstr "" 300 | 301 | msgid "zpool import" 302 | msgstr "" 303 | -------------------------------------------------------------------------------- /usr/share/openmediavault/locale/openmediavault-zfs.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the openmediavault-zfs package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: openmediavault-zfs\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-07-07 07:55-0500\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | msgid "Add" 21 | msgstr "" 22 | 23 | msgid "Add filesystem|snap|volume" 24 | msgstr "" 25 | 26 | msgid "Add pool" 27 | msgstr "" 28 | 29 | msgid "Are you sure you want to delete to this snapshot?" 30 | msgstr "" 31 | 32 | msgid "Are you sure you want to delete?" 33 | msgstr "" 34 | 35 | msgid "Are you sure you want to export?" 36 | msgstr "" 37 | 38 | msgid "Are you sure you want to rollback to this snapshot?" 39 | msgstr "" 40 | 41 | msgid "Ashift value" 42 | msgstr "" 43 | 44 | msgid "Available" 45 | msgstr "" 46 | 47 | msgid "Basic" 48 | msgstr "" 49 | 50 | msgid "By ID" 51 | msgstr "" 52 | 53 | msgid "By Path" 54 | msgstr "" 55 | 56 | msgid "Clone" 57 | msgstr "" 58 | 59 | msgid "Compression" 60 | msgstr "" 61 | 62 | msgid "Compression type" 63 | msgstr "" 64 | 65 | msgid "Create" 66 | msgstr "" 67 | 68 | msgid "Created pool." 69 | msgstr "" 70 | 71 | msgid "Delete" 72 | msgstr "" 73 | 74 | msgid "Deleting object ..." 75 | msgstr "" 76 | 77 | msgid "Deleting snapshot ..." 78 | msgstr "" 79 | 80 | msgid "Details" 81 | msgstr "" 82 | 83 | msgid "Device alias" 84 | msgstr "" 85 | 86 | msgid "Devices" 87 | msgstr "" 88 | 89 | msgid "Discover" 90 | msgstr "" 91 | 92 | msgid "Discover complete." 93 | msgstr "" 94 | 95 | msgid "Discovering new pools ..." 96 | msgstr "" 97 | 98 | msgid "Edit property" 99 | msgstr "" 100 | 101 | msgid "Expand" 102 | msgstr "" 103 | 104 | msgid "Expand pool" 105 | msgstr "" 106 | 107 | msgid "Expanded pool." 108 | msgstr "" 109 | 110 | msgid "Filesystem" 111 | msgstr "" 112 | 113 | msgid "Force" 114 | msgstr "" 115 | 116 | msgid "Force creation" 117 | msgstr "" 118 | 119 | msgid "Forces import, even if the pool appears to be potentially active." 120 | msgstr "" 121 | 122 | msgid "Forces the creation of the Vded even if errors are reported. Use with extreme caution!" 123 | msgstr "" 124 | 125 | msgid "Forces the creation of the pool even if errors are reported. Use with extreme caution!" 126 | msgstr "" 127 | 128 | msgid "Hits" 129 | msgstr "" 130 | 131 | msgid "Import all" 132 | msgstr "" 133 | 134 | msgid "Import all missing pools." 135 | msgstr "" 136 | 137 | msgid "Mirror" 138 | msgstr "" 139 | 140 | msgid "Misses" 141 | msgstr "" 142 | 143 | msgid "Modified" 144 | msgstr "" 145 | 146 | msgid "Mountpoint" 147 | msgstr "" 148 | 149 | msgid "Name" 150 | msgstr "" 151 | 152 | msgid "New Property" 153 | msgstr "" 154 | 155 | msgid "New property" 156 | msgstr "" 157 | 158 | msgid "None" 159 | msgstr "" 160 | 161 | msgid "Object deleted." 162 | msgstr "" 163 | 164 | msgid "Optional mountpoint for the pool. Default is to use the pool name." 165 | msgstr "" 166 | 167 | msgid "Optional mountpoint. Default is to use the name." 168 | msgstr "" 169 | 170 | msgid "Parent" 171 | msgstr "" 172 | 173 | msgid "Path" 174 | msgstr "" 175 | 176 | msgid "Pool" 177 | msgstr "" 178 | 179 | msgid "Pool name" 180 | msgstr "" 181 | 182 | msgid "Pool type" 183 | msgstr "" 184 | 185 | msgid "Pools" 186 | msgstr "" 187 | 188 | msgid "Prefix" 189 | msgstr "" 190 | 191 | msgid "Properties" 192 | msgstr "" 193 | 194 | msgid "Properties saved." 195 | msgstr "" 196 | 197 | msgid "Property" 198 | msgstr "" 199 | 200 | msgid "RAID-Z1" 201 | msgstr "" 202 | 203 | msgid "RAID-Z2" 204 | msgstr "" 205 | 206 | msgid "RAID-Z3" 207 | msgstr "" 208 | 209 | msgid "Refer" 210 | msgstr "" 211 | 212 | msgid "Rollback" 213 | msgstr "" 214 | 215 | msgid "Scrub" 216 | msgstr "" 217 | 218 | msgid "Set ashift" 219 | msgstr "" 220 | 221 | msgid "Size" 222 | msgstr "" 223 | 224 | msgid "Snap clone name" 225 | msgstr "" 226 | 227 | msgid "Snapshot" 228 | msgstr "" 229 | 230 | msgid "Snapshot deleted." 231 | msgstr "" 232 | 233 | msgid "Snapshots" 234 | msgstr "" 235 | 236 | msgid "Source" 237 | msgstr "" 238 | 239 | msgid "Source name" 240 | msgstr "" 241 | 242 | msgid "Source path" 243 | msgstr "" 244 | 245 | msgid "Source pool" 246 | msgstr "" 247 | 248 | msgid "Specifies which device alias should be used. Don't change unless needed." 249 | msgstr "" 250 | 251 | msgid "Specify ashift value. Only use if you are sure you need it." 252 | msgstr "" 253 | 254 | msgid "State" 255 | msgstr "" 256 | 257 | msgid "Status" 258 | msgstr "" 259 | 260 | msgid "Thin provisioning" 261 | msgstr "" 262 | 263 | msgid "Tools" 264 | msgstr "" 265 | 266 | msgid "Type" 267 | msgstr "" 268 | 269 | msgid "Used" 270 | msgstr "" 271 | 272 | msgid "Value" 273 | msgstr "" 274 | 275 | msgid "Vdev type" 276 | msgstr "" 277 | 278 | msgid "Volume" 279 | msgstr "" 280 | 281 | msgid "ZFS Hits/Misses" 282 | msgstr "" 283 | 284 | msgid "ZFS ZED" 285 | msgstr "" 286 | 287 | msgid "Zvol %s [%s, %s]" 288 | msgstr "" 289 | 290 | msgid "zfs" 291 | msgstr "" 292 | 293 | msgid "zpool export" 294 | msgstr "" 295 | 296 | msgid "zpool import" 297 | msgstr "" 298 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/component.d/omv-storage-zfs-naviation-page.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: component 3 | data: 4 | name: omv-storage-zfs-navigation-page 5 | type: navigationPage 6 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/component.d/omv-storage-zfs-pools-details-text-page.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: component 3 | data: 4 | name: omv-storage-zfs-pools-details-text-page 5 | type: textPage 6 | config: 7 | hasReloadButton: true 8 | request: 9 | service: Zfs 10 | get: 11 | method: getObjectDetails 12 | params: 13 | name: "{{ _routeParams.name }}" 14 | type: "{{ _routeParams.type }}" 15 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/component.d/omv-storage-zfs-pools-expand-form-page.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: component 3 | data: 4 | name: omv-storage-zfs-pools-expand-form-page 5 | type: formPage 6 | config: 7 | request: 8 | service: Zfs 9 | post: 10 | method: expandPool 11 | confirmationDialogConfig: 12 | template: confirmation 13 | message: _('Do you really want to expand the ZFS pool?') 14 | fields: 15 | - type: textInput 16 | name: name 17 | label: _("Pool") 18 | value: "{{ _routeParams.pool }}" 19 | readonly: true 20 | - type: select 21 | name: vdevtype 22 | label: _("Vdev type") 23 | value: "raidz1" 24 | store: 25 | data: 26 | - ["basic", _("Basic")] 27 | - ["mirror", _("Mirror")] 28 | - ["raidz1", _("RAID-Z1")] 29 | - ["raidz2", _("RAID-Z2")] 30 | - ["raidz3", _("RAID-Z3")] 31 | - type: select 32 | name: devices 33 | label: _("Devices") 34 | multiple: true 35 | valueField: devicefile 36 | textField: devicefile 37 | store: 38 | proxy: 39 | service: Zfs 40 | get: 41 | method: getEmptyCandidates 42 | sorters: 43 | dir: asc 44 | prop: devicefile 45 | validators: 46 | required: true 47 | custom: 48 | - constraint: 49 | operator: if 50 | arg0: 51 | operator: eq 52 | arg0: 53 | prop: vdevtype 54 | arg1: 'mirror' 55 | arg1: 56 | operator: '>=' 57 | arg0: 58 | operator: length 59 | arg0: 60 | prop: devices 61 | arg1: 2 62 | errorData: _('At least two devices are required.') 63 | - constraint: 64 | operator: if 65 | arg0: 66 | operator: eq 67 | arg0: 68 | prop: vdevtype 69 | arg1: 'raidz1' 70 | arg1: 71 | operator: '>=' 72 | arg0: 73 | operator: length 74 | arg0: 75 | prop: devices 76 | arg1: 3 77 | errorData: _('At least three devices are required.') 78 | - constraint: 79 | operator: if 80 | arg0: 81 | operator: eq 82 | arg0: 83 | prop: vdevtype 84 | arg1: 'raidz2' 85 | arg1: 86 | operator: '>=' 87 | arg0: 88 | operator: length 89 | arg0: 90 | prop: devices 91 | arg1: 4 92 | errorData: _('At least four devices are required.') 93 | - constraint: 94 | operator: if 95 | arg0: 96 | operator: eq 97 | arg0: 98 | prop: vdevtype 99 | arg1: 'raidz3' 100 | arg1: 101 | operator: '>=' 102 | arg0: 103 | operator: length 104 | arg0: 105 | prop: devices 106 | arg1: 5 107 | errorData: _('At least five devices are required.') 108 | - type: select 109 | name: devalias 110 | label: _("Device alias") 111 | value: "id" 112 | store: 113 | data: 114 | - ["id", _("By ID")] 115 | - ["path", _("By Path")] 116 | - ["dev", _("None")] 117 | hint: _("Specifies which device alias should be used. Don't change unless needed.") 118 | - type: checkbox 119 | name: force 120 | label: _("Force creation") 121 | value: false 122 | hint: _("Forces the creation of the Vded even if errors are reported. Use with extreme caution!") 123 | buttons: 124 | - template: submit 125 | execute: 126 | type: url 127 | url: "/storage/zfs/pools" 128 | - template: cancel 129 | execute: 130 | type: url 131 | url: "/storage/zfs/pools" 132 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/component.d/omv-storage-zfs-pools-properties-form-page.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: component 3 | data: 4 | name: omv-storage-zfs-pools-properties-form-page 5 | type: formPage 6 | config: 7 | request: 8 | service: Zfs 9 | get: 10 | method: getProperties 11 | params: 12 | name: "{{ _routeParams.name }}" 13 | type: "{{ _routeParams.type }}" 14 | post: 15 | method: setProperties 16 | fields: 17 | - type: hidden 18 | name: uuid 19 | value: "{{ newconfobjuuid }}" 20 | - type: hidden 21 | name: name 22 | value: "{{ _routeParams.name }}" 23 | - type: hidden 24 | name: type 25 | value: "{{ _routeParams.type }}" 26 | - type: datatable 27 | name: properties 28 | label: _("Properties") 29 | hasHeader: true 30 | hasFooter: true 31 | hasSearchField: true 32 | sorters: 33 | - dir: asc 34 | prop: property 35 | columns: 36 | - name: _("Property") 37 | prop: property 38 | flexGrow: 1 39 | sortable: true 40 | - name: _("Value") 41 | prop: value 42 | flexGrow: 1 43 | sortable: true 44 | - name: _("Source") 45 | prop: source 46 | flexGrow: 1 47 | sortable: true 48 | - name: _("Modified") 49 | prop: modified 50 | flexGrow: 1 51 | hidden: true 52 | - name: _("New Property") 53 | prop: newproperty 54 | flexGrow: 1 55 | hidden: true 56 | actions: 57 | - template: add 58 | formDialogConfig: 59 | title: _("New property") 60 | fields: 61 | - type: textInput 62 | name: property 63 | label: _("Name") 64 | value: "" 65 | - type: textInput 66 | name: value 67 | label: _("Value") 68 | value: "" 69 | - type: hidden 70 | name: source 71 | value: "local" 72 | - type: hidden 73 | name: modified 74 | value: true 75 | - type: hidden 76 | name: newproperty 77 | value: true 78 | - template: edit 79 | formDialogConfig: 80 | title: _("Edit property") 81 | fields: 82 | - type: textInput 83 | name: property 84 | label: _("Property") 85 | readonly: true 86 | - type: textInput 87 | name: value 88 | label: _("Value") 89 | transform: 90 | source: "local" 91 | modified: true 92 | newproperty: false 93 | valueType: object 94 | value: [] 95 | buttons: 96 | - template: submit 97 | execute: 98 | type: url 99 | url: "/storage/zfs/pools" 100 | - template: cancel 101 | execute: 102 | type: url 103 | url: "/storage/zfs/pools" 104 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/component.d/omv-storage-zfs-snapshots-datatable-page.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: component 3 | data: 4 | name: omv-storage-zfs-snapshots-datatable-page 5 | type: datatablePage 6 | config: 7 | hasSearchField: true 8 | rowId: id 9 | stateId: af51b038-513b-11ec-b91a-1bce262337ed 10 | store: 11 | proxy: 12 | service: Zfs 13 | get: 14 | method: getAllSnapshotsBg 15 | task: true 16 | columns: 17 | - name: _("Name") 18 | prop: name 19 | flexGrow: 1 20 | sortable: true 21 | - name: _("Parent") 22 | prop: parent 23 | flexGrow: 1 24 | sortable: true 25 | - name: _("Used") 26 | prop: used 27 | flexGrow: 1 28 | sortable: true 29 | cellTemplateName: binaryUnit 30 | - name: _("Refer") 31 | prop: refer 32 | flexGrow: 1 33 | sortable: true 34 | cellTemplateName: binaryUnit 35 | - name: _("Path") 36 | prop: path 37 | flexGrow: 2 38 | sortable: true 39 | - name: _("Type") 40 | prop: type 41 | flexGrow: 1 42 | sortable: true 43 | actions: 44 | - type: iconButton 45 | tooltip: _("Delete") 46 | icon: mdi:delete 47 | enabledConstraints: 48 | minSelected: 1 49 | maxSelected: 1 50 | confirmationDialogConfig: 51 | template: confirmation 52 | message: _("Are you sure you want to delete to this snapshot?") 53 | execute: 54 | type: request 55 | request: 56 | service: Zfs 57 | method: deleteObjectBg 58 | params: 59 | name: "{{ _selected[0].path }}" 60 | type: "{{ _selected[0].type }}" 61 | task: true 62 | progressMessage: _("Deleting snapshot ...") 63 | successNotification: _("Snapshot deleted.") 64 | - type: iconButton 65 | tooltip: _("Clone") 66 | icon: mdi:content-copy 67 | enabledConstraints: 68 | minSelected: 1 69 | maxSelected: 1 70 | execute: 71 | type: formDialog 72 | formDialog: 73 | title: _('Clone snapshot') 74 | fields: 75 | - type: textInput 76 | name: pool 77 | label: _("Source pool") 78 | value: "{{ _selected[0].parent | split('/') | first }}" 79 | readonly: true 80 | - type: textInput 81 | name: name 82 | label: _("Source name") 83 | value: "{{ _selected[0].name }}" 84 | readonly: true 85 | - type: textInput 86 | name: path 87 | label: _("Source path") 88 | value: "{{ _selected[0].path }}" 89 | readonly: true 90 | - type: textInput 91 | name: clonename 92 | label: _("Snap clone name") 93 | value: "" 94 | validators: 95 | required: true 96 | patternType: shareName 97 | custom: 98 | - constraint: 99 | operator: ne 100 | arg0: 101 | prop: name 102 | arg1: 103 | prop: clonename 104 | errorData: _('A different name must be specified.') 105 | - type: hidden 106 | name: type 107 | value: "clone" 108 | buttons: 109 | submit: 110 | text: _('Clone') 111 | execute: 112 | type: request 113 | request: 114 | service: Zfs 115 | method: addObject 116 | - type: iconButton 117 | tooltip: _("Rollback") 118 | icon: mdi:arrow-u-left-top 119 | enabledConstraints: 120 | minSelected: 1 121 | maxSelected: 1 122 | confirmationDialogConfig: 123 | template: confirmation 124 | message: _("Are you sure you want to rollback to this snapshot?") 125 | execute: 126 | type: request 127 | request: 128 | service: Zfs 129 | method: rollbackSnapshot 130 | params: 131 | name: "{{ _selected[0].path }}" 132 | task: false 133 | successUrl: /storage/zfs/snapshots 134 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/dashboard.d/zfsarc.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: dashboard-widget 3 | data: 4 | id: de727ef2-0e77-11ed-a00a-e36b026b4dfc 5 | title: _("ZFS Hits/Misses") 6 | type: chart 7 | permissions: 8 | role: 9 | - admin 10 | chart: 11 | type: advanced-doughnut 12 | maxHeight: "150px" 13 | maxWidth: "150px" 14 | request: 15 | service: Zfs 16 | method: getStats 17 | transform: 18 | hits2: '{{ hitsMisses - misses }}' 19 | label: 20 | display: true 21 | formatter: template 22 | formatterConfig: "{{ value }}" 23 | dataConfig: 24 | - label: _("Hits") 25 | prop: hits2 26 | backgroundColor: "#4cd964" 27 | - label: _("Misses") 28 | prop: misses 29 | backgroundColor: "#ff3b30" 30 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/navigation.d/storage.zfs.pools.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: navigation-item 3 | data: 4 | path: "storage.zfs.pools" 5 | text: _("Pools") 6 | position: 10 7 | icon: mdi:format-list-group 8 | url: "/storage/zfs/pools" 9 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/navigation.d/storage.zfs.snapshots.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: navigation-item 3 | data: 4 | path: "storage.zfs.snapshots" 5 | text: _("Snapshots") 6 | position: 20 7 | icon: mdi:content-copy 8 | url: "/storage/zfs/snapshots" 9 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/navigation.d/storage.zfs.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: navigation-item 3 | data: 4 | path: "storage.zfs" 5 | position: 30 6 | text: _("zfs") 7 | icon: "mdi:vector-bezier" 8 | url: "/storage/zfs" 9 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.pools.create.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/pools/create" 5 | title: _("Create") 6 | notificationTitle: _("Created pool.") 7 | component: omv-storage-zfs-pools-create-form-page 8 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.pools.details.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/pools/details/:name/:type" 5 | title: _("Details") 6 | editing: true 7 | component: omv-storage-zfs-pools-details-text-page 8 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.pools.expand.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/pools/expand/:pool" 5 | title: _("Expand") 6 | notificationTitle: _("Expanded pool.") 7 | component: omv-storage-zfs-pools-expand-form-page 8 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.pools.properties.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/pools/properties/:name/:type" 5 | title: _("Properties") 6 | editing: true 7 | notificationTitle: _("Properties saved.") 8 | component: omv-storage-zfs-pools-properties-form-page 9 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.pools.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/pools" 5 | title: _("Pools") 6 | component: omv-storage-zfs-pools-datatable-page 7 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.snapshots.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs/snapshots" 5 | title: _("Snapshots") 6 | component: omv-storage-zfs-snapshots-datatable-page 7 | -------------------------------------------------------------------------------- /usr/share/openmediavault/workbench/route.d/storage.zfs.yaml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | type: route 3 | data: 4 | url: "/storage/zfs" 5 | title: _("zfs") 6 | component: omv-storage-zfs-navigation-page 7 | -------------------------------------------------------------------------------- /usr/share/php/openmediavault/system/filesystem/backend/zfs.inc: -------------------------------------------------------------------------------- 1 | type = "zfs"; 11 | $this->properties = self::PROP_POSIX_ACL; 12 | } 13 | 14 | public function getImpl($args) 15 | { 16 | $object = new \OMV\System\Filesystem\FilesystemZfs($args); 17 | $object->setBackend($this); 18 | return $object; 19 | } 20 | 21 | public function isTypeOf($fsName) 22 | { 23 | $cmd = "zfs list -H -o name -t filesystem \"$fsName\""; 24 | OMVModuleZFSUtil::exec($cmd, $out, $res); 25 | if ($res == 0) 26 | return TRUE; 27 | return FALSE; 28 | } 29 | 30 | public function enumerate() 31 | { 32 | $filesystems = \OMVModuleZFSFilesystem::getAllFilesystems(); 33 | $result = []; 34 | foreach ($filesystems as $filesystem) { 35 | $name = $filesystem->getName(); 36 | $data = [ 37 | "devicefile" => $name, 38 | "uuid" => "", 39 | "label" => $name, 40 | "type" => "zfs" 41 | ]; 42 | $result[$name] = $data; 43 | } 44 | return $result; 45 | } 46 | 47 | public function isBlkidEnumerated() 48 | { 49 | return FALSE; 50 | } 51 | } -------------------------------------------------------------------------------- /usr/share/php/openmediavault/system/storage/backend/zvol.inc: -------------------------------------------------------------------------------- 1 | enumerateProcFs("zd[0-9]+"); 18 | } 19 | 20 | function isTypeOf($deviceFile) 21 | { 22 | // Examples: 23 | // - /dev/zd0 24 | // - /dev/zd1p1 25 | $regex = "zd[0-9]+(p[0-9]+)?"; 26 | return $this->isTypeOfByName($deviceFile, $regex); 27 | } 28 | 29 | function getImpl($args) 30 | { 31 | return new \OMV\System\Storage\StorageDeviceZvol($args); 32 | } 33 | 34 | function baseDeviceFile($deviceFile) 35 | { 36 | return preg_replace("/(p\d+)$/", "", $deviceFile); 37 | } 38 | 39 | function fsDeviceFile($deviceFile, $partition = 1) 40 | { 41 | // E.g. /dev/zd0p1 42 | return sprintf("%sp1", $deviceFile); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /usr/share/php/openmediavault/system/storage/storagedevicezvol.inc: -------------------------------------------------------------------------------- 1 | getDeviceFile() . "\""; 18 | \OMVModuleZFSUtil::exec($cmd,$out,$res); 19 | $name = $out[0]; 20 | return sprintf(gettext("Zvol %s [%s, %s]"), 21 | $name, $this->getDeviceFile(), binary_format($this->getSize())); 22 | } 23 | } --------------------------------------------------------------------------------