Use /rules to create tickscripts

pull/10616/head
Andrew Watkins 2017-09-12 11:03:30 -07:00
parent 1b7fcfdb45
commit 9d5e1329c2
3 changed files with 33 additions and 32 deletions

View File

@ -19,6 +19,19 @@ export const createRule = (kapacitor, rule) => {
}) })
} }
export const createTickScript = async (kapacitor, rule) => {
try {
return await AJAX({
method: 'POST',
url: kapacitor.links.rules,
data: rule,
})
} catch (error) {
console.error(error)
throw error
}
}
export const getRules = kapacitor => { export const getRules = kapacitor => {
return AJAX({ return AJAX({
method: 'GET', method: 'GET',
@ -65,12 +78,12 @@ export const createTask = async (kapacitor, {id, dbrps, script, type}) => {
try { try {
return await AJAX({ return await AJAX({
method: 'POST', method: 'POST',
url: kapacitor.links.tasks, url: kapacitor.links.rules,
data: { data: {
id, id,
type, type,
dbrps, dbrps,
script, tickscript: script,
}, },
}) })
} catch (error) { } catch (error) {

View File

@ -2,34 +2,19 @@ import React, {PropTypes} from 'react'
import SourceIndicator from 'shared/components/SourceIndicator' import SourceIndicator from 'shared/components/SourceIndicator'
import TickscriptType from 'src/kapacitor/components/TickscriptType' import TickscriptType from 'src/kapacitor/components/TickscriptType'
import MultiSelectDBDropdown from 'shared/components/MultiSelectDBDropdown' import MultiSelectDBDropdown from 'shared/components/MultiSelectDBDropdown'
import TickscrtiptNewID, {
TickscriptEditID,
} from 'src/kapacitor/components/TickscriptID'
const addName = list => list.map(l => ({...l, name: `${l.db}.${l.rp}`})) const addName = list => list.map(l => ({...l, name: `${l.db}.${l.rp}`}))
const TickscriptHeader = ({ const TickscriptHeader = ({
task: {id, type, dbrps}, task: {type, dbrps},
source: {name}, source: {name},
onSave, onSave,
isEditing,
onStopEdit,
onStartEdit,
onChangeType, onChangeType,
onSelectDbrps, onSelectDbrps,
isNewTickscript,
}) => }) =>
<div className="page-header"> <div className="page-header">
<div className="page-header__container"> <div className="page-header__container">
<div className="page-header__left"> <div className="page-header__left" />
{isNewTickscript
? <TickscrtiptNewID
isEditing={isEditing}
onStopEdit={onStopEdit}
onStartEdit={onStartEdit}
isNewTickscript={isNewTickscript}
/>
: <TickscriptEditID id={id} />}
</div>
<div className="page-header__right"> <div className="page-header__right">
<SourceIndicator sourceName={name} /> <SourceIndicator sourceName={name} />
<TickscriptType type={type} onChangeType={onChangeType} /> <TickscriptType type={type} onChangeType={onChangeType} />
@ -60,9 +45,6 @@ TickscriptHeader.propTypes = {
}), }),
onChangeType: func.isRequired, onChangeType: func.isRequired,
isEditing: bool.isRequired, isEditing: bool.isRequired,
onStartEdit: func.isRequired,
onStopEdit: func.isRequired,
isNewTickscript: bool.isRequired,
} }
export default TickscriptHeader export default TickscriptHeader

View File

@ -59,17 +59,23 @@ class TickscriptPage extends Component {
} = this.props } = this.props
let response let response
if (this._isEditing()) {
response = await updateTask(kapacitor, task, ruleID)
} else {
response = await createTask(kapacitor, task)
}
if (response && response.error) { try {
return this.setState({validation: response.error}) if (this._isEditing()) {
} response = await updateTask(kapacitor, task, ruleID)
} else {
response = await createTask(kapacitor, task)
}
router.push(`/sources/${source.id}/alert-rules`) if (response && response.code === 500) {
return this.setState({validation: response.message})
}
router.push(`/sources/${source.id}/alert-rules`)
} catch (error) {
console.error(error)
throw error
}
} }
handleChangeScript = script => { handleChangeScript = script => {