diff --git a/litmus-portal/frontend/src/views/ChaosWorkflows/BrowseSchedule/TableData.tsx b/litmus-portal/frontend/src/views/ChaosWorkflows/BrowseSchedule/TableData.tsx index 6190d08b0..ffb5ce84e 100644 --- a/litmus-portal/frontend/src/views/ChaosWorkflows/BrowseSchedule/TableData.tsx +++ b/litmus-portal/frontend/src/views/ChaosWorkflows/BrowseSchedule/TableData.tsx @@ -25,6 +25,7 @@ import { RERUN_CHAOS_WORKFLOW } from '../../../graphql/mutations'; import { ScheduleWorkflow } from '../../../models/graphql/scheduleData'; import useActions from '../../../redux/actions'; import * as TabActions from '../../../redux/actions/tabs'; +import * as WorkflowActions from '../../../redux/actions/workflow'; import { history } from '../../../redux/configureStore'; import { ReactComponent as CrossMarkIcon } from '../../../svg/crossmark.svg'; import timeDifferenceForDate from '../../../utils/datesModifier'; @@ -32,7 +33,6 @@ import { getProjectID, getProjectRole } from '../../../utils/getSearchParams'; import ExperimentPoints from './ExperimentPoints'; import SaveTemplateModal from './SaveTemplateModal'; import useStyles from './styles'; -import * as WorkflowActions from '../../../redux/actions/workflow'; interface TableDataProps { data: ScheduleWorkflow; @@ -366,7 +366,7 @@ const TableData: React.FC = ({ editSchedule()}>
Edit Schedule diff --git a/litmus-portal/frontend/src/views/CreateWorkflow/TuneWorkflow/WorkflowTable.tsx b/litmus-portal/frontend/src/views/CreateWorkflow/TuneWorkflow/WorkflowTable.tsx index 6ee946260..a2da851df 100644 --- a/litmus-portal/frontend/src/views/CreateWorkflow/TuneWorkflow/WorkflowTable.tsx +++ b/litmus-portal/frontend/src/views/CreateWorkflow/TuneWorkflow/WorkflowTable.tsx @@ -46,7 +46,7 @@ const WorkflowTable = forwardRef(({ isCustom }: WorkflowTableProps, ref) => { const theme = useTheme(); const workflow = useActions(WorkflowActions); const [experiments, setExperiments] = useState([]); - const [revertChaos, setRevertChaos] = useState(false); + const [revertChaos, setRevertChaos] = useState(true); const [displayStepper, setDisplayStepper] = useState(false); const [engineIndex, setEngineIndex] = useState(0); const manifest = useSelector( @@ -93,35 +93,55 @@ const WorkflowTable = forwardRef(({ isCustom }: WorkflowTableProps, ref) => { // Revert Chaos const toggleRevertChaos = (manifest: string) => { - let deleteEngines = 'kubectl delete chaosengine '; const parsedYAML = YAML.parse(manifest); + let deleteEngines = 'kubectl delete chaosengine '; - parsedYAML.spec.templates[0].steps.push([ - { + // Else if Revert Chaos is set to true and it is not already set in the manifest + if ( + revertChaos && + parsedYAML.spec.templates[0].steps[ + parsedYAML.spec.templates[0].steps.length - 1 + ][0].name !== 'revert-chaos' + ) { + parsedYAML.spec.templates[0].steps.push([ + { + name: 'revert-chaos', + template: 'revert-chaos', + }, + ]); + + parsed(manifest).forEach((_, i) => { + deleteEngines = `${ + deleteEngines + + YAML.parse( + parsedYAML.spec.templates[2 + i].inputs.artifacts[0].raw.data + ).metadata.name + } `; + }); + + deleteEngines += '-n {{workflow.parameters.adminModeNamespace}}'; + + parsedYAML.spec.templates[parsedYAML.spec.templates.length] = { name: 'revert-chaos', - template: 'revert-chaos', - }, - ]); + container: { + image: 'litmuschaos/k8s:latest', + command: ['sh', '-c'], + args: [deleteEngines], + }, + }; + } - parsed(manifest).forEach((_, i) => { - deleteEngines = `${ - deleteEngines + - YAML.parse( - parsedYAML.spec.templates[2 + i].inputs.artifacts[0].raw.data - ).metadata.name - } `; - }); + // Else if Revert Chaos is set to False and revert chaos template is present in the manifest + else if ( + !revertChaos && + parsedYAML.spec.templates[0].steps[ + parsedYAML.spec.templates[0].steps.length - 1 + ][0].name === 'revert-chaos' + ) { + parsedYAML.spec.templates[0].steps.pop(); // Remove the last step -> Revert Chaos - deleteEngines += '-n {{workflow.parameters.adminModeNamespace}}'; - - parsedYAML.spec.templates[parsedYAML.spec.templates.length] = { - name: 'revert-chaos', - container: { - image: 'litmuschaos/k8s:latest', - command: ['sh', '-c'], - args: [deleteEngines], - }, - }; + parsedYAML.spec.templates.pop(); // Remove the last template -> Revert Chaos Template + } workflow.setWorkflowManifest({ manifest: YAML.stringify(parsedYAML), @@ -152,7 +172,7 @@ const WorkflowTable = forwardRef(({ isCustom }: WorkflowTableProps, ref) => { if (experiments.length === 0) { return false; // Should show alert } - if (revertChaos === true) toggleRevertChaos(manifest); + toggleRevertChaos(manifest); return true; // Should not show any alert }