commit
						8913dfb58e
					
				|  | @ -1,3 +1,11 @@ | ||||||
|  | # v1.4.4 | ||||||
|  | 
 | ||||||
|  | Release 2021-12-11 | ||||||
|  | 
 | ||||||
|  | - better adherence to expected csi behavior when volume request for less than | ||||||
|  |   minimum volume size is requested (see #137) | ||||||
|  | - avoid unnecessary data copy for `ListVolumes` operation | ||||||
|  | 
 | ||||||
| # v1.4.3 | # v1.4.3 | ||||||
| 
 | 
 | ||||||
| Released 2021-12-01 | Released 2021-12-01 | ||||||
|  |  | ||||||
|  | @ -347,6 +347,7 @@ Install `democratic-csi` as usual with `volumeSnapshotClasses` defined as approp | ||||||
| 
 | 
 | ||||||
| - https://kubernetes.io/docs/concepts/storage/volume-snapshots/ | - https://kubernetes.io/docs/concepts/storage/volume-snapshots/ | ||||||
| - https://github.com/kubernetes-csi/external-snapshotter#usage | - https://github.com/kubernetes-csi/external-snapshotter#usage | ||||||
|  | - https://github.com/democratic-csi/democratic-csi/issues/129#issuecomment-961489810 | ||||||
| 
 | 
 | ||||||
| # Migrating from freenas-provisioner and freenas-iscsi-provisioner | # Migrating from freenas-provisioner and freenas-iscsi-provisioner | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,4 +23,4 @@ if [[ "x${CSI_MODE}" != "x" ]];then | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # > "${LOG_PATH}" 2>&1  | # > "${LOG_PATH}" 2>&1  | ||||||
| ./bin/democratic-csi --log-level debug --driver-config-file "${CONFIG_FILE}" --csi-version "${CSI_VERSION}" --csi-name "driver-test" --server-socket "${CSI_ENDPOINT}" ${EXTRA_ARGS} | exec ./bin/democratic-csi --log-level debug --driver-config-file "${CONFIG_FILE}" --csi-version "${CSI_VERSION}" --csi-name "driver-test" --server-socket "${CSI_ENDPOINT}" ${EXTRA_ARGS} | ||||||
|  |  | ||||||
|  | @ -3,6 +3,14 @@ | ||||||
| set -e | set -e | ||||||
| set -x | set -x | ||||||
| 
 | 
 | ||||||
|  | _term() { | ||||||
|  |   # no idea why this does not work | ||||||
|  |   #[[ -n "${SUDO_PID}" ]] && sudo kill -15 "${SUDO_PID}" | ||||||
|  |   [[ -n "${SUDO_PID}" ]] && sudo kill -15 $(pgrep -P "${SUDO_PID}") || true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | trap _term EXIT | ||||||
|  | 
 | ||||||
| export PATH="/usr/local/lib/nodejs/bin:${PATH}" | export PATH="/usr/local/lib/nodejs/bin:${PATH}" | ||||||
| # install deps | # install deps | ||||||
| npm i | npm i | ||||||
|  | @ -12,6 +20,7 @@ export CI_BUILD_KEY=$(uuidgen | cut -d "-" -f 1) | ||||||
| 
 | 
 | ||||||
| # launch the server | # launch the server | ||||||
| sudo -E ci/bin/launch-server.sh & | sudo -E ci/bin/launch-server.sh & | ||||||
|  | SUDO_PID=$! | ||||||
| 
 | 
 | ||||||
| # wait for server to launch | # wait for server to launch | ||||||
| sleep 10 | sleep 10 | ||||||
|  |  | ||||||
|  | @ -9,3 +9,10 @@ capability { | ||||||
|   access_mode     = "single-node-writer" |   access_mode     = "single-node-writer" | ||||||
|   attachment_mode = "file-system" |   attachment_mode = "file-system" | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | mount_options { | ||||||
|  |   # ext4|xfs | ||||||
|  |   # default is ext4 when left unset | ||||||
|  |   #fs_type     = "ext4" | ||||||
|  |   #mount_flags = ["noatime"] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -9,3 +9,7 @@ capability { | ||||||
|   access_mode     = "multi-node-multi-writer" |   access_mode     = "multi-node-multi-writer" | ||||||
|   attachment_mode = "file-system" |   attachment_mode = "file-system" | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | mount_options { | ||||||
|  |   mount_flags = ["noatime", "nfsvers=3"] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -43,14 +43,14 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/eslintrc": { |     "node_modules/@eslint/eslintrc": { | ||||||
|       "version": "1.0.4", |       "version": "1.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", | ||||||
|       "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", |       "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|         "debug": "^4.3.2", |         "debug": "^4.3.2", | ||||||
|         "espree": "^9.0.0", |         "espree": "^9.2.0", | ||||||
|         "globals": "^13.9.0", |         "globals": "^13.9.0", | ||||||
|         "ignore": "^4.0.6", |         "ignore": "^4.0.6", | ||||||
|         "import-fresh": "^3.2.1", |         "import-fresh": "^3.2.1", | ||||||
|  | @ -118,12 +118,12 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@humanwhocodes/config-array": { |     "node_modules/@humanwhocodes/config-array": { | ||||||
|       "version": "0.6.0", |       "version": "0.9.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", | ||||||
|       "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", |       "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@humanwhocodes/object-schema": "^1.2.0", |         "@humanwhocodes/object-schema": "^1.2.1", | ||||||
|         "debug": "^4.1.1", |         "debug": "^4.1.1", | ||||||
|         "minimatch": "^3.0.4" |         "minimatch": "^3.0.4" | ||||||
|       }, |       }, | ||||||
|  | @ -303,9 +303,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/node": { |     "node_modules/@types/node": { | ||||||
|       "version": "16.11.11", |       "version": "16.11.12", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", | ||||||
|       "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==" |       "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/request": { |     "node_modules/@types/request": { | ||||||
|       "version": "2.48.7", |       "version": "2.48.7", | ||||||
|  | @ -683,6 +683,14 @@ | ||||||
|         "mimic-response": "^1.0.0" |         "mimic-response": "^1.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/code-point-at": { | ||||||
|  |       "version": "1.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | ||||||
|  |       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=0.10.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/color": { |     "node_modules/color": { | ||||||
|       "version": "3.2.1", |       "version": "3.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", |       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", | ||||||
|  | @ -709,9 +717,9 @@ | ||||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/color-string": { |     "node_modules/color-string": { | ||||||
|       "version": "1.8.2", |       "version": "1.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.8.2.tgz", |       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", | ||||||
|       "integrity": "sha512-w5ZkKRdLsc5NOYsmnpS2DpyRW71npwZGwbRpLrJTuqjfTs2Bhrba7UiV59IX9siBlCPl2pne5NtiwnVWUzvYFA==", |       "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "color-name": "^1.0.0", |         "color-name": "^1.0.0", | ||||||
|         "simple-swizzle": "^0.2.2" |         "simple-swizzle": "^0.2.2" | ||||||
|  | @ -978,13 +986,13 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint": { |     "node_modules/eslint": { | ||||||
|       "version": "8.3.0", |       "version": "8.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz", | ||||||
|       "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", |       "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@eslint/eslintrc": "^1.0.4", |         "@eslint/eslintrc": "^1.0.5", | ||||||
|         "@humanwhocodes/config-array": "^0.6.0", |         "@humanwhocodes/config-array": "^0.9.2", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
|         "chalk": "^4.0.0", |         "chalk": "^4.0.0", | ||||||
|         "cross-spawn": "^7.0.2", |         "cross-spawn": "^7.0.2", | ||||||
|  | @ -995,7 +1003,7 @@ | ||||||
|         "eslint-scope": "^7.1.0", |         "eslint-scope": "^7.1.0", | ||||||
|         "eslint-utils": "^3.0.0", |         "eslint-utils": "^3.0.0", | ||||||
|         "eslint-visitor-keys": "^3.1.0", |         "eslint-visitor-keys": "^3.1.0", | ||||||
|         "espree": "^9.1.0", |         "espree": "^9.2.0", | ||||||
|         "esquery": "^1.4.0", |         "esquery": "^1.4.0", | ||||||
|         "esutils": "^2.0.2", |         "esutils": "^2.0.2", | ||||||
|         "fast-deep-equal": "^3.1.3", |         "fast-deep-equal": "^3.1.3", | ||||||
|  | @ -1082,9 +1090,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/espree": { |     "node_modules/espree": { | ||||||
|       "version": "9.1.0", |       "version": "9.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", |       "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", | ||||||
|       "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", |       "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "acorn": "^8.6.0", |         "acorn": "^8.6.0", | ||||||
|  | @ -2501,9 +2509,9 @@ | ||||||
|       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" |       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/minipass": { |     "node_modules/minipass": { | ||||||
|       "version": "3.1.5", |       "version": "3.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", |       "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", | ||||||
|       "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", |       "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "yallist": "^4.0.0" |         "yallist": "^4.0.0" | ||||||
|       }, |       }, | ||||||
|  | @ -2643,6 +2651,14 @@ | ||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/number-is-nan": { | ||||||
|  |       "version": "1.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | ||||||
|  |       "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=0.10.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/oauth-sign": { |     "node_modules/oauth-sign": { | ||||||
|       "version": "0.9.0", |       "version": "0.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", |       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||||||
|  | @ -3694,14 +3710,14 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@eslint/eslintrc": { |     "@eslint/eslintrc": { | ||||||
|       "version": "1.0.4", |       "version": "1.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", | ||||||
|       "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", |       "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|         "debug": "^4.3.2", |         "debug": "^4.3.2", | ||||||
|         "espree": "^9.0.0", |         "espree": "^9.2.0", | ||||||
|         "globals": "^13.9.0", |         "globals": "^13.9.0", | ||||||
|         "ignore": "^4.0.6", |         "ignore": "^4.0.6", | ||||||
|         "import-fresh": "^3.2.1", |         "import-fresh": "^3.2.1", | ||||||
|  | @ -3753,12 +3769,12 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@humanwhocodes/config-array": { |     "@humanwhocodes/config-array": { | ||||||
|       "version": "0.6.0", |       "version": "0.9.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", | ||||||
|       "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", |       "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@humanwhocodes/object-schema": "^1.2.0", |         "@humanwhocodes/object-schema": "^1.2.1", | ||||||
|         "debug": "^4.1.1", |         "debug": "^4.1.1", | ||||||
|         "minimatch": "^3.0.4" |         "minimatch": "^3.0.4" | ||||||
|       } |       } | ||||||
|  | @ -3925,9 +3941,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@types/node": { |     "@types/node": { | ||||||
|       "version": "16.11.11", |       "version": "16.11.12", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", | ||||||
|       "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==" |       "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==" | ||||||
|     }, |     }, | ||||||
|     "@types/request": { |     "@types/request": { | ||||||
|       "version": "2.48.7", |       "version": "2.48.7", | ||||||
|  | @ -4233,6 +4249,10 @@ | ||||||
|         "mimic-response": "^1.0.0" |         "mimic-response": "^1.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "code-point-at": { | ||||||
|  |       "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | ||||||
|  |       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" | ||||||
|  |     }, | ||||||
|     "color": { |     "color": { | ||||||
|       "version": "3.2.1", |       "version": "3.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", |       "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", | ||||||
|  | @ -4271,9 +4291,9 @@ | ||||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | ||||||
|     }, |     }, | ||||||
|     "color-string": { |     "color-string": { | ||||||
|       "version": "1.8.2", |       "version": "1.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.8.2.tgz", |       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", | ||||||
|       "integrity": "sha512-w5ZkKRdLsc5NOYsmnpS2DpyRW71npwZGwbRpLrJTuqjfTs2Bhrba7UiV59IX9siBlCPl2pne5NtiwnVWUzvYFA==", |       "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "color-name": "^1.0.0", |         "color-name": "^1.0.0", | ||||||
|         "simple-swizzle": "^0.2.2" |         "simple-swizzle": "^0.2.2" | ||||||
|  | @ -4459,13 +4479,13 @@ | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "eslint": { |     "eslint": { | ||||||
|       "version": "8.3.0", |       "version": "8.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz", | ||||||
|       "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", |       "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@eslint/eslintrc": "^1.0.4", |         "@eslint/eslintrc": "^1.0.5", | ||||||
|         "@humanwhocodes/config-array": "^0.6.0", |         "@humanwhocodes/config-array": "^0.9.2", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
|         "chalk": "^4.0.0", |         "chalk": "^4.0.0", | ||||||
|         "cross-spawn": "^7.0.2", |         "cross-spawn": "^7.0.2", | ||||||
|  | @ -4476,7 +4496,7 @@ | ||||||
|         "eslint-scope": "^7.1.0", |         "eslint-scope": "^7.1.0", | ||||||
|         "eslint-utils": "^3.0.0", |         "eslint-utils": "^3.0.0", | ||||||
|         "eslint-visitor-keys": "^3.1.0", |         "eslint-visitor-keys": "^3.1.0", | ||||||
|         "espree": "^9.1.0", |         "espree": "^9.2.0", | ||||||
|         "esquery": "^1.4.0", |         "esquery": "^1.4.0", | ||||||
|         "esutils": "^2.0.2", |         "esutils": "^2.0.2", | ||||||
|         "fast-deep-equal": "^3.1.3", |         "fast-deep-equal": "^3.1.3", | ||||||
|  | @ -4538,9 +4558,9 @@ | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "espree": { |     "espree": { | ||||||
|       "version": "9.1.0", |       "version": "9.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", |       "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", | ||||||
|       "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", |       "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "acorn": "^8.6.0", |         "acorn": "^8.6.0", | ||||||
|  | @ -5610,9 +5630,9 @@ | ||||||
|       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" |       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" | ||||||
|     }, |     }, | ||||||
|     "minipass": { |     "minipass": { | ||||||
|       "version": "3.1.5", |       "version": "3.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", |       "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", | ||||||
|       "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", |       "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "yallist": "^4.0.0" |         "yallist": "^4.0.0" | ||||||
|       } |       } | ||||||
|  | @ -5721,6 +5741,10 @@ | ||||||
|         "path-key": "^3.0.0" |         "path-key": "^3.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "number-is-nan": { | ||||||
|  |       "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | ||||||
|  |       "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" | ||||||
|  |     }, | ||||||
|     "oauth-sign": { |     "oauth-sign": { | ||||||
|       "version": "0.9.0", |       "version": "0.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", |       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||||||
|  |  | ||||||
|  | @ -571,6 +571,7 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // if no capacity_range specified set a required_bytes at least
 | ||||||
|     if ( |     if ( | ||||||
|       !call.request.capacity_range || |       !call.request.capacity_range || | ||||||
|       Object.keys(call.request.capacity_range).length === 0 |       Object.keys(call.request.capacity_range).length === 0 | ||||||
|  | @ -592,15 +593,18 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |  | ||||||
|      * NOTE: avoid the urge to templatize this given the name length limits for zvols |  | ||||||
|      * ie: namespace-name may quite easily exceed 58 chars |  | ||||||
|      */ |  | ||||||
|     const datasetName = datasetParentName + "/" + name; |  | ||||||
|     let capacity_bytes = |     let capacity_bytes = | ||||||
|       call.request.capacity_range.required_bytes || |       call.request.capacity_range.required_bytes || | ||||||
|       call.request.capacity_range.limit_bytes; |       call.request.capacity_range.limit_bytes; | ||||||
| 
 | 
 | ||||||
|  |     if (!capacity_bytes) { | ||||||
|  |       //should never happen, value must be set
 | ||||||
|  |       throw new GrpcError( | ||||||
|  |         grpc.status.INVALID_ARGUMENT, | ||||||
|  |         `volume capacity is required (either required_bytes or limit_bytes)` | ||||||
|  |       ); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (capacity_bytes && driverZfsResourceType == "volume") { |     if (capacity_bytes && driverZfsResourceType == "volume") { | ||||||
|       //make sure to align capacity_bytes with zvol blocksize
 |       //make sure to align capacity_bytes with zvol blocksize
 | ||||||
|       //volume size must be a multiple of volume block size
 |       //volume size must be a multiple of volume block size
 | ||||||
|  | @ -609,13 +613,6 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
|         zvolBlocksize |         zvolBlocksize | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|     if (!capacity_bytes) { |  | ||||||
|       //should never happen, value must be set
 |  | ||||||
|       throw new GrpcError( |  | ||||||
|         grpc.status.INVALID_ARGUMENT, |  | ||||||
|         `volume capacity is required (either required_bytes or limit_bytes)` |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     // ensure *actual* capacity is not greater than limit
 |     // ensure *actual* capacity is not greater than limit
 | ||||||
|     if ( |     if ( | ||||||
|  | @ -629,6 +626,12 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * NOTE: avoid the urge to templatize this given the name length limits for zvols | ||||||
|  |      * ie: namespace-name may quite easily exceed 58 chars | ||||||
|  |      */ | ||||||
|  |     const datasetName = datasetParentName + "/" + name; | ||||||
|  | 
 | ||||||
|     // ensure volumes with the same name being requested a 2nd time but with a different size fails
 |     // ensure volumes with the same name being requested a 2nd time but with a different size fails
 | ||||||
|     try { |     try { | ||||||
|       let properties = await zb.zfs.get(datasetName, ["volsize", "refquota"]); |       let properties = await zb.zfs.get(datasetName, ["volsize", "refquota"]); | ||||||
|  | @ -1706,7 +1709,6 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
|       } |       } | ||||||
|       entries = this.ctx.cache.get(`ListSnapshots:result:${uuid}`); |       entries = this.ctx.cache.get(`ListSnapshots:result:${uuid}`); | ||||||
|       if (entries) { |       if (entries) { | ||||||
|         entries = JSON.parse(JSON.stringify(entries)); |  | ||||||
|         entries_length = entries.length; |         entries_length = entries.length; | ||||||
|         entries = entries.slice(start_position, end_position); |         entries = entries.slice(start_position, end_position); | ||||||
|         if (max_entries > 0 && end_position > entries_length) { |         if (max_entries > 0 && end_position > entries_length) { | ||||||
|  | @ -1914,10 +1916,7 @@ class ControllerZfsSshBaseDriver extends CsiBaseDriver { | ||||||
| 
 | 
 | ||||||
|     if (max_entries && entries.length > max_entries) { |     if (max_entries && entries.length > max_entries) { | ||||||
|       uuid = uuidv4(); |       uuid = uuidv4(); | ||||||
|       this.ctx.cache.set( |       this.ctx.cache.set(`ListSnapshots:result:${uuid}`, entries); | ||||||
|         `ListSnapshots:result:${uuid}`, |  | ||||||
|         JSON.parse(JSON.stringify(entries)) |  | ||||||
|       ); |  | ||||||
|       next_token = `${uuid}:${max_entries}`; |       next_token = `${uuid}:${max_entries}`; | ||||||
|       entries = entries.slice(0, max_entries); |       entries = entries.slice(0, max_entries); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -2044,6 +2044,7 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // if no capacity_range specified set a required_bytes at least
 | ||||||
|     if ( |     if ( | ||||||
|       !call.request.capacity_range || |       !call.request.capacity_range || | ||||||
|       Object.keys(call.request.capacity_range).length === 0 |       Object.keys(call.request.capacity_range).length === 0 | ||||||
|  | @ -2065,23 +2066,10 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |  | ||||||
|      * NOTE: avoid the urge to templatize this given the name length limits for zvols |  | ||||||
|      * ie: namespace-name may quite easily exceed 58 chars |  | ||||||
|      */ |  | ||||||
|     const datasetName = datasetParentName + "/" + name; |  | ||||||
|     let capacity_bytes = |     let capacity_bytes = | ||||||
|       call.request.capacity_range.required_bytes || |       call.request.capacity_range.required_bytes || | ||||||
|       call.request.capacity_range.limit_bytes; |       call.request.capacity_range.limit_bytes; | ||||||
| 
 | 
 | ||||||
|     if (capacity_bytes && driverZfsResourceType == "volume") { |  | ||||||
|       //make sure to align capacity_bytes with zvol blocksize
 |  | ||||||
|       //volume size must be a multiple of volume block size
 |  | ||||||
|       capacity_bytes = zb.helpers.generateZvolSize( |  | ||||||
|         capacity_bytes, |  | ||||||
|         zvolBlocksize |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
|     if (!capacity_bytes) { |     if (!capacity_bytes) { | ||||||
|       //should never happen, value must be set
 |       //should never happen, value must be set
 | ||||||
|       throw new GrpcError( |       throw new GrpcError( | ||||||
|  | @ -2091,10 +2079,24 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // ensure *actual* capacity is not too small
 |     // ensure *actual* capacity is not too small
 | ||||||
|     if (minimum_volume_size > 0 && capacity_bytes < minimum_volume_size) { |     if ( | ||||||
|       throw new GrpcError( |       capacity_bytes > 0 && | ||||||
|         grpc.status.OUT_OF_RANGE, |       minimum_volume_size > 0 && | ||||||
|         `volume capacity is smaller than the minimum: ${minimum_volume_size}` |       capacity_bytes < minimum_volume_size | ||||||
|  |     ) { | ||||||
|  |       //throw new GrpcError(
 | ||||||
|  |       //  grpc.status.OUT_OF_RANGE,
 | ||||||
|  |       //  `volume capacity is smaller than the minimum: ${minimum_volume_size}`
 | ||||||
|  |       //);
 | ||||||
|  |       capacity_bytes = minimum_volume_size; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (capacity_bytes && driverZfsResourceType == "volume") { | ||||||
|  |       //make sure to align capacity_bytes with zvol blocksize
 | ||||||
|  |       //volume size must be a multiple of volume block size
 | ||||||
|  |       capacity_bytes = zb.helpers.generateZvolSize( | ||||||
|  |         capacity_bytes, | ||||||
|  |         zvolBlocksize | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -2110,6 +2112,12 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * NOTE: avoid the urge to templatize this given the name length limits for zvols | ||||||
|  |      * ie: namespace-name may quite easily exceed 58 chars | ||||||
|  |      */ | ||||||
|  |     const datasetName = datasetParentName + "/" + name; | ||||||
|  | 
 | ||||||
|     // ensure volumes with the same name being requested a 2nd time but with a different size fails
 |     // ensure volumes with the same name being requested a 2nd time but with a different size fails
 | ||||||
|     try { |     try { | ||||||
|       let properties = await httpApiClient.DatasetGet(datasetName, [ |       let properties = await httpApiClient.DatasetGet(datasetName, [ | ||||||
|  | @ -3263,7 +3271,6 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       } |       } | ||||||
|       entries = this.ctx.cache.get(`ListSnapshots:result:${uuid}`); |       entries = this.ctx.cache.get(`ListSnapshots:result:${uuid}`); | ||||||
|       if (entries) { |       if (entries) { | ||||||
|         entries = JSON.parse(JSON.stringify(entries)); |  | ||||||
|         entries_length = entries.length; |         entries_length = entries.length; | ||||||
|         entries = entries.slice(start_position, end_position); |         entries = entries.slice(start_position, end_position); | ||||||
|         if (max_entries > 0 && end_position > entries_length) { |         if (max_entries > 0 && end_position > entries_length) { | ||||||
|  | @ -3629,10 +3636,7 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
| 
 | 
 | ||||||
|     if (max_entries && entries.length > max_entries) { |     if (max_entries && entries.length > max_entries) { | ||||||
|       uuid = uuidv4(); |       uuid = uuidv4(); | ||||||
|       this.ctx.cache.set( |       this.ctx.cache.set(`ListSnapshots:result:${uuid}`, entries); | ||||||
|         `ListSnapshots:result:${uuid}`, |  | ||||||
|         JSON.parse(JSON.stringify(entries)) |  | ||||||
|       ); |  | ||||||
|       next_token = `${uuid}:${max_entries}`; |       next_token = `${uuid}:${max_entries}`; | ||||||
|       entries = entries.slice(0, max_entries); |       entries = entries.slice(0, max_entries); | ||||||
|     } |     } | ||||||
|  | @ -3992,6 +3996,7 @@ class FreeNASApiDriver extends CsiBaseDriver { | ||||||
|       size_bytes = getLargestNumber( |       size_bytes = getLargestNumber( | ||||||
|         properties.referenced.rawvalue, |         properties.referenced.rawvalue, | ||||||
|         properties.logicalreferenced.rawvalue |         properties.logicalreferenced.rawvalue | ||||||
|  |         // TODO: perhaps include minimum volume size here?
 | ||||||
|       ); |       ); | ||||||
|     } else { |     } else { | ||||||
|       // get the size of the parent volume
 |       // get the size of the parent volume
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue