From ed4a065b6b2cd2aa37d59baed72820ab04c4a0f5 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 6 Apr 2022 12:18:05 -0600 Subject: [PATCH] fix invalid syntax Signed-off-by: Travis Glenn Hansen --- Dockerfile.unified | 59 ---------------------- bin/democratic-csi | 2 +- src/driver/controller-zfs-generic/index.js | 2 +- src/driver/controller-zfs-local/index.js | 14 ++--- src/driver/freenas/api.js | 2 +- src/driver/freenas/ssh.js | 36 ++++++------- src/utils/registry.js | 16 ++++++ 7 files changed, 45 insertions(+), 86 deletions(-) delete mode 100644 Dockerfile.unified diff --git a/Dockerfile.unified b/Dockerfile.unified deleted file mode 100644 index cf4db53..0000000 --- a/Dockerfile.unified +++ /dev/null @@ -1,59 +0,0 @@ -FROM debian:10-slim - -ENV DEBIAN_FRONTEND=noninteractive - -ARG TARGETPLATFORM -ARG BUILDPLATFORM - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 - -ENV LANG=en_US.utf8 NODE_VERSION=v12.20.0 - -RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" - -# install node -RUN apt-get update && apt-get install -y wget xz-utils -ADD docker/node-installer.sh /usr/local/sbin -RUN chmod +x /usr/local/sbin/node-installer.sh && node-installer.sh -ENV PATH=/usr/local/lib/nodejs/bin:$PATH - -# node service requirements -RUN apt-get update && \ - apt-get install -y e2fsprogs xfsprogs fatresize dosfstools nfs-common cifs-utils sudo && \ - rm -rf /var/lib/apt/lists/* - -# controller requirements -RUN apt-get update && \ - apt-get install -y ansible && \ - rm -rf /var/lib/apt/lists/* - -# npm requirements -# gcc and g++ required by grpc-usd until proper upstream support -RUN apt-get update && \ - apt-get install -y python make gcc g++ && \ - rm -rf /var/lib/apt/lists/* - -# install wrappers -ADD docker/iscsiadm /usr/local/sbin -RUN chmod +x /usr/local/sbin/iscsiadm - -ADD docker/multipath /usr/local/sbin -RUN chmod +x /usr/local/sbin/multipath - -# Run as a non-root user -RUN useradd --create-home csi \ - && mkdir /home/csi/app \ - && chown -R csi: /home/csi -WORKDIR /home/csi/app -USER csi - -COPY package*.json ./ -RUN npm install - -COPY --chown=csi:csi . . - -USER root - -EXPOSE 50051 -ENTRYPOINT [ "bin/democratic-csi" ] diff --git a/bin/democratic-csi b/bin/democratic-csi index 9748a63..0a51f2e 100755 --- a/bin/democratic-csi +++ b/bin/democratic-csi @@ -115,7 +115,7 @@ try { options ); } catch (err) { - logger.error(err.toString()); + logger.error(`${err.toString()} ${err.stack}`); process.exit(1); } diff --git a/src/driver/controller-zfs-generic/index.js b/src/driver/controller-zfs-generic/index.js index bd1d7fd..db27b62 100644 --- a/src/driver/controller-zfs-generic/index.js +++ b/src/driver/controller-zfs-generic/index.js @@ -21,7 +21,7 @@ class ControllerZfsGenericDriver extends ControllerZfsBaseDriver { } async getZetabyte() { - return registry.get(`${__REGISTRY_NS__}:zb`, () => { + return registry.getAsync(`${__REGISTRY_NS__}:zb`, async () => { const execClient = this.getExecClient(); const options = {}; options.executor = new ZfsSshProcessManager(execClient); diff --git a/src/driver/controller-zfs-local/index.js b/src/driver/controller-zfs-local/index.js index d5cd110..04f1a17 100644 --- a/src/driver/controller-zfs-local/index.js +++ b/src/driver/controller-zfs-local/index.js @@ -35,17 +35,17 @@ class ControllerZfsLocalDriver extends ControllerZfsBaseDriver { return new LocalCliExecClient({ logger: this.ctx.logger, }); - }) + }); } async getZetabyte() { - return registry.get(`${__REGISTRY_NS__}:zb`, () => { + return registry.getAsync(`${__REGISTRY_NS__}:zb`, async () => { const execClient = this.getExecClient(); const options = {}; options.executor = execClient; options.idempotent = true; - + /* if ( this.options.zfs.hasOwnProperty("cli") && @@ -55,7 +55,7 @@ class ControllerZfsLocalDriver extends ControllerZfsBaseDriver { options.paths = this.options.zfs.cli.paths; } */ - + // use env based paths to allow for custom wrapper scripts to chroot to the host options.paths = { zfs: "zfs", @@ -63,13 +63,13 @@ class ControllerZfsLocalDriver extends ControllerZfsBaseDriver { sudo: "sudo", chroot: "chroot", }; - + options.sudo = _.get(this.options, "zfs.cli.sudoEnabled", false); - + if (typeof this.setZetabyteCustomOptions === "function") { await this.setZetabyteCustomOptions(options); } - + return new Zetabyte(options); }); } diff --git a/src/driver/freenas/api.js b/src/driver/freenas/api.js index e42178c..f436ff9 100644 --- a/src/driver/freenas/api.js +++ b/src/driver/freenas/api.js @@ -1909,7 +1909,7 @@ class FreeNASApiDriver extends CsiBaseDriver { } async getTrueNASHttpApiClient() { - return registry.get(`${__REGISTRY_NS__}:api_client`, () => { + return registry.getAsync(`${__REGISTRY_NS__}:api_client`, async () => { const httpClient = await this.getHttpClient(); return new TrueNASApiClient(httpClient, this.ctx.cache); }); diff --git a/src/driver/freenas/ssh.js b/src/driver/freenas/ssh.js index ec06a4c..12c3821 100644 --- a/src/driver/freenas/ssh.js +++ b/src/driver/freenas/ssh.js @@ -36,12 +36,12 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { } async getZetabyte() { - return registry.get(`${__REGISTRY_NS__}:zb`, () => { + return registry.getAsync(`${__REGISTRY_NS__}:zb`, async () => { const sshClient = this.getExecClient(); const options = {}; options.executor = new ZfsSshProcessManager(sshClient); options.idempotent = true; - + if ( this.options.zfs.hasOwnProperty("cli") && this.options.zfs.cli && @@ -49,13 +49,13 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { ) { options.paths = this.options.zfs.cli.paths; } - + options.sudo = _.get(this.options, "zfs.cli.sudoEnabled", false); - + if (typeof this.setZetabyteCustomOptions === "function") { await this.setZetabyteCustomOptions(options); } - + return new Zetabyte(options); }); } @@ -95,19 +95,21 @@ class FreeNASSshDriver extends ControllerZfsBaseDriver { } async getHttpClient(autoDetectVersion = true) { - const autodetectkey = autoDetectVersion === true ? 1 : 0 - return registry.get(`${__REGISTRY_NS__}:http_client:autoDetectVersion_${autodetectkey}`, () => { - const client = new HttpClient(this.options.httpConnection); - client.logger = this.ctx.logger; - - if (autoDetectVersion && !!!this.options.httpConnection.apiVersion) { - const apiVersion = await this.getApiVersion(); - client.setApiVersion(apiVersion); + const autodetectkey = autoDetectVersion === true ? 1 : 0; + return registry.getAsync( + `${__REGISTRY_NS__}:http_client:autoDetectVersion_${autodetectkey}`, + async () => { + const client = new HttpClient(this.options.httpConnection); + client.logger = this.ctx.logger; + + if (autoDetectVersion && !!!this.options.httpConnection.apiVersion) { + const apiVersion = await this.getApiVersion(); + client.setApiVersion(apiVersion); + } + + return client; } - - return client; - }); - + ); } getDriverShareType() { diff --git a/src/utils/registry.js b/src/utils/registry.js index e4e6cd2..b84944e 100644 --- a/src/utils/registry.js +++ b/src/utils/registry.js @@ -27,6 +27,22 @@ class Registry { } } + async getAsync(key, initialValue = null) { + const val = this.data[key]; + if (val) { + return val; + } + + if (typeof initialValue == "function") { + initialValue = await initialValue(); + } + + if (initialValue) { + this.put(key, initialValue); + return this.data[key]; + } + } + delete(key) { delete this.data[key]; }