Fixed an edge case where appinfo is not present in custom workflows (#2375)

Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
This commit is contained in:
Amit Kumar Das 2020-12-14 15:03:26 +05:30 committed by GitHub
parent 1941785742
commit c8f3fd6e5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 19 deletions

View File

@ -234,9 +234,11 @@ const YamlEditor: React.FC<YamlEditorProps> = ({
} }
setEditorState(stateObject as any); setEditorState(stateObject as any);
const yamlData = YAML.parse(content); const yamlData = YAML.parse(content);
workflow.setWorkflowDetails({ if (readOnly !== true) {
namespace: yamlData.metadata.namespace, workflow.setWorkflowDetails({
}); namespace: yamlData.metadata.namespace,
});
}
}, []); }, []);
return ( return (

View File

@ -53,11 +53,14 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
onCompleted: (data) => { onCompleted: (data) => {
const parsedYaml = YAML.parse(data.getYAMLData); const parsedYaml = YAML.parse(data.getYAMLData);
setEnv([...parsedYaml.spec.experiments[0].spec.components.env]); setEnv([...parsedYaml.spec.experiments[0].spec.components.env]);
setAppInfo({ if (parsedYaml.spec.appinfo !== undefined) {
appns: parsedYaml.spec.appinfo.appns, setAppInfo({
applabel: parsedYaml.spec.appinfo.applabel, appns: parsedYaml.spec.appinfo.appns,
appkind: parsedYaml.spec.appinfo.appkind, applabel: parsedYaml.spec.appinfo.applabel,
}); appkind: parsedYaml.spec.appinfo.appkind,
});
}
setAnnotation(parsedYaml.spec.annotationCheck);
setYaml(YAML.stringify(parsedYaml)); setYaml(YAML.stringify(parsedYaml));
setLoadingEnv(false); setLoadingEnv(false);
}, },
@ -107,11 +110,13 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
}); });
} else { } else {
const parsedYaml = YAML.parse(customWorkflow.yaml as string); const parsedYaml = YAML.parse(customWorkflow.yaml as string);
setAppInfo({ if (parsedYaml.spec.appinfo !== undefined) {
appns: parsedYaml.spec.appinfo.appns, setAppInfo({
applabel: parsedYaml.spec.appinfo.applabel, appns: parsedYaml.spec.appinfo.appns,
appkind: parsedYaml.spec.appinfo.appkind, applabel: parsedYaml.spec.appinfo.applabel,
}); appkind: parsedYaml.spec.appinfo.appkind,
});
}
setAnnotation(parsedYaml.spec.annotationCheck); setAnnotation(parsedYaml.spec.annotationCheck);
setEnv([...parsedYaml.spec.experiments[0].spec.components.env]); setEnv([...parsedYaml.spec.experiments[0].spec.components.env]);
setYaml(customWorkflow.yaml as string); setYaml(customWorkflow.yaml as string);
@ -162,9 +167,11 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
}); });
const parsedYaml = YAML.parse(yaml); const parsedYaml = YAML.parse(yaml);
parsedYaml.spec.experiments[0].spec.components.env = newEnvs; parsedYaml.spec.experiments[0].spec.components.env = newEnvs;
parsedYaml.spec.appinfo.appns = appInfo.appns; if (parsedYaml.spec.appinfo !== undefined) {
parsedYaml.spec.appinfo.applabel = appInfo.applabel; parsedYaml.spec.appinfo.appns = appInfo.appns;
parsedYaml.spec.appinfo.appkind = appInfo.appkind; parsedYaml.spec.appinfo.applabel = appInfo.applabel;
parsedYaml.spec.appinfo.appkind = appInfo.appkind;
}
parsedYaml.spec.annotationCheck = annotation; parsedYaml.spec.annotationCheck = annotation;
parsedYaml.metadata.name = customWorkflow.experiment_name?.split('/')[1]; parsedYaml.metadata.name = customWorkflow.experiment_name?.split('/')[1];
parsedYaml.metadata.namespace = parsedYaml.metadata.namespace =
@ -248,7 +255,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
<Typography className={classes.appInfoHeader}> <Typography className={classes.appInfoHeader}>
{t('customWorkflow.tuneExperiment.appInfo')} {t('customWorkflow.tuneExperiment.appInfo')}
</Typography> </Typography>
{YAML.parse(yaml).spec.appinfo.appns ? ( {YAML.parse(yaml).spec.appinfo?.appns ? (
<div className={classes.appInfoDiv}> <div className={classes.appInfoDiv}>
<Typography className={classes.appInfoText}>appns:</Typography> <Typography className={classes.appInfoText}>appns:</Typography>
<div className={classes.inputField}> <div className={classes.inputField}>
@ -270,7 +277,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
</div> </div>
</div> </div>
) : null} ) : null}
{YAML.parse(yaml).spec.appinfo.applabel ? ( {YAML.parse(yaml).spec.appinfo?.applabel ? (
<div className={classes.appInfoDiv}> <div className={classes.appInfoDiv}>
<Typography className={classes.appInfoText}> <Typography className={classes.appInfoText}>
applabel: applabel:
@ -294,7 +301,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
</div> </div>
</div> </div>
) : null} ) : null}
{YAML.parse(yaml).spec.appinfo.appkind ? ( {YAML.parse(yaml).spec.appinfo?.appkind ? (
<div className={classes.appKind}> <div className={classes.appKind}>
<Typography className={classes.appInfoText}> <Typography className={classes.appInfoText}>
appkind: appkind: