修复修改任务分组的bug

pull/1/head
Doflatango 2017-02-20 10:56:32 +08:00 committed by miraclesu
parent fc4b332d2b
commit e494b261ce
2 changed files with 21 additions and 2 deletions

View File

@ -78,7 +78,11 @@ func (j *Job) ChangeJobStatus(w http.ResponseWriter, r *http.Request) {
} }
func (j *Job) UpdateJob(w http.ResponseWriter, r *http.Request) { func (j *Job) UpdateJob(w http.ResponseWriter, r *http.Request) {
job := &models.Job{} var job = &struct {
*models.Job
OldGroup string `json:"oldGroup"`
}{}
decoder := json.NewDecoder(r.Body) decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&job) err := decoder.Decode(&job)
if err != nil { if err != nil {
@ -92,10 +96,16 @@ func (j *Job) UpdateJob(w http.ResponseWriter, r *http.Request) {
return return
} }
var deleteOldKey string
var successCode = http.StatusOK var successCode = http.StatusOK
if len(job.ID) == 0 { if len(job.ID) == 0 {
successCode = http.StatusCreated successCode = http.StatusCreated
job.ID = models.NextID() job.ID = models.NextID()
} else {
job.OldGroup = strings.TrimSpace(job.OldGroup)
if job.OldGroup != job.Group {
deleteOldKey = models.JobKey(job.OldGroup, job.ID)
}
} }
b, err := json.Marshal(job) b, err := json.Marshal(job)
@ -110,6 +120,13 @@ func (j *Job) UpdateJob(w http.ResponseWriter, r *http.Request) {
return return
} }
// remove old key
if len(deleteOldKey) > 0 {
if _, err = models.DefalutClient.Delete(deleteOldKey); err != nil {
log.Errorf("failed to remove old job key[%s], err: %s.", deleteOldKey, err.Error())
}
}
outJSONWithCode(w, successCode, nil) outJSONWithCode(w, successCode, nil)
} }

View File

@ -59,7 +59,8 @@ export default {
job: { job: {
id: '', id: '',
name: '', name: '',
group: 'default', oldGroup: '',
group: '',
user: '', user: '',
cmd: '', cmd: '',
pause: false, pause: false,
@ -121,6 +122,7 @@ export default {
this.$rest.GET('job/'+this.$route.params.group+'-'+this.$route.params.id). this.$rest.GET('job/'+this.$route.params.group+'-'+this.$route.params.id).
onsucceed(200, (resp)=>{ onsucceed(200, (resp)=>{
vm.job = resp; vm.job = resp;
vm.job.oldGroup = resp.group;
if (vm.job.rules) { if (vm.job.rules) {
for (var i in vm.job.rules) { for (var i in vm.job.rules) {
if (vm.job.rules[i].id.length == 0) { if (vm.job.rules[i].id.length == 0) {