Unverified Commit e85f029b authored by SparkSnail's avatar SparkSnail Committed by GitHub
Browse files

Fix env folder (#3472)

parent 4338bcb7
...@@ -34,6 +34,7 @@ export class RemoteEnvironmentService extends EnvironmentService { ...@@ -34,6 +34,7 @@ export class RemoteEnvironmentService extends EnvironmentService {
private readonly log: Logger; private readonly log: Logger;
private sshConnectionPromises: any[]; private sshConnectionPromises: any[];
private experimentRootDir: string; private experimentRootDir: string;
private remoteExperimentRootDir: string = "";
private experimentId: string; private experimentId: string;
constructor() { constructor() {
...@@ -249,16 +250,14 @@ export class RemoteEnvironmentService extends EnvironmentService { ...@@ -249,16 +250,14 @@ export class RemoteEnvironmentService extends EnvironmentService {
this.environmentExecutorManagerMap.set(environment.id, executorManager); this.environmentExecutorManagerMap.set(environment.id, executorManager);
const executor = await this.getExecutor(environment.id); const executor = await this.getExecutor(environment.id);
if (environment.useSharedStorage) { if (environment.useSharedStorage) {
const environmentRoot = component.get<SharedStorageService>(SharedStorageService).remoteWorkingRoot; this.remoteExperimentRootDir = component.get<SharedStorageService>(SharedStorageService).remoteWorkingRoot;
environment.runnerWorkingFolder = executor.joinPath(environmentRoot, 'envs', environment.id)
const remoteMountCommand = component.get<SharedStorageService>(SharedStorageService).remoteMountCommand; const remoteMountCommand = component.get<SharedStorageService>(SharedStorageService).remoteMountCommand;
await executor.executeScript(remoteMountCommand, false, false); await executor.executeScript(remoteMountCommand, false, false);
} else { } else {
environment.runnerWorkingFolder = this.remoteExperimentRootDir = executor.getRemoteExperimentRootDir(getExperimentId());
executor.joinPath(executor.getRemoteExperimentRootDir(getExperimentId()),
'envs', environment.id)
} }
environment.command = `cd ${environment.runnerWorkingFolder} && \ environment.runnerWorkingFolder = executor.joinPath(this.remoteExperimentRootDir, 'envs', environment.id);
environment.command = `cd ${this.remoteExperimentRootDir} && \
${environment.command} --job_pid_file ${environment.runnerWorkingFolder}/pid \ ${environment.command} --job_pid_file ${environment.runnerWorkingFolder}/pid \
1>${environment.runnerWorkingFolder}/trialrunner_stdout 2>${environment.runnerWorkingFolder}/trialrunner_stderr \ 1>${environment.runnerWorkingFolder}/trialrunner_stdout 2>${environment.runnerWorkingFolder}/trialrunner_stderr \
&& echo $? \`date +%s%3N\` >${environment.runnerWorkingFolder}/code`; && echo $? \`date +%s%3N\` >${environment.runnerWorkingFolder}/code`;
...@@ -278,7 +277,7 @@ export class RemoteEnvironmentService extends EnvironmentService { ...@@ -278,7 +277,7 @@ export class RemoteEnvironmentService extends EnvironmentService {
await fs.promises.writeFile(path.join(environmentLocalTempFolder, executor.getScriptName("run")), await fs.promises.writeFile(path.join(environmentLocalTempFolder, executor.getScriptName("run")),
environment.command, { encoding: 'utf8' }); environment.command, { encoding: 'utf8' });
// Copy files in codeDir to remote working directory // Copy files in codeDir to remote working directory
await executor.copyDirectoryToRemote(environmentLocalTempFolder, environment.runnerWorkingFolder); await executor.copyDirectoryToRemote(environmentLocalTempFolder, this.remoteExperimentRootDir);
// Execute command in remote machine, set isInteractive=true to run script in conda environment // Execute command in remote machine, set isInteractive=true to run script in conda environment
executor.executeScript(executor.joinPath(environment.runnerWorkingFolder, executor.executeScript(executor.joinPath(environment.runnerWorkingFolder,
executor.getScriptName("run")), true, true); executor.getScriptName("run")), true, true);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment