From 57f74ce665ada752430d3a5721aaffaca635f3a1 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Sun, 3 Mar 2024 14:19:46 -0700 Subject: [PATCH] wrapper script to overcome redirection + sudo behavior Signed-off-by: Travis Glenn Hansen --- Dockerfile | 4 ++++ docker/simple-file-writer | 3 +++ src/driver/freenas/ssh.js | 19 +++++++++++++++---- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100755 docker/simple-file-writer diff --git a/Dockerfile b/Dockerfile index 1dba006..3fee372 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,6 +47,7 @@ LABEL org.opencontainers.image.url https://github.com/democratic-csi/democratic- LABEL org.opencontainers.image.licenses MIT ENV DEBIAN_FRONTEND=noninteractive +ENV DEMOCRATIC_CSI_IS_CONTAINER=true ARG TARGETPLATFORM ARG BUILDPLATFORM @@ -96,6 +97,9 @@ RUN chmod +x /usr/local/sbin/iscsiadm ADD docker/multipath /usr/local/sbin RUN chmod +x /usr/local/sbin/multipath +ADD docker/simple-file-writer /usr/local/bin +RUN chmod +x /usr/local/bin/simple-file-writer + ## USE_HOST_MOUNT_TOOLS=1 ADD docker/mount /usr/local/bin/mount RUN chmod +x /usr/local/bin/mount diff --git a/docker/simple-file-writer b/docker/simple-file-writer new file mode 100755 index 0000000..fb3e37c --- /dev/null +++ b/docker/simple-file-writer @@ -0,0 +1,3 @@ +#!/bin/bash + +echo ${1} > ${2} diff --git a/src/driver/freenas/ssh.js b/src/driver/freenas/ssh.js index 3bb5635..31ba348 100644 --- a/src/driver/freenas/ssh.js +++ b/src/driver/freenas/ssh.js @@ -2021,11 +2021,22 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { * * midclt resync_lun_size_for_zvol tank/foo/bar * works on SCALE only ^ + * */ - command = execClient.buildCommand("sh", [ - "-c", - `echo 1 > /sys/kernel/scst_tgt/devices/${kName}/resync_size`, - ]); + + if (process.env.DEMOCRATIC_CSI_IS_CONTAINER == "true") { + // TODO: syntax fails with sudo + command = execClient.buildCommand("sh", [ + "-c", + `echo 1 > /sys/kernel/scst_tgt/devices/${kName}/resync_size`, + ]); + } else { + // use the built-in wrapper script that works with sudo + command = execClient.buildCommand("simple-file-writer", [ + "1", + `/sys/kernel/scst_tgt/devices/${kName}/resync_size`, + ]); + } reload = true; } else { switch (apiVersion) {