4 Commits

Author SHA1 Message Date
Harry-zklcdc 1f55ecb649 [Fix] 🐛 Cors Error at FrontEnd 2025-02-16 23:53:14 +08:00
Harry-zklcdc 87995f0572 [Fix] 🐛 GPU Num Restore Error at Some Scene 2025-02-16 22:12:28 +08:00
Harry-zklcdc bb7b60352e [Fix] 🐛 DON'T Delete Container or Volume at Patch/Restart Instance Error 2025-02-16 22:11:36 +08:00
Harry-zklcdc ef93c40361 [Fix] 🐛 Fix GPU Device Error at NoCard Instances #14 2025-02-15 22:00:02 +08:00
7 changed files with 16 additions and 13 deletions
@@ -38,6 +38,8 @@ func forceDeleteHandler(ctx iris.Context) {
if instance.FromAction == models.InstanceActionStop || instance.FromAction == models.InstanceActionPause || instance.FromAction == models.InstanceActionRestart {
redis.RawDB.IncrBy(ctx, "remain_gpu:server:"+strconv.Itoa(int(instance.ServerID)), int64(instance.GpuCount))
}
if instance.FromAction != models.InstanceActionCreate {
redis.RawDB.IncrBy(ctx, "remain_volume:server:"+strconv.Itoa(int(instance.ServerID)), int64(instance.VolumeSize+30))
}
+12
View File
@@ -0,0 +1,12 @@
package index
import "github.com/kataras/iris/v12"
func cors(ctx iris.Context) {
ctx.Header("Access-Control-Allow-Origin", "*")
ctx.Header("Access-Control-Allow-Methods", "GET")
ctx.Header("Access-Control-Allow-Headers", "Content-Type, Authorization")
ctx.Header("Access-Control-Max-Age", "86400")
ctx.Header("Access-Control-Allow-Credentials", "true")
ctx.Next()
}
+1
View File
@@ -5,6 +5,7 @@ import (
)
func InitIndex(app *iris.Application) {
app.Use(cors)
app.HandleDir("/", GetWebFS(), iris.DirOptions{
IndexName: "/index.html",
Compress: true,
-1
View File
@@ -61,7 +61,6 @@ func modify(serverID uint, data Data) (err error) {
err = instanceController.Patch(&instance, gpuCount, volumeSize, data.CpuOnly)
if err != nil {
ctx := context.Background()
redis.RawDB.IncrBy(ctx, "remain_gpu:server:"+strconv.Itoa(int(serverID)), int64(gpuCount))
redis.RawDB.IncrBy(ctx, "remain_volume:server:"+strconv.Itoa(int(serverID)), int64(volumeSize-oldVolumeSize))
database.DB.Model(&instance).Update("status", models.InstanceStatusFail).Update("from_action", models.InstanceActionModify)
lc.Error("patch instance error: %v", err)
@@ -48,6 +48,7 @@ func createInstance(ip string, port int, apikey string,
},
Env: []string{
"NVIDIA_DRIVER_CAPABILITIES=video,compute,utility",
"NVIDIA_VISIBLE_DEVICES=none",
},
}
-8
View File
@@ -87,10 +87,6 @@ func Patch(instance *models.Instances, gpuCount, volumeSize int, cpuOnly bool) (
err = SetRootPassword(server.IP, server.Port, server.Apikey, instance.ContainerName, instance.SshPasswd)
if err != nil {
deleteInstance(server.IP, server.Port, server.Apikey, instance.ContainerName)
if instance.VolumeName != "" {
deleteVolume(server.IP, server.Port, server.Apikey, instance.VolumeName, false)
}
l.Error("set root password error: %v", err)
return err
}
@@ -135,10 +131,6 @@ func Patch(instance *models.Instances, gpuCount, volumeSize int, cpuOnly bool) (
err = SetRootPassword(server.IP, server.Port, server.Apikey, instance.ContainerName, instance.SshPasswd)
if err != nil {
deleteInstance(server.IP, server.Port, server.Apikey, instance.ContainerName)
if instance.VolumeName != "" {
deleteVolume(server.IP, server.Port, server.Apikey, instance.VolumeName, false)
}
l.Error("set root password error: %v", err)
return err
}
-4
View File
@@ -40,10 +40,6 @@ func Restart(instance *models.Instances) (err error) {
err = SetRootPassword(server.IP, server.Port, server.Apikey, instance.ContainerName, instance.SshPasswd)
if err != nil {
deleteInstance(server.IP, server.Port, server.Apikey, instance.ContainerName)
if instance.VolumeName != "" {
deleteVolume(server.IP, server.Port, server.Apikey, instance.VolumeName, false)
}
l.Error("set root password error: %v", err)
return err
}