Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Commit

Permalink
Refactor nnictl error information (#412)
Browse files Browse the repository at this point in the history
1.Refactor nnictl information when validateion error.
2.Set kubernetesServer as optional.
  • Loading branch information
SparkSnail authored Nov 29, 2018
1 parent 2b12603 commit d83b2ce
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion tools/nni_cmd/config_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
'server': str,
'path': str
},
'kubernetesServer': str
Optional('kubernetesServer'): str
},{
'operator': Or('tf-operator', 'mxnet-operator', 'pytorch-operator'),
'keyVault': {
Expand Down
29 changes: 19 additions & 10 deletions tools/nni_cmd/launcher_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ def parse_time(experiment_config):
'''Parse time format'''
unit = experiment_config['maxExecDuration'][-1]
if unit not in ['s', 'm', 'h', 'd']:
raise ValueError('the unit of time could only from {s, m, h, d}')
print_error('the unit of time could only from {s, m, h, d}')
exit(1)
time = experiment_config['maxExecDuration'][:-1]
if not time.isdigit():
raise ValueError('time format error!')
print_error('time format error!')
exit(1)
parse_dict = {'s':1, 'm':60, 'h':3600, 'd':86400}
experiment_config['maxExecDuration'] = int(time) * parse_dict[unit]

Expand Down Expand Up @@ -73,7 +75,8 @@ def validate_search_space_content(experiment_config):
search_space_content = json.load(open(experiment_config.get('searchSpacePath'), 'r'))
for value in search_space_content.values():
if not value.get('_type') or not value.get('_value'):
raise ValueError('please use _type and _value to specify searchspace!')
print_error('please use _type and _value to specify searchspace!')
exit(1)
except:
raise Exception('searchspace file is not a valid json format!')

Expand All @@ -82,7 +85,7 @@ def validate_common_content(experiment_config):
if not experiment_config.get('trainingServicePlatform') or \
experiment_config.get('trainingServicePlatform') not in ['local', 'remote', 'pai', 'kubeflow']:
print_error('Please set correct trainingServicePlatform!')
exit(0)
exit(1)
schema_dict = {
'local': LOCAL_CONFIG_SCHEMA,
'remote': REMOTE_CONFIG_SCHEMA,
Expand Down Expand Up @@ -115,7 +118,8 @@ def parse_tuner_content(experiment_config):
if not os.path.exists(os.path.join(
experiment_config['tuner']['codeDir'],
experiment_config['tuner']['classFileName'])):
raise ValueError('Tuner file directory is not valid!')
print_error('Tuner file directory is not valid!')
exit(1)
else:
raise ValueError('Tuner format is not valid!')

Expand All @@ -130,26 +134,31 @@ def parse_assessor_content(experiment_config):
if not os.path.exists(os.path.join(
experiment_config['assessor']['codeDir'],
experiment_config['assessor']['classFileName'])):
raise ValueError('Assessor file directory is not valid!')
print_error('Assessor file directory is not valid!')
exit(1)
else:
raise ValueError('Assessor format is not valid!')
print_error('Assessor format is not valid!')
exit(1)

def validate_annotation_content(experiment_config):
'''Valid whether useAnnotation and searchSpacePath is coexist'''
if experiment_config.get('useAnnotation'):
if experiment_config.get('searchSpacePath'):
raise Exception('If you set useAnnotation=true, please leave searchSpacePath empty')
print_error('If you set useAnnotation=true, please leave searchSpacePath empty')
exit(1)
else:
# validate searchSpaceFile
if experiment_config['tuner'].get('tunerName') and experiment_config['tuner'].get('optimizationMode'):
if experiment_config.get('searchSpacePath') is None:
raise Exception('Please set searchSpace!')
print_error('Please set searchSpace!')
exit(1)
validate_search_space_content(experiment_config)

def validate_machine_list(experiment_config):
'''Validate machine list'''
if experiment_config.get('trainingServicePlatform') == 'remote' and experiment_config.get('machineList') is None:
raise Exception('Please set machineList!')
print_error('Please set machineList!')
exit(1)

def validate_all_content(experiment_config, config_path):
'''Validate whether experiment_config is valid'''
Expand Down

0 comments on commit d83b2ce

Please sign in to comment.