Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
5fc73ba6
Unverified
Commit
5fc73ba6
authored
Aug 27, 2021
by
liuzhe-lz
Committed by
GitHub
Aug 27, 2021
Browse files
Refactor NNI Manager UT (Stage 1) - setup toolchain (#4109)
parent
2b9f5f8c
Changes
121
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
57 additions
and
78 deletions
+57
-78
ts/nni_manager/test/training_service/fileUtility.test.ts
ts/nni_manager/test/training_service/fileUtility.test.ts
+1
-1
ts/nni_manager/test/training_service/kubeflowTrainingService.test.ts
...ger/test/training_service/kubeflowTrainingService.test.ts
+4
-4
ts/nni_manager/test/training_service/localTrainingService.test.ts
...anager/test/training_service/localTrainingService.test.ts
+5
-5
ts/nni_manager/test/training_service/remote/linuxCommands.test.ts
...anager/test/training_service/remote/linuxCommands.test.ts
+2
-2
ts/nni_manager/test/training_service/remote/shellExecutor.test.ts
...anager/test/training_service/remote/shellExecutor.test.ts
+4
-4
ts/nni_manager/test/training_service/remote/windowsCommands.test.ts
...ager/test/training_service/remote/windowsCommands.test.ts
+2
-2
ts/nni_manager/test/training_service/remoteMachineTrainingService.test.ts
...est/training_service/remoteMachineTrainingService.test.ts
+7
-7
ts/nni_manager/test/training_service/reusable/utCommandChannel.ts
...anager/test/training_service/reusable/utCommandChannel.ts
+1
-1
ts/nni_manager/test/training_service/reusable/utEnvironmentService.ts
...er/test/training_service/reusable/utEnvironmentService.ts
+1
-1
ts/nni_manager/training_service/common/clusterJobRestServer.ts
...i_manager/training_service/common/clusterJobRestServer.ts
+11
-13
ts/nni_manager/training_service/common/containerJobData.ts
ts/nni_manager/training_service/common/containerJobData.ts
+1
-3
ts/nni_manager/training_service/common/gpuData.ts
ts/nni_manager/training_service/common/gpuData.ts
+9
-10
ts/nni_manager/training_service/common/jobMetrics.ts
ts/nni_manager/training_service/common/jobMetrics.ts
+1
-3
ts/nni_manager/training_service/common/trialConfig.ts
ts/nni_manager/training_service/common/trialConfig.ts
+0
-2
ts/nni_manager/training_service/common/trialConfigMetadataKey.ts
...manager/training_service/common/trialConfigMetadataKey.ts
+0
-2
ts/nni_manager/training_service/common/util.ts
ts/nni_manager/training_service/common/util.ts
+6
-8
ts/nni_manager/training_service/kubernetes/adl/adlApiClient.ts
...i_manager/training_service/kubernetes/adl/adlApiClient.ts
+1
-3
ts/nni_manager/training_service/kubernetes/adl/adlConfig.ts
ts/nni_manager/training_service/kubernetes/adl/adlConfig.ts
+0
-2
ts/nni_manager/training_service/kubernetes/adl/adlJobInfoCollector.ts
...er/training_service/kubernetes/adl/adlJobInfoCollector.ts
+0
-2
ts/nni_manager/training_service/kubernetes/adl/adlJobRestServer.ts
...nager/training_service/kubernetes/adl/adlJobRestServer.ts
+1
-3
No files found.
ts/nni_manager/test/training_service/fileUtility.test.ts
View file @
5fc73ba6
...
@@ -11,7 +11,7 @@ import { execCopydir, tarAdd, validateCodeDir } from '../../training_service/com
...
@@ -11,7 +11,7 @@ import { execCopydir, tarAdd, validateCodeDir } from '../../training_service/com
const
deleteFolderRecursive
=
(
filePath
:
string
)
=>
{
const
deleteFolderRecursive
=
(
filePath
:
string
)
=>
{
if
(
fs
.
existsSync
(
filePath
))
{
if
(
fs
.
existsSync
(
filePath
))
{
fs
.
readdirSync
(
filePath
).
forEach
((
file
,
index
)
=>
{
fs
.
readdirSync
(
filePath
).
forEach
((
file
,
_
index
)
=>
{
const
curPath
=
path
.
join
(
filePath
,
file
);
const
curPath
=
path
.
join
(
filePath
,
file
);
if
(
fs
.
lstatSync
(
curPath
).
isDirectory
())
{
// recurse
if
(
fs
.
lstatSync
(
curPath
).
isDirectory
())
{
// recurse
deleteFolderRecursive
(
curPath
);
deleteFolderRecursive
(
curPath
);
...
...
ts/nni_manager/test/training_service/kubeflowTrainingService.test.ts
View file @
5fc73ba6
...
@@ -3,10 +3,10 @@
...
@@ -3,10 +3,10 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
*
as
fs
from
'
fs
'
;
import
fs
from
'
fs
'
;
import
*
as
tmp
from
'
tmp
'
;
import
tmp
from
'
tmp
'
;
import
*
as
component
from
'
../../common/component
'
;
import
*
as
component
from
'
../../common/component
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../common/utils
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../common/utils
'
;
import
{
TrialConfigMetadataKey
}
from
'
../../training_service/common/trialConfigMetadataKey
'
;
import
{
TrialConfigMetadataKey
}
from
'
../../training_service/common/trialConfigMetadataKey
'
;
...
...
ts/nni_manager/test/training_service/localTrainingService.test.ts
View file @
5fc73ba6
...
@@ -3,11 +3,11 @@
...
@@ -3,11 +3,11 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
*
as
fs
from
'
fs
'
;
import
fs
from
'
fs
'
;
import
*
as
path
from
'
path
'
;
import
path
from
'
path
'
;
import
*
as
tmp
from
'
tmp
'
;
import
tmp
from
'
tmp
'
;
import
*
as
component
from
'
../../common/component
'
;
import
*
as
component
from
'
../../common/component
'
;
import
{
TrialJobApplicationForm
,
TrialJobDetail
}
from
'
../../common/trainingService
'
;
import
{
TrialJobApplicationForm
,
TrialJobDetail
}
from
'
../../common/trainingService
'
;
import
{
cleanupUnitTest
,
delay
,
prepareUnitTest
,
getExperimentRootDir
}
from
'
../../common/utils
'
;
import
{
cleanupUnitTest
,
delay
,
prepareUnitTest
,
getExperimentRootDir
}
from
'
../../common/utils
'
;
...
...
ts/nni_manager/test/training_service/remote/linuxCommands.test.ts
View file @
5fc73ba6
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
*
as
component
from
'
../../../common/component
'
;
import
*
as
component
from
'
../../../common/component
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../../common/utils
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../../common/utils
'
;
import
{
LinuxCommands
}
from
'
../../../training_service/remote_machine/extends/linuxCommands
'
;
import
{
LinuxCommands
}
from
'
../../../training_service/remote_machine/extends/linuxCommands
'
;
...
...
ts/nni_manager/test/training_service/remote/shellExecutor.test.ts
View file @
5fc73ba6
...
@@ -3,10 +3,10 @@
...
@@ -3,10 +3,10 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
cpp
from
'
child-process-promise
'
;
import
cpp
from
'
child-process-promise
'
;
import
*
as
fs
from
'
fs
'
;
import
fs
from
'
fs
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
{
ShellExecutor
}
from
'
../../../training_service/remote_machine/shellExecutor
'
;
import
{
ShellExecutor
}
from
'
../../../training_service/remote_machine/shellExecutor
'
;
import
{
prepareUnitTest
,
cleanupUnitTest
}
from
'
../../../common/utils
'
;
import
{
prepareUnitTest
,
cleanupUnitTest
}
from
'
../../../common/utils
'
;
...
...
ts/nni_manager/test/training_service/remote/windowsCommands.test.ts
View file @
5fc73ba6
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
*
as
component
from
'
../../../common/component
'
;
import
*
as
component
from
'
../../../common/component
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../../common/utils
'
;
import
{
cleanupUnitTest
,
prepareUnitTest
}
from
'
../../../common/utils
'
;
import
{
WindowsCommands
}
from
'
../../../training_service/remote_machine/extends/windowsCommands
'
;
import
{
WindowsCommands
}
from
'
../../../training_service/remote_machine/extends/windowsCommands
'
;
...
...
ts/nni_manager/test/training_service/remoteMachineTrainingService.test.ts
View file @
5fc73ba6
...
@@ -3,11 +3,11 @@
...
@@ -3,11 +3,11 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
assert
from
'
assert
'
;
import
assert
from
'
assert
'
;
import
*
as
chai
from
'
chai
'
;
import
chai
from
'
chai
'
;
import
*
as
chaiAsPromised
from
'
chai-as-promised
'
;
import
chaiAsPromised
from
'
chai-as-promised
'
;
import
*
as
fs
from
'
fs
'
;
import
fs
from
'
fs
'
;
import
*
as
tmp
from
'
tmp
'
;
import
tmp
from
'
tmp
'
;
import
*
as
component
from
'
../../common/component
'
;
import
*
as
component
from
'
../../common/component
'
;
import
{
TrialJobApplicationForm
,
TrialJobDetail
,
TrainingService
}
from
'
../../common/trainingService
'
;
import
{
TrialJobApplicationForm
,
TrialJobDetail
,
TrainingService
}
from
'
../../common/trainingService
'
;
import
{
cleanupUnitTest
,
delay
,
prepareUnitTest
}
from
'
../../common/utils
'
;
import
{
cleanupUnitTest
,
delay
,
prepareUnitTest
}
from
'
../../common/utils
'
;
...
@@ -133,10 +133,10 @@ describe('Unit Test for RemoteMachineTrainingService', () => {
...
@@ -133,10 +133,10 @@ describe('Unit Test for RemoteMachineTrainingService', () => {
};
};
const
jobDetail
:
TrialJobDetail
=
await
remoteMachineTrainingService
.
submitTrialJob
(
form
);
const
jobDetail
:
TrialJobDetail
=
await
remoteMachineTrainingService
.
submitTrialJob
(
form
);
// Add metrics listeners
// Add metrics listeners
const
listener1
=
function
f1
(
metric
:
any
)
{
const
listener1
=
function
f1
(
_
metric
:
any
)
{
}
}
const
listener2
=
function
f1
(
metric
:
any
)
{
const
listener2
=
function
f1
(
_
metric
:
any
)
{
}
}
remoteMachineTrainingService
.
addTrialJobMetricListener
(
listener1
);
remoteMachineTrainingService
.
addTrialJobMetricListener
(
listener1
);
...
...
ts/nni_manager/test/training_service/reusable/utCommandChannel.ts
View file @
5fc73ba6
...
@@ -26,7 +26,7 @@ export class UtCommandChannel extends CommandChannel {
...
@@ -26,7 +26,7 @@ export class UtCommandChannel extends CommandChannel {
return
this
.
receivedCommands
.
shift
();
return
this
.
receivedCommands
.
shift
();
}
}
public
async
config
(
_key
:
string
,
value
:
any
):
Promise
<
void
>
{
public
async
config
(
_key
:
string
,
_
value
:
any
):
Promise
<
void
>
{
// do nothing
// do nothing
}
}
...
...
ts/nni_manager/test/training_service/reusable/utEnvironmentService.ts
View file @
5fc73ba6
...
@@ -58,7 +58,7 @@ export class UtEnvironmentService extends EnvironmentService {
...
@@ -58,7 +58,7 @@ export class UtEnvironmentService extends EnvironmentService {
// do nothing
// do nothing
}
}
public
async
refreshEnvironmentsStatus
(
environments
:
EnvironmentInformation
[]):
Promise
<
void
>
{
public
async
refreshEnvironmentsStatus
(
_
environments
:
EnvironmentInformation
[]):
Promise
<
void
>
{
// do nothing
// do nothing
}
}
...
...
ts/nni_manager/training_service/common/clusterJobRestServer.ts
View file @
5fc73ba6
// 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
bodyParser
from
'
body-parser
'
;
import
*
as
assert
from
'
assert
'
;
import
*
as
bodyParser
from
'
body-parser
'
;
import
{
Request
,
Response
,
Router
}
from
'
express
'
;
import
{
Request
,
Response
,
Router
}
from
'
express
'
;
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
{
String
}
from
'
typescript-string-operations
'
;
import
{
String
}
from
'
typescript-string-operations
'
;
import
*
as
component
from
'
../../
common/component
'
;
import
*
as
component
from
'
common/component
'
;
import
{
getBasePort
,
getExperimentId
}
from
'
../../
common/experimentStartupInfo
'
;
import
{
getBasePort
,
getExperimentId
}
from
'
common/experimentStartupInfo
'
;
import
{
RestServer
}
from
'
../../
common/restServer
'
;
import
{
RestServer
}
from
'
common/restServer
'
;
import
{
getExperimentRootDir
,
mkDirPSync
}
from
'
../../
common/utils
'
;
import
{
getExperimentRootDir
,
mkDirPSync
}
from
'
common/utils
'
;
/**
/**
* Cluster Job Training service Rest server, provides rest API to support Cluster job metrics update
* Cluster Job Training service Rest server, provides rest API to support Cluster job metrics update
...
@@ -108,7 +106,7 @@ export abstract class ClusterJobRestServer extends RestServer {
...
@@ -108,7 +106,7 @@ export abstract class ClusterJobRestServer extends RestServer {
router
.
post
(
`/update-metrics/
${
this
.
expId
}
/:trialId`
,
(
req
:
Request
,
res
:
Response
)
=>
{
router
.
post
(
`/update-metrics/
${
this
.
expId
}
/:trialId`
,
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
this
.
log
.
info
(
`Get update-metrics request, trial job id is
${
req
.
params
.
trialId
}
`
);
this
.
log
.
info
(
`Get update-metrics request, trial job id is
${
req
.
params
[
'
trialId
'
]
}
`
);
this
.
log
.
info
(
'
update-metrics body is
'
,
req
.
body
);
this
.
log
.
info
(
'
update-metrics body is
'
,
req
.
body
);
this
.
handleTrialMetrics
(
req
.
body
.
jobId
,
req
.
body
.
metrics
);
this
.
handleTrialMetrics
(
req
.
body
.
jobId
,
req
.
body
.
metrics
);
...
@@ -127,7 +125,7 @@ export abstract class ClusterJobRestServer extends RestServer {
...
@@ -127,7 +125,7 @@ export abstract class ClusterJobRestServer extends RestServer {
this
.
errorMessage
=
`Version check failed, didn't get version check response from trialKeeper,`
this
.
errorMessage
=
`Version check failed, didn't get version check response from trialKeeper,`
+
` please check your NNI version in NNIManager and TrialKeeper!`
;
+
` please check your NNI version in NNIManager and TrialKeeper!`
;
}
}
const
trialLogDir
:
string
=
path
.
join
(
getExperimentRootDir
(),
'
trials
'
,
req
.
params
.
trialId
);
const
trialLogDir
:
string
=
path
.
join
(
getExperimentRootDir
(),
'
trials
'
,
req
.
params
[
'
trialId
'
]
);
mkDirPSync
(
trialLogDir
);
mkDirPSync
(
trialLogDir
);
const
trialLogPath
:
string
=
path
.
join
(
trialLogDir
,
'
stdout_log_collection.log
'
);
const
trialLogPath
:
string
=
path
.
join
(
trialLogDir
,
'
stdout_log_collection.log
'
);
try
{
try
{
...
@@ -136,7 +134,7 @@ export abstract class ClusterJobRestServer extends RestServer {
...
@@ -136,7 +134,7 @@ export abstract class ClusterJobRestServer extends RestServer {
const
metricsContent
:
any
=
req
.
body
.
msg
.
match
(
this
.
NNI_METRICS_PATTERN
);
const
metricsContent
:
any
=
req
.
body
.
msg
.
match
(
this
.
NNI_METRICS_PATTERN
);
if
(
metricsContent
&&
metricsContent
.
groups
)
{
if
(
metricsContent
&&
metricsContent
.
groups
)
{
const
key
:
string
=
'
metrics
'
;
const
key
:
string
=
'
metrics
'
;
this
.
handleTrialMetrics
(
req
.
params
.
trialId
,
[
metricsContent
.
groups
[
key
]]);
this
.
handleTrialMetrics
(
req
.
params
[
'
trialId
'
]
,
[
metricsContent
.
groups
[
key
]]);
skipLogging
=
true
;
skipLogging
=
true
;
}
}
}
}
...
...
ts/nni_manager/training_service/common/containerJobData.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
export
const
CONTAINER_INSTALL_NNI_SHELL_FORMAT
:
string
=
export
const
CONTAINER_INSTALL_NNI_SHELL_FORMAT
:
string
=
`#!/bin/bash
`#!/bin/bash
if python3 -c 'import nni' > /dev/null 2>&1; then
if python3 -c 'import nni' > /dev/null 2>&1; then
...
...
ts/nni_manager/training_service/common/gpuData.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
export
enum
ScheduleResultType
{
export
enum
ScheduleResultType
{
// Schedule succeeded
// Schedule succeeded
SUCCEED
,
SUCCEED
,
...
@@ -65,7 +63,9 @@ export class GPUSummary {
...
@@ -65,7 +63,9 @@ export class GPUSummary {
export
function
parseGpuIndices
(
gpuIndices
?:
string
):
Set
<
number
>
|
undefined
{
export
function
parseGpuIndices
(
gpuIndices
?:
string
):
Set
<
number
>
|
undefined
{
if
(
gpuIndices
!==
undefined
)
{
if
(
gpuIndices
===
undefined
)
{
return
undefined
;
}
const
indices
:
number
[]
=
gpuIndices
.
split
(
'
,
'
)
const
indices
:
number
[]
=
gpuIndices
.
split
(
'
,
'
)
.
map
((
x
:
string
)
=>
parseInt
(
x
,
10
));
.
map
((
x
:
string
)
=>
parseInt
(
x
,
10
));
if
(
indices
.
length
>
0
)
{
if
(
indices
.
length
>
0
)
{
...
@@ -73,7 +73,6 @@ export function parseGpuIndices(gpuIndices?: string): Set<number> | undefined {
...
@@ -73,7 +73,6 @@ export function parseGpuIndices(gpuIndices?: string): Set<number> | undefined {
}
else
{
}
else
{
throw
new
Error
(
'
gpuIndices can not be empty if specified.
'
);
throw
new
Error
(
'
gpuIndices can not be empty if specified.
'
);
}
}
}
}
}
export
const
GPU_INFO_COLLECTOR_FORMAT_WINDOWS
:
string
=
export
const
GPU_INFO_COLLECTOR_FORMAT_WINDOWS
:
string
=
...
...
ts/nni_manager/training_service/common/jobMetrics.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
import
{
TrialJobStatus
}
from
'
common/trainingService
'
;
import
{
TrialJobStatus
}
from
'
../../common/trainingService
'
;
/**
/**
* Trial job metrics class
* Trial job metrics class
...
...
ts/nni_manager/training_service/common/trialConfig.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
/**
/**
* Trial job configuration class
* Trial job configuration class
* Representing trial job configurable properties
* Representing trial job configurable properties
...
...
ts/nni_manager/training_service/common/trialConfigMetadataKey.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
/**
/**
* Enum of metadata keys for configuration
* Enum of metadata keys for configuration
*/
*/
...
...
ts/nni_manager/training_service/common/util.ts
View file @
5fc73ba6
// 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
cp
from
'
child_process
'
;
import
*
as
cpp
from
'
child-process-promise
'
;
import
fs
from
'
fs
'
;
import
*
as
cp
from
'
child_process
'
;
import
*
as
fs
from
'
fs
'
;
import
ignore
from
'
ignore
'
;
import
ignore
from
'
ignore
'
;
import
*
as
path
from
'
path
'
;
import
path
from
'
path
'
;
import
*
as
tar
from
'
tar
'
;
import
tar
from
'
tar
'
;
import
{
getLogger
}
from
'
../../
common/log
'
;
import
{
getLogger
}
from
'
common/log
'
;
import
{
String
}
from
'
typescript-string-operations
'
;
import
{
String
}
from
'
typescript-string-operations
'
;
import
{
GPU_INFO_COLLECTOR_FORMAT_WINDOWS
}
from
'
./gpuData
'
;
import
{
GPU_INFO_COLLECTOR_FORMAT_WINDOWS
}
from
'
./gpuData
'
;
...
...
ts/nni_manager/training_service/kubernetes/adl/adlApiClient.ts
View file @
5fc73ba6
// 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
*
as
fs
from
'
fs
'
;
import
{
GeneralK8sClient
,
KubernetesCRDClient
}
from
'
../kubernetesApiClient
'
;
import
{
GeneralK8sClient
,
KubernetesCRDClient
}
from
'
../kubernetesApiClient
'
;
/**
/**
...
...
ts/nni_manager/training_service/kubernetes/adl/adlConfig.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
import
{
KubernetesTrialConfig
}
from
"
../kubernetesConfig
"
;
import
{
KubernetesTrialConfig
}
from
"
../kubernetesConfig
"
;
/**
/**
...
...
ts/nni_manager/training_service/kubernetes/adl/adlJobInfoCollector.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
import
{
AdlClientV1
}
from
'
./adlApiClient
'
;
import
{
AdlClientV1
}
from
'
./adlApiClient
'
;
import
{
KubernetesTrialJobDetail
}
from
'
../kubernetesData
'
;
import
{
KubernetesTrialJobDetail
}
from
'
../kubernetesData
'
;
import
{
KubernetesJobInfoCollector
}
from
'
../kubernetesJobInfoCollector
'
;
import
{
KubernetesJobInfoCollector
}
from
'
../kubernetesJobInfoCollector
'
;
...
...
ts/nni_manager/training_service/kubernetes/adl/adlJobRestServer.ts
View file @
5fc73ba6
// Copyright (c) Microsoft Corporation.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
// Licensed under the MIT license.
'
use strict
'
;
import
*
as
component
from
'
common/component
'
;
import
*
as
component
from
'
../../../common/component
'
;
import
{
KubernetesJobRestServer
}
from
'
../kubernetesJobRestServer
'
;
import
{
KubernetesJobRestServer
}
from
'
../kubernetesJobRestServer
'
;
import
{
AdlTrainingService
}
from
'
./adlTrainingService
'
;
import
{
AdlTrainingService
}
from
'
./adlTrainingService
'
;
...
...
Prev
1
2
3
4
5
6
7
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment