make controller-client more portable (support for windows)
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
		
							parent
							
								
									d071b879b0
								
							
						
					
					
						commit
						8014fed9c0
					
				|  | @ -16,8 +16,8 @@ iscsi: | ||||||
|   targetPortal: ${SYNOLOGY_HOST} |   targetPortal: ${SYNOLOGY_HOST} | ||||||
|   targetPortals: [] |   targetPortals: [] | ||||||
|   baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x." |   baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x." | ||||||
|   namePrefix: "csi-${CI_BUILD_KEY}-" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "-ci" |   nameSuffix: "" | ||||||
| 
 | 
 | ||||||
|   lunTemplate: |   lunTemplate: | ||||||
|     # btrfs thin provisioning |     # btrfs thin provisioning | ||||||
|  |  | ||||||
|  | @ -16,8 +16,8 @@ iscsi: | ||||||
|   targetPortal: ${SYNOLOGY_HOST} |   targetPortal: ${SYNOLOGY_HOST} | ||||||
|   targetPortals: [] |   targetPortals: [] | ||||||
|   baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x." |   baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x." | ||||||
|   namePrefix: "csi-${CI_BUILD_KEY}-" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "-ci" |   nameSuffix: "" | ||||||
| 
 | 
 | ||||||
|   lunTemplate: |   lunTemplate: | ||||||
|     # btrfs thin provisioning |     # btrfs thin provisioning | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ zfs: | ||||||
| iscsi: | iscsi: | ||||||
|   targetPortal: ${TRUENAS_HOST} |   targetPortal: ${TRUENAS_HOST} | ||||||
|   interface: "" |   interface: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   targetGroups: |   targetGroups: | ||||||
|     - targetGroupPortalGroup: 1 |     - targetGroupPortalGroup: 1 | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ zfs: | ||||||
| smb: | smb: | ||||||
|   shareHost: ${TRUENAS_HOST} |   shareHost: ${TRUENAS_HOST} | ||||||
|   #nameTemplate: "" |   #nameTemplate: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   shareAuxiliaryConfigurationTemplate: | |   shareAuxiliaryConfigurationTemplate: | | ||||||
|     #guest ok = yes |     #guest ok = yes | ||||||
|  | @ -51,7 +51,7 @@ smb: | ||||||
|   shareGuestOk: false |   shareGuestOk: false | ||||||
|   #shareGuestOnly: true |   #shareGuestOnly: true | ||||||
|   #shareShowHiddenFiles: true |   #shareShowHiddenFiles: true | ||||||
|   shareRecycleBin: true |   shareRecycleBin: false | ||||||
|   shareBrowsable: false |   shareBrowsable: false | ||||||
|   shareAccessBasedEnumeration: true |   shareAccessBasedEnumeration: true | ||||||
|   shareTimeMachine: false |   shareTimeMachine: false | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ zfs: | ||||||
| iscsi: | iscsi: | ||||||
|   targetPortal: ${TRUENAS_HOST} |   targetPortal: ${TRUENAS_HOST} | ||||||
|   interface: "" |   interface: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   targetGroups: |   targetGroups: | ||||||
|     - targetGroupPortalGroup: 1 |     - targetGroupPortalGroup: 1 | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ zfs: | ||||||
| smb: | smb: | ||||||
|   shareHost: ${TRUENAS_HOST} |   shareHost: ${TRUENAS_HOST} | ||||||
|   #nameTemplate: "" |   #nameTemplate: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   shareAuxiliaryConfigurationTemplate: | |   shareAuxiliaryConfigurationTemplate: | | ||||||
|     #guest ok = yes |     #guest ok = yes | ||||||
|  | @ -51,7 +51,7 @@ smb: | ||||||
|   shareGuestOk: false |   shareGuestOk: false | ||||||
|   #shareGuestOnly: true |   #shareGuestOnly: true | ||||||
|   #shareShowHiddenFiles: true |   #shareShowHiddenFiles: true | ||||||
|   shareRecycleBin: true |   shareRecycleBin: false | ||||||
|   shareBrowsable: false |   shareBrowsable: false | ||||||
|   shareAccessBasedEnumeration: true |   shareAccessBasedEnumeration: true | ||||||
|   shareTimeMachine: false |   shareTimeMachine: false | ||||||
|  |  | ||||||
|  | @ -20,7 +20,7 @@ zfs: | ||||||
| iscsi: | iscsi: | ||||||
|   targetPortal: ${TRUENAS_HOST} |   targetPortal: ${TRUENAS_HOST} | ||||||
|   interface: "" |   interface: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   targetGroups: |   targetGroups: | ||||||
|     - targetGroupPortalGroup: 1 |     - targetGroupPortalGroup: 1 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ zfs: | ||||||
| smb: | smb: | ||||||
|   shareHost: ${TRUENAS_HOST} |   shareHost: ${TRUENAS_HOST} | ||||||
|   #nameTemplate: "" |   #nameTemplate: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   shareAuxiliaryConfigurationTemplate: | |   shareAuxiliaryConfigurationTemplate: | | ||||||
|     #guest ok = yes |     #guest ok = yes | ||||||
|  | @ -33,7 +33,7 @@ smb: | ||||||
|   shareGuestOk: false |   shareGuestOk: false | ||||||
|   #shareGuestOnly: true |   #shareGuestOnly: true | ||||||
|   #shareShowHiddenFiles: true |   #shareShowHiddenFiles: true | ||||||
|   shareRecycleBin: true |   shareRecycleBin: false | ||||||
|   shareBrowsable: false |   shareBrowsable: false | ||||||
|   shareAccessBasedEnumeration: true |   shareAccessBasedEnumeration: true | ||||||
|   shareTimeMachine: false |   shareTimeMachine: false | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ zfs: | ||||||
| iscsi: | iscsi: | ||||||
|   targetPortal: ${SERVER_HOST} |   targetPortal: ${SERVER_HOST} | ||||||
|   interface: "" |   interface: "" | ||||||
|   namePrefix: "csi-ci-${CI_BUILD_KEY}" |   namePrefix: "csi-ci-${CI_BUILD_KEY}-" | ||||||
|   nameSuffix: "" |   nameSuffix: "" | ||||||
|   shareStrategy: "targetCli" |   shareStrategy: "targetCli" | ||||||
|   shareStrategyTargetCli: |   shareStrategyTargetCli: | ||||||
|  |  | ||||||
|  | @ -13,8 +13,9 @@ | ||||||
|         "@grpc/proto-loader": "^0.6.0", |         "@grpc/proto-loader": "^0.6.0", | ||||||
|         "@kubernetes/client-node": "^0.16.3", |         "@kubernetes/client-node": "^0.16.3", | ||||||
|         "async-mutex": "^0.3.1", |         "async-mutex": "^0.3.1", | ||||||
|         "axios": "^0.26.1", |         "axios": "^0.27.2", | ||||||
|         "bunyan": "^1.8.15", |         "bunyan": "^1.8.15", | ||||||
|  |         "fs-extra": "^10.1.0", | ||||||
|         "handlebars": "^4.7.7", |         "handlebars": "^4.7.7", | ||||||
|         "js-yaml": "^4.0.0", |         "js-yaml": "^4.0.0", | ||||||
|         "lodash": "^4.17.21", |         "lodash": "^4.17.21", | ||||||
|  | @ -50,9 +51,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/eslintrc": { |     "node_modules/@eslint/eslintrc": { | ||||||
|       "version": "1.2.1", |       "version": "1.2.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", | ||||||
|       "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", |       "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|  | @ -70,9 +71,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@grpc/grpc-js": { |     "node_modules/@grpc/grpc-js": { | ||||||
|       "version": "1.6.5", |       "version": "1.6.7", | ||||||
|       "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.5.tgz", |       "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", | ||||||
|       "integrity": "sha512-h0KSwgLiF5rmSAU6qnzK1aoD1MNqOw9HJK96N8VW3dR5FHMpq+0JNdLQFP//NcaIWVB7I7vkHl4JmU9hUw82Aw==", |       "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@grpc/proto-loader": "^0.6.4", |         "@grpc/proto-loader": "^0.6.4", | ||||||
|         "@types/node": ">=12.12.47" |         "@types/node": ">=12.12.47" | ||||||
|  | @ -82,9 +83,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@grpc/proto-loader": { |     "node_modules/@grpc/proto-loader": { | ||||||
|       "version": "0.6.9", |       "version": "0.6.12", | ||||||
|       "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", |       "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.12.tgz", | ||||||
|       "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", |       "integrity": "sha512-filTVbETFnxb9CyRX98zN18ilChTuf/C5scZ2xyaOTp0EHGq0/ufX8rjqXUcSb1Gpv7eZq4M2jDvbh9BogKnrg==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@types/long": "^4.0.1", |         "@types/long": "^4.0.1", | ||||||
|         "lodash.camelcase": "^4.3.0", |         "lodash.camelcase": "^4.3.0", | ||||||
|  | @ -302,9 +303,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/long": { |     "node_modules/@types/long": { | ||||||
|       "version": "4.0.1", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", |       "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", | ||||||
|       "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" |       "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/minipass": { |     "node_modules/@types/minipass": { | ||||||
|       "version": "3.1.2", |       "version": "3.1.2", | ||||||
|  | @ -315,9 +316,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/node": { |     "node_modules/@types/node": { | ||||||
|       "version": "17.0.24", |       "version": "17.0.31", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", | ||||||
|       "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" |       "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/request": { |     "node_modules/@types/request": { | ||||||
|       "version": "2.48.8", |       "version": "2.48.8", | ||||||
|  | @ -374,9 +375,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/acorn": { |     "node_modules/acorn": { | ||||||
|       "version": "8.7.0", |       "version": "8.7.1", | ||||||
|       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", |       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", | ||||||
|       "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", |       "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "acorn": "bin/acorn" |         "acorn": "bin/acorn" | ||||||
|  | @ -478,9 +479,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/async-mutex/node_modules/tslib": { |     "node_modules/async-mutex/node_modules/tslib": { | ||||||
|       "version": "2.3.1", |       "version": "2.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", |       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", | ||||||
|       "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" |       "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/asynckit": { |     "node_modules/asynckit": { | ||||||
|       "version": "0.4.0", |       "version": "0.4.0", | ||||||
|  | @ -501,11 +502,25 @@ | ||||||
|       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" |       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/axios": { |     "node_modules/axios": { | ||||||
|       "version": "0.26.1", |       "version": "0.27.2", | ||||||
|       "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", |       "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", | ||||||
|       "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", |       "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "follow-redirects": "^1.14.8" |         "follow-redirects": "^1.14.9", | ||||||
|  |         "form-data": "^4.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/axios/node_modules/form-data": { | ||||||
|  |       "version": "4.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | ||||||
|  |       "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "asynckit": "^0.4.0", | ||||||
|  |         "combined-stream": "^1.0.8", | ||||||
|  |         "mime-types": "^2.1.12" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">= 6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/balanced-match": { |     "node_modules/balanced-match": { | ||||||
|  | @ -693,9 +708,9 @@ | ||||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/color-string": { |     "node_modules/color-string": { | ||||||
|       "version": "1.9.0", |       "version": "1.9.1", | ||||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", |       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", | ||||||
|       "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", |       "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "color-name": "^1.0.0", |         "color-name": "^1.0.0", | ||||||
|         "simple-swizzle": "^0.2.2" |         "simple-swizzle": "^0.2.2" | ||||||
|  | @ -743,9 +758,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/compress-brotli": { |     "node_modules/compress-brotli": { | ||||||
|       "version": "1.3.6", |       "version": "1.3.8", | ||||||
|       "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", |       "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", | ||||||
|       "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", |       "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@types/json-buffer": "~3.0.0", |         "@types/json-buffer": "~3.0.0", | ||||||
|         "json-buffer": "~3.0.1" |         "json-buffer": "~3.0.1" | ||||||
|  | @ -947,12 +962,12 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint": { |     "node_modules/eslint": { | ||||||
|       "version": "8.13.0", |       "version": "8.14.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", | ||||||
|       "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", |       "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@eslint/eslintrc": "^1.2.1", |         "@eslint/eslintrc": "^1.2.2", | ||||||
|         "@humanwhocodes/config-array": "^0.9.2", |         "@humanwhocodes/config-array": "^0.9.2", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
|         "chalk": "^4.0.0", |         "chalk": "^4.0.0", | ||||||
|  | @ -1204,9 +1219,9 @@ | ||||||
|       "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" |       "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/follow-redirects": { |     "node_modules/follow-redirects": { | ||||||
|       "version": "1.14.9", |       "version": "1.15.0", | ||||||
|       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", |       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", | ||||||
|       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", |       "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", | ||||||
|       "funding": [ |       "funding": [ | ||||||
|         { |         { | ||||||
|           "type": "individual", |           "type": "individual", | ||||||
|  | @ -1243,6 +1258,19 @@ | ||||||
|         "node": ">= 0.12" |         "node": ">= 0.12" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/fs-extra": { | ||||||
|  |       "version": "10.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", | ||||||
|  |       "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "graceful-fs": "^4.2.0", | ||||||
|  |         "jsonfile": "^6.0.1", | ||||||
|  |         "universalify": "^2.0.0" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=12" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/fs-minipass": { |     "node_modules/fs-minipass": { | ||||||
|       "version": "2.1.0", |       "version": "2.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", |       "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", | ||||||
|  | @ -1367,6 +1395,11 @@ | ||||||
|         "url": "https://github.com/sindresorhus/got?sponsor=1" |         "url": "https://github.com/sindresorhus/got?sponsor=1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/graceful-fs": { | ||||||
|  |       "version": "4.2.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", | ||||||
|  |       "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" | ||||||
|  |     }, | ||||||
|     "node_modules/handlebars": { |     "node_modules/handlebars": { | ||||||
|       "version": "4.7.7", |       "version": "4.7.7", | ||||||
|       "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", |       "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", | ||||||
|  | @ -1537,9 +1570,9 @@ | ||||||
|       "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" |       "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-core-module": { |     "node_modules/is-core-module": { | ||||||
|       "version": "2.8.1", |       "version": "2.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", |       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", | ||||||
|       "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", |       "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "has": "^1.0.3" |         "has": "^1.0.3" | ||||||
|       }, |       }, | ||||||
|  | @ -1666,6 +1699,17 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", |       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||||||
|       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" |       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/jsonfile": { | ||||||
|  |       "version": "6.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||||
|  |       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "universalify": "^2.0.0" | ||||||
|  |       }, | ||||||
|  |       "optionalDependencies": { | ||||||
|  |         "graceful-fs": "^4.1.6" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/jsonpath-plus": { |     "node_modules/jsonpath-plus": { | ||||||
|       "version": "0.19.0", |       "version": "0.19.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz", |       "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz", | ||||||
|  | @ -1757,9 +1801,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/lru-cache": { |     "node_modules/lru-cache": { | ||||||
|       "version": "7.8.1", |       "version": "7.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.9.0.tgz", | ||||||
|       "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==", |       "integrity": "sha512-lkcNMUKqdJk96TuIXUidxaPuEg5sJo/+ZyVE2BDFnuZGzwXem7d8582eG8vbu4todLfT14snP6iHriCHXXi5Rw==", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=12" |         "node": ">=12" | ||||||
|       } |       } | ||||||
|  | @ -1861,9 +1905,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/moment": { |     "node_modules/moment": { | ||||||
|       "version": "2.29.2", |       "version": "2.29.3", | ||||||
|       "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", |       "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", | ||||||
|       "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", |       "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "*" |         "node": "*" | ||||||
|  | @ -2142,11 +2186,11 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/prompt/node_modules/winston": { |     "node_modules/prompt/node_modules/winston": { | ||||||
|       "version": "2.4.5", |       "version": "2.4.6", | ||||||
|       "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", |       "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.6.tgz", | ||||||
|       "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", |       "integrity": "sha512-J5Zu4p0tojLde8mIOyDSsmLmcP8I3Z6wtwpTDHx1+hGcdhxcJaAmG4CFtagkb+NiN1M9Ek4b42pzMWqfc9jm8w==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "async": "~1.0.0", |         "async": "^3.2.3", | ||||||
|         "colors": "1.0.x", |         "colors": "1.0.x", | ||||||
|         "cycle": "1.0.x", |         "cycle": "1.0.x", | ||||||
|         "eyes": "0.1.x", |         "eyes": "0.1.x", | ||||||
|  | @ -2157,11 +2201,6 @@ | ||||||
|         "node": ">= 0.10.0" |         "node": ">= 0.10.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/prompt/node_modules/winston/node_modules/async": { |  | ||||||
|       "version": "1.0.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", |  | ||||||
|       "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" |  | ||||||
|     }, |  | ||||||
|     "node_modules/protobufjs": { |     "node_modules/protobufjs": { | ||||||
|       "version": "6.11.2", |       "version": "6.11.2", | ||||||
|       "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", |       "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", | ||||||
|  | @ -2521,9 +2560,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/ssh2": { |     "node_modules/ssh2": { | ||||||
|       "version": "1.9.0", |       "version": "1.10.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", |       "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.10.0.tgz", | ||||||
|       "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", |       "integrity": "sha512-OnKAAmf4j8wCRrXXZv3Tp5lCZkLJZtgZbn45ELiShCg27djDQ3XFGvIzuGsIsf4hdHslP+VdhA9BhUQdTdfd9w==", | ||||||
|       "hasInstallScript": true, |       "hasInstallScript": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "asn1": "^0.2.4", |         "asn1": "^0.2.4", | ||||||
|  | @ -2784,9 +2823,17 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/underscore": { |     "node_modules/underscore": { | ||||||
|       "version": "1.13.2", |       "version": "1.13.3", | ||||||
|       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", |       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", | ||||||
|       "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" |       "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" | ||||||
|  |     }, | ||||||
|  |     "node_modules/universalify": { | ||||||
|  |       "version": "2.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", | ||||||
|  |       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">= 10.0.0" | ||||||
|  |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/uri-js": { |     "node_modules/uri-js": { | ||||||
|       "version": "4.4.1", |       "version": "4.4.1", | ||||||
|  | @ -2986,9 +3033,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@eslint/eslintrc": { |     "@eslint/eslintrc": { | ||||||
|       "version": "1.2.1", |       "version": "1.2.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", | ||||||
|       "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", |       "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|  | @ -3003,18 +3050,18 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@grpc/grpc-js": { |     "@grpc/grpc-js": { | ||||||
|       "version": "1.6.5", |       "version": "1.6.7", | ||||||
|       "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.5.tgz", |       "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", | ||||||
|       "integrity": "sha512-h0KSwgLiF5rmSAU6qnzK1aoD1MNqOw9HJK96N8VW3dR5FHMpq+0JNdLQFP//NcaIWVB7I7vkHl4JmU9hUw82Aw==", |       "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@grpc/proto-loader": "^0.6.4", |         "@grpc/proto-loader": "^0.6.4", | ||||||
|         "@types/node": ">=12.12.47" |         "@types/node": ">=12.12.47" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@grpc/proto-loader": { |     "@grpc/proto-loader": { | ||||||
|       "version": "0.6.9", |       "version": "0.6.12", | ||||||
|       "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", |       "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.12.tgz", | ||||||
|       "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", |       "integrity": "sha512-filTVbETFnxb9CyRX98zN18ilChTuf/C5scZ2xyaOTp0EHGq0/ufX8rjqXUcSb1Gpv7eZq4M2jDvbh9BogKnrg==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@types/long": "^4.0.1", |         "@types/long": "^4.0.1", | ||||||
|         "lodash.camelcase": "^4.3.0", |         "lodash.camelcase": "^4.3.0", | ||||||
|  | @ -3209,9 +3256,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@types/long": { |     "@types/long": { | ||||||
|       "version": "4.0.1", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", |       "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", | ||||||
|       "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" |       "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" | ||||||
|     }, |     }, | ||||||
|     "@types/minipass": { |     "@types/minipass": { | ||||||
|       "version": "3.1.2", |       "version": "3.1.2", | ||||||
|  | @ -3222,9 +3269,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@types/node": { |     "@types/node": { | ||||||
|       "version": "17.0.24", |       "version": "17.0.31", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", | ||||||
|       "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" |       "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" | ||||||
|     }, |     }, | ||||||
|     "@types/request": { |     "@types/request": { | ||||||
|       "version": "2.48.8", |       "version": "2.48.8", | ||||||
|  | @ -3281,9 +3328,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "acorn": { |     "acorn": { | ||||||
|       "version": "8.7.0", |       "version": "8.7.1", | ||||||
|       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", |       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", | ||||||
|       "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", |       "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "acorn-jsx": { |     "acorn-jsx": { | ||||||
|  | @ -3358,9 +3405,9 @@ | ||||||
|       }, |       }, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "tslib": { |         "tslib": { | ||||||
|           "version": "2.3.1", |           "version": "2.4.0", | ||||||
|           "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", |           "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", | ||||||
|           "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" |           "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  | @ -3380,11 +3427,24 @@ | ||||||
|       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" |       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" | ||||||
|     }, |     }, | ||||||
|     "axios": { |     "axios": { | ||||||
|       "version": "0.26.1", |       "version": "0.27.2", | ||||||
|       "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", |       "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", | ||||||
|       "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", |       "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "follow-redirects": "^1.14.8" |         "follow-redirects": "^1.14.9", | ||||||
|  |         "form-data": "^4.0.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "form-data": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", | ||||||
|  |           "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", | ||||||
|  |           "requires": { | ||||||
|  |             "asynckit": "^0.4.0", | ||||||
|  |             "combined-stream": "^1.0.8", | ||||||
|  |             "mime-types": "^2.1.12" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "balanced-match": { |     "balanced-match": { | ||||||
|  | @ -3547,9 +3607,9 @@ | ||||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | ||||||
|     }, |     }, | ||||||
|     "color-string": { |     "color-string": { | ||||||
|       "version": "1.9.0", |       "version": "1.9.1", | ||||||
|       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", |       "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", | ||||||
|       "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", |       "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "color-name": "^1.0.0", |         "color-name": "^1.0.0", | ||||||
|         "simple-swizzle": "^0.2.2" |         "simple-swizzle": "^0.2.2" | ||||||
|  | @ -3578,9 +3638,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "compress-brotli": { |     "compress-brotli": { | ||||||
|       "version": "1.3.6", |       "version": "1.3.8", | ||||||
|       "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", |       "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", | ||||||
|       "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", |       "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@types/json-buffer": "~3.0.0", |         "@types/json-buffer": "~3.0.0", | ||||||
|         "json-buffer": "~3.0.1" |         "json-buffer": "~3.0.1" | ||||||
|  | @ -3726,12 +3786,12 @@ | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "eslint": { |     "eslint": { | ||||||
|       "version": "8.13.0", |       "version": "8.14.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", | ||||||
|       "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", |       "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@eslint/eslintrc": "^1.2.1", |         "@eslint/eslintrc": "^1.2.2", | ||||||
|         "@humanwhocodes/config-array": "^0.9.2", |         "@humanwhocodes/config-array": "^0.9.2", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
|         "chalk": "^4.0.0", |         "chalk": "^4.0.0", | ||||||
|  | @ -3925,9 +3985,9 @@ | ||||||
|       "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" |       "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" | ||||||
|     }, |     }, | ||||||
|     "follow-redirects": { |     "follow-redirects": { | ||||||
|       "version": "1.14.9", |       "version": "1.15.0", | ||||||
|       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", |       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", | ||||||
|       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" |       "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" | ||||||
|     }, |     }, | ||||||
|     "forever-agent": { |     "forever-agent": { | ||||||
|       "version": "0.6.1", |       "version": "0.6.1", | ||||||
|  | @ -3944,6 +4004,16 @@ | ||||||
|         "mime-types": "^2.1.12" |         "mime-types": "^2.1.12" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "fs-extra": { | ||||||
|  |       "version": "10.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", | ||||||
|  |       "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "graceful-fs": "^4.2.0", | ||||||
|  |         "jsonfile": "^6.0.1", | ||||||
|  |         "universalify": "^2.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "fs-minipass": { |     "fs-minipass": { | ||||||
|       "version": "2.1.0", |       "version": "2.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", |       "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", | ||||||
|  | @ -4035,6 +4105,11 @@ | ||||||
|         "responselike": "^2.0.0" |         "responselike": "^2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "graceful-fs": { | ||||||
|  |       "version": "4.2.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", | ||||||
|  |       "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" | ||||||
|  |     }, | ||||||
|     "handlebars": { |     "handlebars": { | ||||||
|       "version": "4.7.7", |       "version": "4.7.7", | ||||||
|       "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", |       "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", | ||||||
|  | @ -4156,9 +4231,9 @@ | ||||||
|       "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" |       "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" | ||||||
|     }, |     }, | ||||||
|     "is-core-module": { |     "is-core-module": { | ||||||
|       "version": "2.8.1", |       "version": "2.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", |       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", | ||||||
|       "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", |       "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "has": "^1.0.3" |         "has": "^1.0.3" | ||||||
|       } |       } | ||||||
|  | @ -4256,6 +4331,15 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", |       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||||||
|       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" |       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||||||
|     }, |     }, | ||||||
|  |     "jsonfile": { | ||||||
|  |       "version": "6.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||||
|  |       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "graceful-fs": "^4.1.6", | ||||||
|  |         "universalify": "^2.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "jsonpath-plus": { |     "jsonpath-plus": { | ||||||
|       "version": "0.19.0", |       "version": "0.19.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz", |       "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz", | ||||||
|  | @ -4335,9 +4419,9 @@ | ||||||
|       "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" |       "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" | ||||||
|     }, |     }, | ||||||
|     "lru-cache": { |     "lru-cache": { | ||||||
|       "version": "7.8.1", |       "version": "7.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.9.0.tgz", | ||||||
|       "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==" |       "integrity": "sha512-lkcNMUKqdJk96TuIXUidxaPuEg5sJo/+ZyVE2BDFnuZGzwXem7d8582eG8vbu4todLfT14snP6iHriCHXXi5Rw==" | ||||||
|     }, |     }, | ||||||
|     "make-error": { |     "make-error": { | ||||||
|       "version": "1.3.6", |       "version": "1.3.6", | ||||||
|  | @ -4412,9 +4496,9 @@ | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "moment": { |     "moment": { | ||||||
|       "version": "2.29.2", |       "version": "2.29.3", | ||||||
|       "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", |       "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", | ||||||
|       "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", |       "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "ms": { |     "ms": { | ||||||
|  | @ -4628,23 +4712,16 @@ | ||||||
|       }, |       }, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "winston": { |         "winston": { | ||||||
|           "version": "2.4.5", |           "version": "2.4.6", | ||||||
|           "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", |           "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.6.tgz", | ||||||
|           "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", |           "integrity": "sha512-J5Zu4p0tojLde8mIOyDSsmLmcP8I3Z6wtwpTDHx1+hGcdhxcJaAmG4CFtagkb+NiN1M9Ek4b42pzMWqfc9jm8w==", | ||||||
|           "requires": { |           "requires": { | ||||||
|             "async": "~1.0.0", |             "async": "^3.2.3", | ||||||
|             "colors": "1.0.x", |             "colors": "1.0.x", | ||||||
|             "cycle": "1.0.x", |             "cycle": "1.0.x", | ||||||
|             "eyes": "0.1.x", |             "eyes": "0.1.x", | ||||||
|             "isstream": "0.1.x", |             "isstream": "0.1.x", | ||||||
|             "stack-trace": "0.0.x" |             "stack-trace": "0.0.x" | ||||||
|           }, |  | ||||||
|           "dependencies": { |  | ||||||
|             "async": { |  | ||||||
|               "version": "1.0.0", |  | ||||||
|               "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", |  | ||||||
|               "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" |  | ||||||
|             } |  | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  | @ -4907,9 +4984,9 @@ | ||||||
|       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" |       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||||
|     }, |     }, | ||||||
|     "ssh2": { |     "ssh2": { | ||||||
|       "version": "1.9.0", |       "version": "1.10.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", |       "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.10.0.tgz", | ||||||
|       "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", |       "integrity": "sha512-OnKAAmf4j8wCRrXXZv3Tp5lCZkLJZtgZbn45ELiShCg27djDQ3XFGvIzuGsIsf4hdHslP+VdhA9BhUQdTdfd9w==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "asn1": "^0.2.4", |         "asn1": "^0.2.4", | ||||||
|         "bcrypt-pbkdf": "^1.0.2", |         "bcrypt-pbkdf": "^1.0.2", | ||||||
|  | @ -5095,9 +5172,14 @@ | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "underscore": { |     "underscore": { | ||||||
|       "version": "1.13.2", |       "version": "1.13.3", | ||||||
|       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", |       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", | ||||||
|       "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" |       "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" | ||||||
|  |     }, | ||||||
|  |     "universalify": { | ||||||
|  |       "version": "2.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", | ||||||
|  |       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" | ||||||
|     }, |     }, | ||||||
|     "uri-js": { |     "uri-js": { | ||||||
|       "version": "4.4.1", |       "version": "4.4.1", | ||||||
|  |  | ||||||
|  | @ -22,8 +22,9 @@ | ||||||
|     "@grpc/proto-loader": "^0.6.0", |     "@grpc/proto-loader": "^0.6.0", | ||||||
|     "@kubernetes/client-node": "^0.16.3", |     "@kubernetes/client-node": "^0.16.3", | ||||||
|     "async-mutex": "^0.3.1", |     "async-mutex": "^0.3.1", | ||||||
|     "axios": "^0.26.1", |     "axios": "^0.27.2", | ||||||
|     "bunyan": "^1.8.15", |     "bunyan": "^1.8.15", | ||||||
|  |     "fs-extra": "^10.1.0", | ||||||
|     "handlebars": "^4.7.7", |     "handlebars": "^4.7.7", | ||||||
|     "js-yaml": "^4.0.0", |     "js-yaml": "^4.0.0", | ||||||
|     "lodash": "^4.17.21", |     "lodash": "^4.17.21", | ||||||
|  |  | ||||||
|  | @ -3,6 +3,8 @@ const { CsiBaseDriver } = require("../index"); | ||||||
| const { GrpcError, grpc } = require("../../utils/grpc"); | const { GrpcError, grpc } = require("../../utils/grpc"); | ||||||
| const cp = require("child_process"); | const cp = require("child_process"); | ||||||
| const fs = require("fs"); | const fs = require("fs"); | ||||||
|  | const fse = require("fs-extra"); | ||||||
|  | const path = require("path"); | ||||||
| const semver = require("semver"); | const semver = require("semver"); | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -230,9 +232,14 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async getDirectoryUsage(path) { |   async getDirectoryUsage(path) { | ||||||
|     let result = await this.exec("du", ["-s", "--block-size=1", path]); |     if (this.getNodeIsWindows()) { | ||||||
|     let size = result.stdout.split("\t", 1)[0]; |       this.ctx.logger.warn("du not implemented on windows"); | ||||||
|     return size; |       return 0; | ||||||
|  |     } else { | ||||||
|  |       let result = await this.exec("du", ["-s", "--block-size=1", path]); | ||||||
|  |       let size = result.stdout.split("\t", 1)[0]; | ||||||
|  |       return size; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   exec(command, args, options = {}) { |   exec(command, args, options = {}) { | ||||||
|  | @ -297,20 +304,39 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async cloneDir(source_path, target_path) { |   async cloneDir(source_path, target_path) { | ||||||
|     await this.exec("mkdir", ["-p", target_path]); |     if (this.getNodeIsWindows()) { | ||||||
|  |       fse.copySync( | ||||||
|  |         this.stripTrailingSlash(source_path), | ||||||
|  |         this.stripTrailingSlash(target_path), | ||||||
|  |         { | ||||||
|  |           overwrite: true, | ||||||
|  |           dereference: true, | ||||||
|  |           preserveTimestamps: true, | ||||||
|  |           //errorOnExist: true,
 | ||||||
|  |         } | ||||||
|  |       ); | ||||||
|  |     } else { | ||||||
|  |       await this.createDir(target_path); | ||||||
| 
 | 
 | ||||||
|     /** |       /** | ||||||
|      * trailing / is important |        * trailing / is important | ||||||
|      * rsync -a /mnt/storage/s/foo/ /mnt/storage/v/PVC-111/ |        * rsync -a /mnt/storage/s/foo/ /mnt/storage/v/PVC-111/ | ||||||
|      */ |        */ | ||||||
|     await this.exec("rsync", [ |       await this.exec("rsync", [ | ||||||
|       "-a", |         "-a", | ||||||
|       this.stripTrailingSlash(source_path) + "/", |         this.stripTrailingSlash(source_path) + "/", | ||||||
|       this.stripTrailingSlash(target_path) + "/", |         this.stripTrailingSlash(target_path) + "/", | ||||||
|     ]); |       ]); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async getAvailableSpaceAtPath(path) { |   async getAvailableSpaceAtPath(path) { | ||||||
|  |     // https://www.npmjs.com/package/diskusage
 | ||||||
|  |     // https://www.npmjs.com/package/check-disk-space
 | ||||||
|  |     if (this.getNodeIsWindows()) { | ||||||
|  |       this.ctx.logger.warn("df not implemented on windows"); | ||||||
|  |       return 0; | ||||||
|  |     } | ||||||
|     //df --block-size=1 --output=avail /mnt/storage/
 |     //df --block-size=1 --output=avail /mnt/storage/
 | ||||||
|     //     Avail
 |     //     Avail
 | ||||||
|     //1481334328
 |     //1481334328
 | ||||||
|  | @ -325,11 +351,14 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async createDir(path) { |   async createDir(path) { | ||||||
|     await this.exec("mkdir", ["-p", path]); |     fs.mkdirSync(path, { | ||||||
|  |       recursive: true, | ||||||
|  |       mode: "755", | ||||||
|  |     }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async deleteDir(path) { |   async deleteDir(path) { | ||||||
|     await this.exec("rm", ["-rf", path]); |     fs.rmSync(path, { recursive: true, force: true }); | ||||||
| 
 | 
 | ||||||
|     return; |     return; | ||||||
| 
 | 
 | ||||||
|  | @ -346,7 +375,40 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async directoryExists(path) { |   async directoryExists(path) { | ||||||
|     return fs.existsSync(path); |     let r; | ||||||
|  |     r = fs.existsSync(path); | ||||||
|  |     if (!r) { | ||||||
|  |       return r; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (!fs.statSync(path).isDirectory()) { | ||||||
|  |       throw new Error(`path [${path}] exists but is not a directory`); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return true; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   /** | ||||||
|  |    * Have to be careful with the logic here as the controller could be running | ||||||
|  |    * on win32 for *-client vs local-hostpath | ||||||
|  |    * | ||||||
|  |    * @param {*} path | ||||||
|  |    * @returns | ||||||
|  |    */ | ||||||
|  |   async normalizePath(path) { | ||||||
|  |     if (process.platform == "win32") { | ||||||
|  |       return await this.noramlizePathWin32(path); | ||||||
|  |     } else { | ||||||
|  |       return await this.normalizePathPosix(path); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async normalizePathPosix(p) { | ||||||
|  |     return p.replaceAll(path.win32.sep, path.posix.sep); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async noramlizePathWin32(p) { | ||||||
|  |     return p.replaceAll(path.posix.sep, path.win32.sep); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|  | @ -441,7 +503,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|     //let volume_content_source_volume_id;
 |     //let volume_content_source_volume_id;
 | ||||||
| 
 | 
 | ||||||
|     // create target dir
 |     // create target dir
 | ||||||
|     response = await driver.exec("mkdir", ["-p", volume_path]); |     await driver.createDir(target_path); | ||||||
| 
 | 
 | ||||||
|     // create dataset
 |     // create dataset
 | ||||||
|     if (volume_content_source) { |     if (volume_content_source) { | ||||||
|  | @ -476,7 +538,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       driver.ctx.logger.debug("controller source path: %s", source_path); |       driver.ctx.logger.debug("controller source path: %s", source_path); | ||||||
|       response = await driver.cloneDir(source_path, volume_path); |       await driver.cloneDir(source_path, volume_path); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // set mode
 |     // set mode
 | ||||||
|  | @ -486,10 +548,7 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|         this.options[config_key].dirPermissionsMode, |         this.options[config_key].dirPermissionsMode, | ||||||
|         volume_path |         volume_path | ||||||
|       ); |       ); | ||||||
|       response = await driver.exec("chmod", [ |       fs.chmodSync(volume_path, this.options[config_key].dirPermissionsMode); | ||||||
|         this.options[config_key].dirPermissionsMode, |  | ||||||
|         volume_path, |  | ||||||
|       ]); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // set ownership
 |     // set ownership
 | ||||||
|  | @ -503,16 +562,20 @@ class ControllerClientCommonDriver extends CsiBaseDriver { | ||||||
|         this.options[config_key].dirPermissionsGroup, |         this.options[config_key].dirPermissionsGroup, | ||||||
|         volume_path |         volume_path | ||||||
|       ); |       ); | ||||||
|       response = await driver.exec("chown", [ |       if (this.getNodeIsWindows()) { | ||||||
|         (this.options[config_key].dirPermissionsUser |         driver.ctx.logger.warn("chown not implemented on windows"); | ||||||
|           ? this.options[config_key].dirPermissionsUser |       } else { | ||||||
|           : "") + |         await driver.exec("chown", [ | ||||||
|           ":" + |           (this.options[config_key].dirPermissionsUser | ||||||
|           (this.options[config_key].dirPermissionsGroup |             ? this.options[config_key].dirPermissionsUser | ||||||
|             ? this.options[config_key].dirPermissionsGroup |             : "") + | ||||||
|             : ""), |             ":" + | ||||||
|         volume_path, |             (this.options[config_key].dirPermissionsGroup | ||||||
|       ]); |               ? this.options[config_key].dirPermissionsGroup | ||||||
|  |               : ""), | ||||||
|  |           volume_path, | ||||||
|  |         ]); | ||||||
|  |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     let volume_context = driver.getVolumeContext(name); |     let volume_context = driver.getVolumeContext(name); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue