refactor(instance): change instance deletion to use ID instead of name

- Update DBRemoveFrpcInstance to use instanceID for deletion
- Modify DeleteInstanceHandler to accept and validate instanceID
- Improve error messages for invalid instanceID format
- Update logging to use instanceID instead of instanceName
This commit is contained in:
2026-03-25 10:49:30 +08:00
parent 802a726464
commit 3a00f5d6a5
3 changed files with 20 additions and 15 deletions
+17 -11
View File
@@ -219,9 +219,15 @@ func DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
return
}
instanceName := getStringFromMap(reqMap, "instanceName")
if instanceName == "" {
SendErrorResponse(w, http.StatusBadRequest, "instanceName is required")
instanceIDStr := getStringFromMap(reqMap, "instanceID")
if instanceIDStr == "" {
SendErrorResponse(w, http.StatusBadRequest, "instanceID is required")
return
}
instanceID, err := strconv.Atoi(instanceIDStr)
if err != nil {
SendErrorResponse(w, http.StatusBadRequest, "Invalid instanceID format")
return
}
@@ -246,10 +252,10 @@ func DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
}
var instance FrpcInstance
instance, err = DBQueryFrpcInstance(userID, instanceName)
instance, err = DBQueryFrpcInstanceByID(instanceID)
if err == sql.ErrNoRows {
SendErrorResponse(w, http.StatusNotFound, "Instance not found")
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] User %d tried to delete a not existed instance: %s", userID, instanceName))
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] User %d tried to delete a not existed instance: %d", userID, instanceID))
return
}
if err != nil {
@@ -259,8 +265,8 @@ func DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
}
if instance.BootAtStart {
if err := removeBootService(user.Username, instanceName); err != nil {
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] Failed to remove boot service for instance %s: %v", instanceName, err))
if err := removeBootService(user.Username, instance.Name); err != nil {
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] Failed to remove boot service for instance %s: %v", instance.Name, err))
SendErrorResponse(w, http.StatusInternalServerError, "Failed to remove boot service")
return
}
@@ -274,16 +280,16 @@ func DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
}
}
if err := DBRemoveFrpcInstance(userID, instanceName); err != nil {
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] Failed to delete instance %s from database: %v", instanceName, err))
if err := DBRemoveFrpcInstanceByID(instanceID); err != nil {
postLog.Error(fmt.Sprintf("[DeleteInstanceHandler] Failed to delete instance %d from database: %v", instanceID, err))
SendErrorResponse(w, http.StatusInternalServerError, "Failed to delete instance from database")
return
}
SendSuccessResponse(w, "Instance deleted successfully", map[string]interface{}{
"name": instanceName,
"id": instanceID,
})
postLog.Info(fmt.Sprintf("[DeleteInstanceHandler] Instance %s deleted successfully", instanceName))
postLog.Info(fmt.Sprintf("[DeleteInstanceHandler] Instance %d deleted successfully", instanceID))
}
func ModifyInstanceHandler(w http.ResponseWriter, r *http.Request) {