Skip to content

Commit

Permalink
Merge pull request #12793 from influxdata/fix/switching-cron-every-on…
Browse files Browse the repository at this point in the history
…-tasks

fix(tasks): clear existing task schedule when changing types
  • Loading branch information
AlirieGray authored Mar 20, 2019
2 parents 6619746 + 5bf72b9 commit f301bbd
Show file tree
Hide file tree
Showing 20 changed files with 90 additions and 22 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
1. [12703](https://github.com/influxdata/influxdb/pull/12703): Allows user to edit note on cell
1. [12764](https://github.com/influxdata/influxdb/pull/12764): Fix empty state styles in scrapers in org view
1. [12790](https://github.com/influxdata/influxdb/pull/12790): Fix bucket creation error when changing rentention rules types.
1. [12793](https://github.com/influxdata/influxdb/pull/12793): Fix task creation error when switching schedule types.

### UI Improvements

Expand Down
2 changes: 1 addition & 1 deletion ui/src/dataExplorer/components/SaveAsTaskForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
setTaskOption,
clearTask,
setNewScript,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Utils
import {getActiveTimeMachine} from 'src/timeMachine/selectors'
Expand Down
4 changes: 2 additions & 2 deletions ui/src/organizations/components/OrgTaskEditPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import {
setTaskOption,
clearTask,
setAllTaskOptions,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Types
import {Organization, ITask as Task} from '@influxdata/influx'
import {Links} from 'src/types/v2'
import {State as TasksState} from 'src/tasks/reducers/v2'
import {State as TasksState} from 'src/tasks/reducers'
import {
TaskOptions,
TaskOptionKeys,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/organizations/components/OrgTaskPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ import FluxEditor from 'src/shared/components/FluxEditor'
import {Page} from 'src/pageLayout'

// Actions
import {State as TasksState} from 'src/tasks/reducers/v2'
import {State as TasksState} from 'src/tasks/reducers'
import {
setNewScript,
saveNewScript,
setTaskOption,
clearTask,
cancel,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Utils
import {
Expand Down
2 changes: 1 addition & 1 deletion ui/src/organizations/components/OrgTasksPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
addTaskLabelsAsync,
removeTaskLabelsAsync,
runTask,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Types
import {Organization, ITask as Task} from '@influxdata/influx'
Expand Down
2 changes: 1 addition & 1 deletion ui/src/organizations/components/TaskImportOverlay.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import ImportOverlay from 'src/shared/components/ImportOverlay'
// Actions
import {createTaskFromTemplate as createTaskFromTemplateAction} from 'src/organizations/actions/orgView'
import {getTasks as getTasksAction} from 'src/organizations/actions/orgView'
import {populateTasks as populateTasksAction} from 'src/tasks/actions/v2'
import {populateTasks as populateTasksAction} from 'src/tasks/actions'

interface DispatchProps {
createTaskFromTemplate: typeof createTaskFromTemplateAction
Expand Down
2 changes: 1 addition & 1 deletion ui/src/store/configureStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import persistStateEnhancer from './persistStateEnhancer'

// v2 reducers
import meReducer from 'src/shared/reducers/v2/me'
import tasksReducer from 'src/tasks/reducers/v2'
import tasksReducer from 'src/tasks/reducers'
import rangesReducer from 'src/dashboards/reducers/ranges'
import dashboardsReducer from 'src/dashboards/reducers/dashboards'
import viewsReducer from 'src/dashboards/reducers/views'
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TaskCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {ResourceList, Context} from 'src/clockface'
import InlineLabels from 'src/shared/components/inlineLabels/InlineLabels'

// Actions
import {addTaskLabelsAsync, removeTaskLabelsAsync} from 'src/tasks/actions/v2'
import {addTaskLabelsAsync, removeTaskLabelsAsync} from 'src/tasks/actions'
import {createLabel as createLabelAsync} from 'src/labels/actions'

// Types
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TaskForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import TaskForm from 'src/tasks/components/TaskForm'
import {Form} from 'src/clockface'

// Constants
import defaultTaskOptions from 'src/tasks/reducers/v2'
import defaultTaskOptions from 'src/tasks/reducers'

const setup = (override?) => {
const props = {
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TaskRunsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {Run} from '@influxdata/influx'
import {SpinnerContainer, TechnoSpinner, Button} from '@influxdata/clockface'

// Actions
import {getRuns, runTask} from 'src/tasks/actions/v2'
import {getRuns, runTask} from 'src/tasks/actions'
import {IconFont} from 'src/clockface'

interface OwnProps {
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TaskRunsRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {IndexList, Overlay} from 'src/clockface'
import RunLogsOverlay from 'src/tasks/components/RunLogsList'

// Actions
import {getLogs} from 'src/tasks/actions/v2'
import {getLogs} from 'src/tasks/actions'

// Types
import {ComponentSize, ComponentColor, Button} from '@influxdata/clockface'
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TasksList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
addTaskLabelsAsync,
removeTaskLabelsAsync,
runTask,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

interface Props {
tasks: Task[]
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/components/TasksOrgDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {connect} from 'react-redux'
import {Dropdown} from 'src/clockface'

// Actions
import {setDropdownOrgID as setDropdownOrgIDAction} from 'src/tasks/actions/v2'
import {setDropdownOrgID as setDropdownOrgIDAction} from 'src/tasks/actions'

// Constants
import {defaultAllOrgs} from 'src/tasks/constants'
Expand Down
4 changes: 2 additions & 2 deletions ui/src/tasks/containers/TaskEditPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import {
setTaskOption,
clearTask,
setAllTaskOptions,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Types
import {Organization, ITask as Task} from '@influxdata/influx'
import {State as TasksState} from 'src/tasks/reducers/v2'
import {State as TasksState} from 'src/tasks/reducers'
import {
TaskOptions,
TaskOptionKeys,
Expand Down
4 changes: 2 additions & 2 deletions ui/src/tasks/containers/TaskPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ import FluxEditor from 'src/shared/components/FluxEditor'
import {Page} from 'src/pageLayout'

// Actions
import {State as TasksState} from 'src/tasks/reducers/v2'
import {State as TasksState} from 'src/tasks/reducers'
import {
setNewScript,
saveNewScript,
setTaskOption,
clearTask,
cancel,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'

// Utils
import {
Expand Down
2 changes: 1 addition & 1 deletion ui/src/tasks/containers/TasksPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import {
addTaskLabelsAsync,
removeTaskLabelsAsync,
runTask,
} from 'src/tasks/actions/v2'
} from 'src/tasks/actions'
import {notify as notifyAction} from 'src/shared/actions/notifications'

// Constants
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {TaskOptions, TaskSchedule} from 'src/utils/taskOptionsToFluxScript'
import {Run, LogEvent} from '@influxdata/influx'

//Types
import {Action} from 'src/tasks/actions/v2'
import {Action} from 'src/tasks/actions'
import {ITask as Task} from '@influxdata/influx'
import {RemoteDataState} from '@influxdata/clockface'

Expand Down Expand Up @@ -31,7 +31,7 @@ export const defaultTaskOptions: TaskOptions = {
toOrgName: '',
}

const defaultState: State = {
export const defaultState: State = {
newScript: '',
currentScript: '',
tasks: [],
Expand Down Expand Up @@ -75,6 +75,21 @@ export default (state: State = defaultState, action: Action): State => {
case 'SET_TASK_OPTION':
const {key, value} = action.payload

if (key === 'taskScheduleType') {
if (value === TaskSchedule.cron) {
return {
...state,
taskOptions: {...state.taskOptions, interval: '', [key]: value},
}
}
if (value === TaskSchedule.interval) {
return {
...state,
taskOptions: {...state.taskOptions, cron: '', [key]: value},
}
}
}

return {
...state,
taskOptions: {...state.taskOptions, [key]: value},
Expand Down
52 changes: 52 additions & 0 deletions ui/src/tasks/reducers/tasks.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import tasksReducer, {
defaultState,
defaultTaskOptions,
} from 'src/tasks/reducers'
import {setTaskOption} from 'src/tasks/actions'
import {TaskSchedule} from 'src/utils/taskOptionsToFluxScript'

describe('tasksReducer', () => {
describe('setTaskOption', () => {
it('clears the cron property from the task options when interval is selected', () => {
const initialState = defaultState
initialState.taskOptions = {...defaultTaskOptions, cron: '0 2 * * *'}

const actual = tasksReducer(
initialState,
setTaskOption({key: 'taskScheduleType', value: TaskSchedule.interval})
)

const expected = {
...defaultState,
taskOptions: {
...defaultTaskOptions,
taskScheduleType: TaskSchedule.interval,
cron: '',
},
}

expect(actual).toEqual(expected)
})

it('clears the interval property from the task options when cron is selected', () => {
const initialState = defaultState
initialState.taskOptions = {...defaultTaskOptions, interval: '1d'}

const actual = tasksReducer(
initialState,
setTaskOption({key: 'taskScheduleType', value: TaskSchedule.cron})
)

const expected = {
...defaultState,
taskOptions: {
...defaultTaskOptions,
taskScheduleType: TaskSchedule.cron,
interval: '',
},
}

expect(actual).toEqual(expected)
})
})
})
2 changes: 1 addition & 1 deletion ui/src/types/v2/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {Notification} from 'src/types'
import {TimeRange} from 'src/types/queries'
import {TimeMachinesState} from 'src/timeMachine/reducers'
import {AppState as AppPresentationState} from 'src/shared/reducers/app'
import {State as TaskState} from 'src/tasks/reducers/v2'
import {State as TaskState} from 'src/tasks/reducers'
import {RouterState} from 'react-router-redux'
import {MeState} from 'src/shared/reducers/v2/me'
import {NoteEditorState} from 'src/dashboards/reducers/notes'
Expand Down

0 comments on commit f301bbd

Please sign in to comment.