From 043839bd96b0c1e43af24bf0d026b23eb0a8839a Mon Sep 17 00:00:00 2001 From: Ramesh Kumar <ramesh.p@matriotsolutions.com> Date: Fri, 25 Mar 2022 19:14:52 +0530 Subject: [PATCH] TMSS-1656: Fixed issue in constraints section and updated test script mock data --- .../tmss_webapp/prepareTemplateSchemas.js | 50 ++++++++--- .../tmss_webapp/prepareTemplateSchemas_dev.js | 85 +++++++++++++------ .../Scheduling/Scheduling.Constraints.js | 2 +- .../src/routes/Scheduling/create.js | 4 +- 4 files changed, 99 insertions(+), 42 deletions(-) diff --git a/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas.js b/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas.js index aa78fb1d563..26cc8423c8e 100644 --- a/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas.js +++ b/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas.js @@ -137,18 +137,21 @@ getTemplateFiles('../../../../install/opt/lofar/share/tmss/schemas').then(async( console.log("... Created observing_strategy_templates.json"); }); - getTemplateFiles("build/schemas/task_template").then(async(strategyFiles) => { - let definitionTemplates = await getTemplateFiles("build/schemas/common_schema_template"); - console.log(definitionTemplates); - let definitions = {}, definitionFiles = []; - for (const definitionTemplate of definitionTemplates) { - const data = fs.readFileSync(definitionTemplate, 'utf8'); - let definitionSchema = JSON.parse(data); - if (definitionSchema.schema && definitionSchema.schema.definitions) { - definitions = {...definitions, ...definitionSchema.schema.definitions}; - definitionFiles.push(definitionTemplate.substring(definitionTemplate.lastIndexOf("/")+1)); - } + console.log("Getting definitions from common_schema_templates...."); + let definitionTemplates = await getTemplateFiles("build/schemas/common_schema_template"); + console.log(definitionTemplates); + let definitions = {}, definitionFiles = []; + for (const definitionTemplate of definitionTemplates) { + const data = fs.readFileSync(definitionTemplate, 'utf8'); + let definitionSchema = JSON.parse(data); + if (definitionSchema.schema && definitionSchema.schema.definitions) { + definitions = {...definitions, ...definitionSchema.schema.definitions}; + definitionFiles.push(definitionTemplate.substring(definitionTemplate.lastIndexOf("/")+1)); } + } + console.log("... got definitions"); + + getTemplateFiles("build/schemas/task_template").then(async(strategyFiles) => { let templates = []; let index = 1; console.log("Getting task_templates"); @@ -183,6 +186,31 @@ getTemplateFiles('../../../../install/opt/lofar/share/tmss/schemas').then(async( fs.writeFileSync("src/__mocks__/task_templates.json", JSON.stringify({templates: JSON.parse(templates)}, null, 4)); console.log("... Created task_templates.json"); }); + + getTemplateFiles("build/schemas/scheduling_constraints_template").then(async(strategyFiles) => { + let index = 0 + const constraintDefinitionKeys = [ "distance_on_sky", "elevation", "timedelta", "timestamp", "timewindow"]; + for (const file of strategyFiles) { + const data = fs.readFileSync(file, 'utf8'); + let constraintTemplate = JSON.parse(data); + constraintTemplate.id = index; + constraintTemplate.ref_resolved_schema = _.cloneDeep(constraintTemplate.schema); + for (const defKey of constraintDefinitionKeys) { + if (definitions[defKey]) { + constraintTemplate.ref_resolved_schema.definitions[defKey] = definitions[defKey]; + } + } + index++; + constraintTemplate = JSON.stringify(constraintTemplate); + constraintTemplate = constraintTemplate.replace(/http:\/\/localhost:3000\/schemas\/common_schema_template\//g, ""); + for (const defFile of definitionFiles) { + const fileRegex = new RegExp(defFile, 'g'); + constraintTemplate = constraintTemplate.replace(fileRegex, ""); + } + fs.writeFileSync(file, JSON.stringify(JSON.parse(constraintTemplate), null, 4)); + console.log("... added ref_resolved_schema to constraints_template"); + } + }); }); }); diff --git a/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas_dev.js b/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas_dev.js index 2113630586c..53dedde1a0d 100644 --- a/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas_dev.js +++ b/SAS/TMSS/frontend/tmss_webapp/prepareTemplateSchemas_dev.js @@ -131,41 +131,44 @@ getTemplateFiles('../../backend/src/tmss/tmssapp/schemas').then(async(backEndFil console.log("... Created observing_strategy_templates.json"); }); - getTemplateFiles("build/schemas/task_template").then(async(strategyFiles) => { - let definitionTemplates = await getTemplateFiles("build/schemas/common_schema_template"); - console.log(definitionTemplates); - let definitions = {}, definitionFiles = []; - for (const definitionTemplate of definitionTemplates) { - const data = fs.readFileSync(definitionTemplate, 'utf8'); - let definitionSchema = JSON.parse(data); - if (definitionSchema.schema && definitionSchema.schema.definitions) { - definitions = {...definitions, ...definitionSchema.schema.definitions}; - definitionFiles.push(definitionTemplate.substring(definitionTemplate.lastIndexOf("\\")+1)); - } + console.log("Getting definitions from common_schema_templates...."); + let definitionTemplates = await getTemplateFiles("build/schemas/common_schema_template"); + console.log(definitionTemplates); + let definitions = {}, definitionFiles = []; + for (const definitionTemplate of definitionTemplates) { + const data = fs.readFileSync(definitionTemplate, 'utf8'); + let definitionSchema = JSON.parse(data); + if (definitionSchema.schema && definitionSchema.schema.definitions) { + definitions = {...definitions, ...definitionSchema.schema.definitions}; + definitionFiles.push(definitionTemplate.substring(definitionTemplate.lastIndexOf("\\")+1)); } + } + console.log("... got definitions"); + + getTemplateFiles("build/schemas/task_template").then(async(strategyFiles) => { let templates = []; let index = 1; console.log("Getting task_templates"); for (const file of strategyFiles) { const data = fs.readFileSync(file, 'utf8'); - let strategyTemplate = JSON.parse(data); - strategyTemplate.id = index; - strategyTemplate.ref_resolved_schema = {definitions: definitions, properties: strategyTemplate.schema["properties"]}; - if (strategyTemplate.name.indexOf("observation") >= 0) { - strategyTemplate.type = "http://localhost:3000/api/task_type/observation"; - strategyTemplate.type_value = "observation"; - } else if (strategyTemplate.name.indexOf("pipeline") >= 0) { - strategyTemplate.type = "http://localhost:3000/api/task_type/pipeline"; - strategyTemplate.type_value = "pipeline"; - } else if (strategyTemplate.name.indexOf("cleanup") >= 0) { - strategyTemplate.type = "http://localhost:3000/api/task_type/cleanup"; - strategyTemplate.type_value = "cleanup"; - } else if (strategyTemplate.name.indexOf("ingest") >= 0) { - strategyTemplate.type = "http://localhost:3000/api/task_type/ingest"; - strategyTemplate.type_value = "ingest"; + let taskTemplate = JSON.parse(data); + taskTemplate.id = index; + taskTemplate.ref_resolved_schema = {definitions: definitions, properties: taskTemplate.schema["properties"]}; + if (taskTemplate.name.indexOf("observation") >= 0) { + taskTemplate.type = "http://localhost:3000/api/task_type/observation"; + taskTemplate.type_value = "observation"; + } else if (taskTemplate.name.indexOf("pipeline") >= 0) { + taskTemplate.type = "http://localhost:3000/api/task_type/pipeline"; + taskTemplate.type_value = "pipeline"; + } else if (taskTemplate.name.indexOf("cleanup") >= 0) { + taskTemplate.type = "http://localhost:3000/api/task_type/cleanup"; + taskTemplate.type_value = "cleanup"; + } else if (taskTemplate.name.indexOf("ingest") >= 0) { + taskTemplate.type = "http://localhost:3000/api/task_type/ingest"; + taskTemplate.type_value = "ingest"; } index++; - templates.push(strategyTemplate); + templates.push(taskTemplate); } templates = JSON.stringify(templates); templates = templates.replace(/http:\/\/localhost:3000\/schemas\/common_schema_template\//g, ""); @@ -177,7 +180,33 @@ getTemplateFiles('../../backend/src/tmss/tmssapp/schemas').then(async(backEndFil fs.writeFileSync("src/__mocks__/task_templates.json", JSON.stringify({templates: JSON.parse(templates)}, null, 4)); console.log("... Created task_templates.json"); }); + + getTemplateFiles("build/schemas/scheduling_constraints_template").then(async(strategyFiles) => { + let index = 0 + const constraintDefinitionKeys = [ "distance_on_sky", "elevation", "timedelta", "timestamp", "timewindow"]; + for (const file of strategyFiles) { + const data = fs.readFileSync(file, 'utf8'); + let constraintTemplate = JSON.parse(data); + constraintTemplate.id = index; + constraintTemplate.ref_resolved_schema = _.cloneDeep(constraintTemplate.schema); + for (const defKey of constraintDefinitionKeys) { + if (definitions[defKey]) { + constraintTemplate.ref_resolved_schema.definitions[defKey] = definitions[defKey]; + } + } + index++; + constraintTemplate = JSON.stringify(constraintTemplate); + constraintTemplate = constraintTemplate.replace(/http:\/\/localhost:3000\/schemas\/common_schema_template\//g, ""); + for (const defFile of definitionFiles) { + const fileRegex = new RegExp(defFile, 'g'); + constraintTemplate = constraintTemplate.replace(fileRegex, ""); + } + fs.writeFileSync(file, JSON.stringify(JSON.parse(constraintTemplate), null, 4)); + console.log("... added ref_resolved_schema to constraints_template"); + } + }); + }); - + }); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/Scheduling.Constraints.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/Scheduling.Constraints.js index 11685bdba27..06efeadb2f2 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/Scheduling.Constraints.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/Scheduling.Constraints.js @@ -208,7 +208,7 @@ export default (props) => { jeditor = React.createElement(Jeditor, { id: "constraint_editor", title: "Scheduling Constraints specification", - schema: constraintSchema.schema, + schema: constraintSchema.ref_resolved_schema, callback: onEditForm, initValue: initialValue, disabled: props.disable, diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/create.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/create.js index 3ebdc3d0b9c..85405edf529 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/create.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/create.js @@ -523,8 +523,8 @@ export class SchedulingUnitCreate extends Component { async constraintStrategy(e){ let schedulingUnit = { ...this.state.schedulingUnit }; schedulingUnit.scheduling_constraints_template_id = e?e.id:''; - this.constraintTemplates[0].schema.properties.sky.properties.transit_offset.properties.from.default = UnitConversion.getSecsToHHmmssWithSign(this.constraintTemplates[0].schema.properties.sky.properties.transit_offset.properties.from.default); - this.constraintTemplates[0].schema.properties.sky.properties.transit_offset.properties.to.default = UnitConversion.getSecsToHHmmssWithSign(this.constraintTemplates[0].schema.properties.sky.properties.transit_offset.properties.to.default); + this.constraintTemplates[0].ref_resolved_schema.properties.sky.properties.transit_offset.properties.from.default = UnitConversion.getSecsToHHmmssWithSign(this.constraintTemplates[0].ref_resolved_schema.properties.sky.properties.transit_offset.properties.from.default); + this.constraintTemplates[0].ref_resolved_schema.properties.sky.properties.transit_offset.properties.to.default = UnitConversion.getSecsToHHmmssWithSign(this.constraintTemplates[0].ref_resolved_schema.properties.sky.properties.transit_offset.properties.to.default); this.setState({ constraintSchema: this.constraintTemplates[0], schedulingUnit}); } -- GitLab