generateMountCmds()

in src/webportal/src/app/job-submission/models/data/mount-directories.js [232:306]


  generateMountCmds(serverData, mountPoint, relativePath, tmpFolder) {
    const serverType = serverData.type;
    switch (serverType) {
      case 'nfs':
        return [
          `mount -t nfs4 ${serverData.address}:${this.normalizePath(
            serverData.rootPath + '/' + relativePath,
          )} ${mountPoint}`,
        ];
      case 'samba':
        return [
          `mount -t cifs //${serverData.address}${this.normalizePath(
            '/' + serverData.rootPath + '/' + relativePath,
          )} ${mountPoint} -o vers=3.0,username=${
            serverData.userName
          },password=${serverData.password}` +
            (serverData.domain !== undefined && serverData.domain.length > 0
              ? `,domain=${serverData.domain}`
              : ''),
        ];
      case 'azurefile':
        if (serverData.proxy !== undefined) {
          return [
            `mount -t cifs //localhost/${this.normalizePath(
              serverData.fileShare + '/' + relativePath,
            )} ${mountPoint} -o vers=3.0,username=${
              serverData.accountName
            },password=${
              serverData.key
            },dir_mode=0777,file_mode=0777,serverino`,
          ];
        } else {
          return [
            `mount -t cifs //${serverData.dataStore}/${this.normalizePath(
              serverData.fileShare + '/' + relativePath,
            )} ${mountPoint} -o vers=3.0,username=${
              serverData.accountName
            },password=${
              serverData.key
            },dir_mode=0777,file_mode=0777,serverino`,
          ];
        }
      case 'azureblob':
      case 'hdfs':
        if (mountPoint === tmpFolder) {
          if (serverType === 'azureblob') {
            // Mount azureblob endpoint
            const tmpPath = `/mnt/resource/blobfusetmp/${serverData.spn}`;
            const cfgFile = `/${serverData.spn}.cfg`;
            return [
              `blobfuse ${tmpFolder} --tmp-path=${tmpPath} --config-file=${cfgFile} -o attr_timeout=240 ` +
                `-o entry_timeout=240 -o negative_timeout=120`,
            ];
          } else if (serverType === 'hdfs') {
            return [
              `(hdfs-mount ${serverData.namenode}:${serverData.port} ${mountPoint} &)`,
              // sleep to wait until mount
              'sleep 3',
            ];
          }
        } else {
          // ln azureblob sub folder
          return [
            // remove mountPoint folder first. Otherwise will create soft link under mountPoint
            `rm -r ${mountPoint}`,
            `ln -s ${this.normalizePath(
              tmpFolder + relativePath,
            )} ${mountPoint}`,
          ];
        }
        break;
      default:
        return undefined;
    }
  }