Unverified Commit 5fc73ba6 authored by liuzhe-lz's avatar liuzhe-lz Committed by GitHub
Browse files

Refactor NNI Manager UT (Stage 1) - setup toolchain (#4109)

parent 2b9f5f8c
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import { getLogger, Logger } from "common/log";
import { TrialJobStatus } from "common/trainingService";
import { getLogger, Logger } from "../../common/log"; import { GPUInfo } from "training_service/common/gpuData";
import { TrialJobStatus } from "../../common/trainingService";
import { GPUInfo } from "../../training_service/common/gpuData";
import { CommandChannel } from "./commandChannel"; import { CommandChannel } from "./commandChannel";
import { WebCommandChannel } from './channels/webCommandChannel'; import { WebCommandChannel } from './channels/webCommandChannel';
import { EventEmitter } from "events"; import { EventEmitter } from "events";
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import path from 'path';
import * as fs from 'fs'; import * as component from 'common/component';
import * as path from 'path'; import { getLogger, Logger } from 'common/log';
import * as component from '../../../common/component'; import { ExperimentConfig, AmlConfig, flattenConfig } from 'common/experimentConfig';
import { getLogger, Logger } from '../../../common/log'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { ExperimentConfig, AmlConfig, flattenConfig } from '../../../common/experimentConfig'; import { validateCodeDir } from 'training_service/common/util';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo';
import { validateCodeDir } from '../../common/util';
import { AMLClient } from '../aml/amlClient'; import { AMLClient } from '../aml/amlClient';
import { AMLEnvironmentInformation } from '../aml/amlConfig'; import { AMLEnvironmentInformation } from '../aml/amlConfig';
import { EnvironmentInformation, EnvironmentService } from '../environment'; import { EnvironmentInformation, EnvironmentService } from '../environment';
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import path from 'path';
import * as fs from 'fs'; import * as component from 'common/component';
import * as path from 'path'; import { getLogger, Logger } from 'common/log';
import * as component from '../../../common/component'; import { ExperimentConfig, DlcConfig, flattenConfig } from 'common/experimentConfig';
import { getLogger, Logger } from '../../../common/log'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { ExperimentConfig, DlcConfig, flattenConfig } from '../../../common/experimentConfig';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo';
import { DlcClient } from '../dlc/dlcClient'; import { DlcClient } from '../dlc/dlcClient';
import { DlcEnvironmentInformation } from '../dlc/dlcConfig'; import { DlcEnvironmentInformation } from '../dlc/dlcConfig';
import { EnvironmentInformation, EnvironmentService } from '../environment'; import { EnvironmentInformation, EnvironmentService } from '../environment';
......
...@@ -4,10 +4,10 @@ import { LocalEnvironmentService } from './localEnvironmentService'; ...@@ -4,10 +4,10 @@ import { LocalEnvironmentService } from './localEnvironmentService';
import { RemoteEnvironmentService } from './remoteEnvironmentService'; import { RemoteEnvironmentService } from './remoteEnvironmentService';
import { KubeflowEnvironmentService } from './kubernetes/kubeflowEnvironmentService'; import { KubeflowEnvironmentService } from './kubernetes/kubeflowEnvironmentService';
import { EnvironmentService } from '../environment'; import { EnvironmentService } from '../environment';
import { ExperimentConfig } from '../../../common/experimentConfig'; import { ExperimentConfig } from 'common/experimentConfig';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { getCustomEnvironmentServiceConfig } from '../../../common/nniConfig'; import { getCustomEnvironmentServiceConfig } from 'common/nniConfig';
import { importModule } from '../../../common/utils'; import { importModule } from 'common/utils';
import { DlcEnvironmentService } from './dlcEnvironmentService'; import { DlcEnvironmentService } from './dlcEnvironmentService';
export async function createEnvironmentService(name: string, config: ExperimentConfig): Promise<EnvironmentService> { export async function createEnvironmentService(name: string, config: ExperimentConfig): Promise<EnvironmentService> {
...@@ -35,4 +35,4 @@ export async function createEnvironmentService(name: string, config: ExperimentC ...@@ -35,4 +35,4 @@ export async function createEnvironmentService(name: string, config: ExperimentC
const esModule = importModule(esConfig.nodeModulePath); const esModule = importModule(esConfig.nodeModulePath);
const esClass = esModule[esConfig.nodeClassName] as any; const esClass = esModule[esConfig.nodeClassName] as any;
return new esClass(config, info); return new esClass(config, info);
} }
\ No newline at end of file
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import path from 'path';
import * as fs from 'fs'; import * as component from 'common/component';
import * as path from 'path'; import { ExperimentConfig, KubeflowConfig, flattenConfig } from 'common/experimentConfig';
import * as component from '../../../../common/component'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { ExperimentConfig, KubeflowConfig, flattenConfig } from '../../../../common/experimentConfig'; import { EnvironmentInformation } from 'training_service/reusable/environment';
import { ExperimentStartupInfo } from '../../../../common/experimentStartupInfo';
import { EnvironmentInformation } from '../../environment';
import { KubernetesEnvironmentService } from './kubernetesEnvironmentService'; import { KubernetesEnvironmentService } from './kubernetesEnvironmentService';
import { KubeflowOperatorClientFactory } from '../../../kubernetes/kubeflow/kubeflowApiClient'; import { KubeflowOperatorClientFactory } from 'training_service/kubernetes/kubeflow/kubeflowApiClient';
import { KubeflowClusterConfigAzure } from '../../../kubernetes/kubeflow/kubeflowConfig'; import { KubeflowClusterConfigAzure } from 'training_service/kubernetes/kubeflow/kubeflowConfig';
import { KeyVaultConfig, AzureStorage } from '../../../kubernetes/kubernetesConfig'; import { KeyVaultConfig, AzureStorage } from 'training_service/kubernetes/kubernetesConfig';
interface FlattenKubeflowConfig extends ExperimentConfig, KubeflowConfig { } interface FlattenKubeflowConfig extends ExperimentConfig, KubeflowConfig { }
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import cpp from 'child-process-promise';
import path from 'path';
import * as cpp from 'child-process-promise'; import azureStorage from 'azure-storage';
import * as path from 'path';
import * as azureStorage from 'azure-storage';
import {Base64} from 'js-base64'; import {Base64} from 'js-base64';
import {String} from 'typescript-string-operations'; import {String} from 'typescript-string-operations';
import { ExperimentConfig } from '../../../../common/experimentConfig'; import { ExperimentConfig } from 'common/experimentConfig';
import { ExperimentStartupInfo } from '../../../../common/experimentStartupInfo'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { getLogger, Logger } from '../../../../common/log'; import { getLogger, Logger } from 'common/log';
import { EnvironmentInformation, EnvironmentService } from '../../environment'; import { EnvironmentInformation, EnvironmentService } from 'training_service/reusable/environment';
import {GeneralK8sClient, KubernetesCRDClient} from '../../../kubernetes/kubernetesApiClient'; import {GeneralK8sClient, KubernetesCRDClient} from 'training_service/kubernetes/kubernetesApiClient';
import {AzureStorageClientUtility} from '../../../kubernetes/azureStorageClientUtils'; import {AzureStorageClientUtility} from 'training_service/kubernetes/azureStorageClientUtils';
import { KubeflowJobStatus } from '../../../kubernetes/kubeflow/kubeflowConfig'; import { KubeflowJobStatus } from 'training_service/kubernetes/kubeflow/kubeflowConfig';
import {delay, uniqueString} from '../../../../common/utils'; import {delay, uniqueString} from 'common/utils';
const fs = require('fs'); const fs = require('fs');
export class KubernetesEnvironmentService extends EnvironmentService { export class KubernetesEnvironmentService extends EnvironmentService {
...@@ -35,7 +33,7 @@ export class KubernetesEnvironmentService extends EnvironmentService { ...@@ -35,7 +33,7 @@ export class KubernetesEnvironmentService extends EnvironmentService {
protected log: Logger = getLogger('KubernetesEnvironmentService'); protected log: Logger = getLogger('KubernetesEnvironmentService');
protected environmentWorkingFolder: string; protected environmentWorkingFolder: string;
constructor(config: ExperimentConfig, info: ExperimentStartupInfo) { constructor(_config: ExperimentConfig, info: ExperimentStartupInfo) {
super(); super();
this.CONTAINER_MOUNT_PATH = '/tmp/mount'; this.CONTAINER_MOUNT_PATH = '/tmp/mount';
this.genericK8sClient = new GeneralK8sClient(); this.genericK8sClient = new GeneralK8sClient();
...@@ -234,7 +232,7 @@ export class KubernetesEnvironmentService extends EnvironmentService { ...@@ -234,7 +232,7 @@ export class KubernetesEnvironmentService extends EnvironmentService {
}); });
} }
public async startEnvironment(environment: EnvironmentInformation): Promise<void> { public async startEnvironment(_environment: EnvironmentInformation): Promise<void> {
throw new Error("Not implemented"); throw new Error("Not implemented");
} }
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import path from 'path';
import * as fs from 'fs'; import tkill from 'tree-kill';
import * as path from 'path'; import * as component from 'common/component';
import * as tkill from 'tree-kill'; import { getLogger, Logger } from 'common/log';
import * as component from '../../../common/component'; import { ExperimentConfig } from 'common/experimentConfig';
import { getLogger, Logger } from '../../../common/log'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { ExperimentConfig } from '../../../common/experimentConfig'; import { powershellString } from 'common/shellUtils';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo';
import { powershellString } from '../../../common/shellUtils';
import { EnvironmentInformation, EnvironmentService } from '../environment'; import { EnvironmentInformation, EnvironmentService } from '../environment';
import { isAlive, getNewLine } from '../../../common/utils'; import { isAlive, getNewLine } from 'common/utils';
import { execMkdir, runScript, getScriptName, execCopydir } from '../../common/util'; import { execMkdir, runScript, getScriptName, execCopydir } from 'training_service/common/util';
import { SharedStorageService } from '../sharedStorage' import { SharedStorageService } from '../sharedStorage'
@component.Singleton @component.Singleton
...@@ -81,7 +79,7 @@ export class LocalEnvironmentService extends EnvironmentService { ...@@ -81,7 +79,7 @@ export class LocalEnvironmentService extends EnvironmentService {
private getScript(environment: EnvironmentInformation): string[] { private getScript(environment: EnvironmentInformation): string[] {
const script: string[] = []; const script: string[] = [];
if (process.platform === 'win32') { if (process.platform === 'win32') {
script.push(`$env:PATH=${powershellString(process.env.path!)}`) script.push(`$env:PATH=${powershellString(process.env['path']!)}`)
script.push(`cd $env:${this.experimentRootDir}`); script.push(`cd $env:${this.experimentRootDir}`);
script.push(`New-Item -ItemType "directory" -Path ${path.join(this.experimentRootDir, 'envs', environment.id)} -Force`); script.push(`New-Item -ItemType "directory" -Path ${path.join(this.experimentRootDir, 'envs', environment.id)} -Force`);
script.push(`cd envs\\${environment.id}`); script.push(`cd envs\\${environment.id}`);
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import yaml from 'js-yaml';
import request from 'request';
import * as yaml from 'js-yaml';
import * as request from 'request';
import { Container, Scope } from 'typescript-ioc'; import { Container, Scope } from 'typescript-ioc';
import { Deferred } from 'ts-deferred'; import { Deferred } from 'ts-deferred';
import * as component from '../../../common/component'; import * as component from 'common/component';
import { ExperimentConfig, OpenpaiConfig, flattenConfig, toMegaBytes } from '../../../common/experimentConfig'; import { ExperimentConfig, OpenpaiConfig, flattenConfig, toMegaBytes } from 'common/experimentConfig';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { getLogger, Logger } from '../../../common/log'; import { getLogger, Logger } from 'common/log';
import { PAIClusterConfig } from '../../pai/paiConfig'; import { PAIClusterConfig } from 'training_service/pai/paiConfig';
import { NNIPAITrialConfig } from '../../pai/paiConfig'; import { NNIPAITrialConfig } from 'training_service/pai/paiConfig';
import { EnvironmentInformation, EnvironmentService } from '../environment'; import { EnvironmentInformation, EnvironmentService } from '../environment';
import { SharedStorageService } from '../sharedStorage'; import { SharedStorageService } from '../sharedStorage';
import { MountedStorageService } from '../storages/mountedStorageService'; import { MountedStorageService } from '../storages/mountedStorageService';
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import path from 'path';
import * as fs from 'fs'; import * as component from 'common/component';
import * as path from 'path'; import { getLogger, Logger } from 'common/log';
import * as component from '../../../common/component';
import { getLogger, Logger } from '../../../common/log';
import { EnvironmentInformation, EnvironmentService } from '../environment'; import { EnvironmentInformation, EnvironmentService } from '../environment';
import { getLogLevel } from '../../../common/utils'; import { getLogLevel } from 'common/utils';
import { ExperimentConfig, RemoteConfig, RemoteMachineConfig, flattenConfig } from '../../../common/experimentConfig'; import { ExperimentConfig, RemoteConfig, RemoteMachineConfig, flattenConfig } from 'common/experimentConfig';
import { ExperimentStartupInfo } from '../../../common/experimentStartupInfo'; import { ExperimentStartupInfo } from 'common/experimentStartupInfo';
import { execMkdir } from '../../common/util'; import { execMkdir } from 'training_service/common/util';
import { ExecutorManager } from '../../remote_machine/remoteMachineData'; import { ExecutorManager } from 'training_service/remote_machine/remoteMachineData';
import { ShellExecutor } from 'training_service/remote_machine/shellExecutor'; import { ShellExecutor } from 'training_service/remote_machine/shellExecutor';
import { RemoteMachineEnvironmentInformation } from '../remote/remoteConfig'; import { RemoteMachineEnvironmentInformation } from '../remote/remoteConfig';
import { SharedStorageService } from '../sharedStorage' import { SharedStorageService } from '../sharedStorage'
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import assert from 'assert';
import * as assert from 'assert';
import { PlacementConstraint } from 'common/trainingService'; import { PlacementConstraint } from 'common/trainingService';
import { getLogger, Logger } from '../../common/log'; import { getLogger, Logger } from 'common/log';
import { randomSelect } from '../../common/utils'; import { randomSelect } from 'common/utils';
import { GPUInfo, ScheduleResultType } from '../common/gpuData'; import { GPUInfo, ScheduleResultType } from '../common/gpuData';
import { EnvironmentInformation } from './environment'; import { EnvironmentInformation } from './environment';
import { RemoteMachineEnvironmentInformation } from './remote/remoteConfig'; import { RemoteMachineEnvironmentInformation } from './remote/remoteConfig';
...@@ -232,6 +230,7 @@ export class GpuScheduler { ...@@ -232,6 +230,7 @@ export class GpuScheduler {
assert(false, 'gpuInfos is undefined'); assert(false, 'gpuInfos is undefined');
} }
} }
return undefined;
} }
/** /**
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Licensed under the MIT license. // Licensed under the MIT license.
import { EnvironmentInformation } from '../environment'; import { EnvironmentInformation } from '../environment';
import { RemoteMachineConfig } from '../../../common/experimentConfig'; import { RemoteMachineConfig } from 'common/experimentConfig';
/** /**
* RemoteMachineEnvironmentInformation * RemoteMachineEnvironmentInformation
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import { getLogger, Logger } from 'common/log';
import { MethodNotImplementedError } from 'common/errors';
import { getLogger, Logger } from '../../common/log'; import { ExperimentConfig, RemoteConfig, OpenpaiConfig, KubeflowConfig } from 'common/experimentConfig';
import { MethodNotImplementedError } from '../../common/errors'; import { TrainingService, TrialJobApplicationForm, TrialJobDetail, TrialJobMetric } from 'common/trainingService';
import { ExperimentConfig, RemoteConfig, OpenpaiConfig, KubeflowConfig } from '../../common/experimentConfig'; import { delay } from 'common/utils';
import { TrainingService, TrialJobApplicationForm, TrialJobDetail, TrialJobMetric } from '../../common/trainingService';
import { delay } from '../../common/utils';
import { PAITrainingService } from '../pai/paiTrainingService'; import { PAITrainingService } from '../pai/paiTrainingService';
import { RemoteMachineTrainingService } from '../remote_machine/remoteMachineTrainingService'; import { RemoteMachineTrainingService } from '../remote_machine/remoteMachineTrainingService';
import { KubeflowTrainingService } from '../kubernetes/kubeflow/kubeflowTrainingService'; import { KubeflowTrainingService } from '../kubernetes/kubeflow/kubeflowTrainingService';
...@@ -128,4 +126,4 @@ class RouterTrainingService implements TrainingService { ...@@ -128,4 +126,4 @@ class RouterTrainingService implements TrainingService {
} }
} }
export { RouterTrainingService }; export { RouterTrainingService };
\ No newline at end of file
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import { SharedStorageConfig } from 'common/experimentConfig';
import { SharedStorageConfig } from '../../common/experimentConfig';
import { StorageService } from './storageService' import { StorageService } from './storageService'
export type SharedStorageType = 'NFS' | 'AzureBlob' export type SharedStorageType = 'NFS' | 'AzureBlob'
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import cpp from 'child-process-promise';
import path from 'path';
import * as cpp from 'child-process-promise';
import * as path from 'path';
import { SharedStorageService, SharedStorageType } from '../sharedStorage' import { SharedStorageService, SharedStorageType } from '../sharedStorage'
import { MountedStorageService } from '../storages/mountedStorageService'; import { MountedStorageService } from '../storages/mountedStorageService';
import { getLogger, Logger } from '../../../common/log'; import { getLogger, Logger } from 'common/log';
import { getExperimentId } from '../../../common/experimentStartupInfo'; import { getExperimentId } from 'common/experimentStartupInfo';
import { AzureBlobConfig } from '../../../common/experimentConfig'; import { AzureBlobConfig } from 'common/experimentConfig';
const INSTALL_BLOBFUSE = ` const INSTALL_BLOBFUSE = `
#!/bin/bash #!/bin/bash
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import cpp from 'child-process-promise';
import path from 'path';
import * as cpp from 'child-process-promise';
import * as path from 'path';
import { SharedStorageService, SharedStorageType } from '../sharedStorage' import { SharedStorageService, SharedStorageType } from '../sharedStorage'
import { MountedStorageService } from '../storages/mountedStorageService'; import { MountedStorageService } from '../storages/mountedStorageService';
import { getLogger, Logger } from '../../../common/log'; import { getLogger, Logger } from 'common/log';
import { getExperimentId } from '../../../common/experimentStartupInfo'; import { getExperimentId } from 'common/experimentStartupInfo';
import { NfsConfig } from '../../../common/experimentConfig'; import { NfsConfig } from 'common/experimentConfig';
const INSTALL_NFS_CLIENT = ` const INSTALL_NFS_CLIENT = `
#!/bin/bash #!/bin/bash
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import fs from 'fs';
import os from 'os';
import * as fs from 'fs'; import path from 'path';
import * as os from 'os'; import { getLogger, Logger } from 'common/log';
import * as path from 'path'; import { uniqueString } from 'common/utils';
import { getLogger, Logger } from '../../common/log';
import { uniqueString } from '../../common/utils';
import { tarAdd } from '../common/util'; import { tarAdd } from '../common/util';
export abstract class StorageService { export abstract class StorageService {
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
import * as fs from 'fs'; import fs from 'fs';
import * as path from 'path'; import path from 'path';
import { Deferred } from "ts-deferred"; import { Deferred } from "ts-deferred";
import { StorageService } from "../storageService"; import { StorageService } from "../storageService";
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict'; import { TrialJobApplicationForm, TrialJobDetail, TrialJobStatus } from "common/trainingService";
import { GPUInfo } from "training_service/common/gpuData";
import { TrialJobApplicationForm, TrialJobDetail, TrialJobStatus } from "../../common/trainingService";
import { GPUInfo } from "../../training_service/common/gpuData";
import { EnvironmentInformation, NodeInformation } from "./environment"; import { EnvironmentInformation, NodeInformation } from "./environment";
export class TrialDetail implements TrialJobDetail { export class TrialDetail implements TrialJobDetail {
......
// Copyright (c) Microsoft Corporation. // Copyright (c) Microsoft Corporation.
// Licensed under the MIT license. // Licensed under the MIT license.
'use strict';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
import * as fs from 'fs'; import fs from 'fs';
import * as path from 'path'; import path from 'path';
import { Writable } from 'stream'; import { Writable } from 'stream';
import { Container, Scope } from 'typescript-ioc'; import { Container, Scope } from 'typescript-ioc';
import { String } from 'typescript-string-operations'; import { String } from 'typescript-string-operations';
import * as component from '../../common/component'; import * as component from 'common/component';
import { NNIError, NNIErrorNames, MethodNotImplementedError } from '../../common/errors'; import { NNIError, NNIErrorNames, MethodNotImplementedError } from 'common/errors';
import { getBasePort, getExperimentId } from '../../common/experimentStartupInfo'; import { getBasePort, getExperimentId } from 'common/experimentStartupInfo';
import { getLogger, Logger } from '../../common/log'; import { getLogger, Logger } from 'common/log';
import { TrainingService, TrialJobApplicationForm, TrialJobMetric, TrialJobStatus } from '../../common/trainingService'; import { TrainingService, TrialJobApplicationForm, TrialJobMetric, TrialJobStatus } from 'common/trainingService';
import { delay, getExperimentRootDir, getIPV4Address, getLogLevel, getVersion, mkDirPSync, randomSelect, uniqueString } from '../../common/utils'; import { delay, getExperimentRootDir, getIPV4Address, getLogLevel, getVersion, mkDirPSync, randomSelect, uniqueString } from 'common/utils';
import { ExperimentConfig, SharedStorageConfig } from '../../common/experimentConfig'; import { ExperimentConfig, SharedStorageConfig } from 'common/experimentConfig';
import { GPU_INFO, INITIALIZED, KILL_TRIAL_JOB, NEW_TRIAL_JOB, REPORT_METRIC_DATA, SEND_TRIAL_JOB_PARAMETER, STDOUT, TRIAL_END, VERSION_CHECK } from '../../core/commands'; import { GPU_INFO, INITIALIZED, KILL_TRIAL_JOB, NEW_TRIAL_JOB, REPORT_METRIC_DATA, SEND_TRIAL_JOB_PARAMETER, STDOUT, TRIAL_END, VERSION_CHECK } from 'core/commands';
import { ScheduleResultType } from '../../training_service/common/gpuData'; import { ScheduleResultType } from 'training_service/common/gpuData';
import { CONTAINER_INSTALL_NNI_SHELL_FORMAT } from '../common/containerJobData'; import { CONTAINER_INSTALL_NNI_SHELL_FORMAT } from '../common/containerJobData';
import { CONTAINER_INSTALL_NNI_SHELL_FORMAT_FOR_WIN } from '../common/containerJobData'; import { CONTAINER_INSTALL_NNI_SHELL_FORMAT_FOR_WIN } from '../common/containerJobData';
import { TrialConfig } from '../common/trialConfig'; import { TrialConfig } from '../common/trialConfig';
......
{ {
"include": [
"common/**/*",
"core/**/*",
"rest_server/**/*",
"training_service/**/*",
"main.ts"
],
"compilerOptions": { "compilerOptions": {
"target": "ESNext", "allowUnreachableCode": false,
"module": "CommonJS", "noImplicitReturns": true,
"removeComments": true, "noPropertyAccessFromIndexSignature": true,
"noUnusedParameters": true,
"strict": true, "strict": true,
"noImplicitAny": true,
"baseUrl": ".", "baseUrl": ".",
"outDir": "dist", "module": "CommonJS",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"typeRoots": [ "typeRoots": [
"node_modules/@types", "node_modules/@types",
"types" "types"
] ],
}, "outDir": "dist",
"exclude": [ "removeComments": true,
"node_modules", "allowSyntheticDefaultImports": true,
"test" "esModuleInterop": true,
] "emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "ESNext",
"incremental": true,
"tsBuildInfoFile": "./.tsbuildinfo"
}
} }
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