add ability to remove user and add task depndencies closes #69

This commit is contained in:
2024-04-17 14:56:57 +01:00
parent 00ddb91a22
commit 8ece8306dd
25 changed files with 439 additions and 54 deletions

View File

@@ -439,6 +439,8 @@ func handleDataUpload(handle *Handle) {
return c.SendJSONStatus(http.StatusNotFound, "Model not found")
} else if err != nil {
return c.Error500(err)
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
// TODO mk this path configurable
@@ -468,6 +470,10 @@ func handleDataUpload(handle *Handle) {
model, err := GetBaseModel(c.Db, obj.Id)
if err == ModelNotFoundError {
return c.JsonBadRequest("Model not found")
} else if err != nil {
return c.E500M("Failed to get model information", err)
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
if model.ModelType != 2 && model.Status != CONFIRM_PRE_TRAINING || model.ModelType == 2 && model.Status != CONFIRM_PRE_TRAINING && model.Status != READY {
@@ -516,6 +522,8 @@ func handleDataUpload(handle *Handle) {
return c.JsonBadRequest("Could not find the model")
} else if err != nil {
return c.E500M("Error getting model information", err)
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
// TODO make this work for zip files as well
@@ -622,6 +630,8 @@ func handleDataUpload(handle *Handle) {
return c.SendJSONStatus(http.StatusNotFound, "Model not found")
} else if err != nil {
return c.Error500(err)
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
// TODO work in allowing the model to add new in the pre ready moment

View File

@@ -9,20 +9,27 @@ import (
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils"
)
func deleteModelJSON(c *Context, id string) *Error {
c.Logger.Warnf("Removing model with id: %s", id)
_, err := c.Db.Exec("delete from models where id=$1;", id)
func DeleteModel(c BasePack, id string) (err error) {
c.GetLogger().Warnf("Removing model with id: %s", id)
_, err = c.GetDb().Exec("delete from models where id=$1;", id)
if err != nil {
return c.E500M("Failed to delete models", err)
return
}
model_path := path.Join("./savedData", id)
c.Logger.Warnf("Removing folder of model with id: %s at %s", id, model_path)
c.GetLogger().Warnf("Removing folder of model with id: %s at %s", id, model_path)
err = os.RemoveAll(model_path)
if err != nil {
return c.E500M("Failed to remove data", err)
return
}
return
}
func deleteModelJSON(c *Context, id string) *Error {
err := DeleteModel(c, id)
if err != nil {
return c.E500M("Failed to delete models", err)
}
return c.SendJSON(id)
}

View File

@@ -120,7 +120,7 @@ func runModelExp(base BasePack, model *BaseModel, def_id string, inputImage *tf.
func ClassifyTask(base BasePack, task Task) (err error) {
task.UpdateStatusLog(base, TASK_RUNNING, "Runner running task")
model, err := GetBaseModel(base.GetDb(), task.ModelId)
model, err := GetBaseModel(base.GetDb(), *task.ModelId)
if err != nil {
task.UpdateStatusLog(base, TASK_FAILED_RUNNING, "Failed to obtain the model")
return err

View File

@@ -1625,7 +1625,7 @@ func trainExpandable(c *Context, model *BaseModel) {
func RunTaskTrain(b BasePack, task Task) (err error) {
l := b.GetLogger()
model, err := GetBaseModel(b.GetDb(), task.ModelId)
model, err := GetBaseModel(b.GetDb(), *task.ModelId)
if err != nil {
task.UpdateStatusLog(b, TASK_FAILED_RUNNING, "Failed to get model information")
l.Error("Failed to get model information", "err", err)
@@ -1683,7 +1683,7 @@ func RunTaskTrain(b BasePack, task Task) (err error) {
}
func RunTaskRetrain(b BasePack, task Task) (err error) {
model, err := GetBaseModel(b.GetDb(), task.ModelId)
model, err := GetBaseModel(b.GetDb(), *task.ModelId)
if err != nil {
return err
} else if model.Status != READY_RETRAIN {
@@ -1759,6 +1759,8 @@ func handleTrain(handle *Handle) {
return c.JsonBadRequest("Model not found")
} else if err != nil {
return c.E500M("Failed to get model information", err)
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
if model.Status != CONFIRM_PRE_TRAINING {
@@ -1813,6 +1815,8 @@ func handleTrain(handle *Handle) {
return c.E500M("Faield to get model", err)
} else if model.Status != READY && model.Status != READY_RETRAIN_FAILED && model.Status != READY_ALTERATION_FAILED {
return c.JsonBadRequest("Model in invalid status for re-training")
} else if model.CanTrain == 0 {
return c.JsonBadRequest("Model can not be trained!")
}
c.Logger.Info("Expanding definitions for models", "id", model.Id)