diff --git a/features/cm/ne.go b/features/cm/ne.go index 98455073..529d8d98 100644 --- a/features/cm/ne.go +++ b/features/cm/ne.go @@ -790,12 +790,30 @@ func PostNeServiceAction(w http.ResponseWriter, r *http.Request) { return } case "ims": - actionCmd := fmt.Sprintf("sudo ims-%s", action) - cmd := exec.Command("ssh", sshHost, actionCmd) - out, err := cmd.CombinedOutput() - log.Debugf("Exec output: %v", string(out)) - if err != nil { - log.Error("Faile to execute ssh sudo ims-%s command:", action, err) + switch action { + case "start", "stop": + actionCmd := fmt.Sprintf("sudo ims-%s", action) + cmd := exec.Command("ssh", sshHost, actionCmd) + out, err := cmd.CombinedOutput() + log.Debugf("Exec output: %v", string(out)) + if err != nil { + log.Error("Faile to execute ssh sudo ims-%s command:", action, err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + case "restart": + actionCmd := "sudo ims-stop && sudo ims-start" + cmd := exec.Command("ssh", sshHost, actionCmd) + out, err := cmd.CombinedOutput() + log.Debugf("Exec output: %v", string(out)) + if err != nil { + log.Error("Faile to execute ssh sudo ims-%s command:", action, err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + default: + err = global.ErrCMUnknownServiceAction + log.Error("%v, action:%s", err, action) services.ResponseInternalServerError500ProcessError(w, err) return } diff --git a/lib/global/global.go b/lib/global/global.go index 310f662b..29270bc0 100644 --- a/lib/global/global.go +++ b/lib/global/global.go @@ -50,6 +50,8 @@ var ( ErrCMNotFoundTargetSoftware = errors.New("not found the target software package") ErrCMNotFoundTargetNeVersion = errors.New("not found the target NE version") ErrCMNotFoundRollbackNeVersion = errors.New("not found the rollback NE version") + ErrCMUnknownServiceAction = errors.New("unknown service action") + ErrCMUnknownInstanceAction = errors.New("unknown instance action") ErrCMNotFoundTargetBackupFile = errors.New("not found the target NE backup") ErrCMUnknownSoftwareFormat = errors.New("unknown software package format") // 未知软件包格式