Skip to content

Commit 3e1d246

Browse files
committed
Application modification and new creation failure issues
1 parent 1e3585d commit 3e1d246

File tree

7 files changed

+170
-53
lines changed

7 files changed

+170
-53
lines changed

go.mod

+12-5
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ require (
2525
github.com/gogo/googleapis v1.4.1 // indirect
2626
github.com/golang-jwt/jwt v3.2.2+incompatible
2727
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
28-
github.com/golang/protobuf v1.5.2 // indirect
2928
github.com/gomodule/redigo v1.8.5
3029
github.com/google/go-github/v36 v36.0.0
3130
github.com/google/uuid v1.3.0 // indirect
@@ -43,27 +42,35 @@ require (
4342
github.com/opencontainers/selinux v1.8.5 // indirect
4443
github.com/pkg/errors v0.9.1
4544
github.com/prestonTao/upnp v0.0.0-20150206124352-f4370df5e109
45+
github.com/prometheus/procfs v0.7.3 // indirect
4646
github.com/robfig/cron v1.2.0
4747
github.com/satori/go.uuid v1.2.0
4848
github.com/shirou/gopsutil/v3 v3.21.5
4949
github.com/sirupsen/logrus v1.8.1
50+
github.com/smartystreets/assertions v1.2.0 // indirect
5051
github.com/smartystreets/goconvey v1.6.4 // indirect
5152
github.com/swaggo/gin-swagger v1.3.0
5253
github.com/swaggo/swag v1.7.0
5354
github.com/tidwall/gjson v1.8.0
55+
github.com/tidwall/pretty v1.2.0 // indirect
5456
github.com/tklauser/go-sysconf v0.3.6 // indirect
5557
github.com/ugorji/go v1.2.6 // indirect
5658
go.opencensus.io v0.23.0 // indirect
57-
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
59+
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5
60+
golang.org/x/mod v0.5.0 // indirect
5861
golang.org/x/net v0.0.0-20210924151903-3ad01bbaa167 // indirect
59-
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
62+
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f
6063
golang.org/x/sys v0.0.0-20210927052749-1cf2251ac284 // indirect
64+
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b // indirect
6165
golang.org/x/text v0.3.7 // indirect
62-
golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 // indirect
63-
golang.org/x/tools v0.1.3 // indirect
66+
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
67+
golang.org/x/tools v0.1.5 // indirect
68+
google.golang.org/appengine v1.6.7 // indirect
6469
google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 // indirect
6570
google.golang.org/grpc v1.41.0 // indirect
71+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
6672
gopkg.in/ini.v1 v1.62.0 // indirect
73+
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
6774
gorm.io/driver/sqlite v1.1.5
6875
gorm.io/gorm v1.21.15
6976
)

go.sum

+89-39
Large diffs are not rendered by default.

route/v1/docker.go

+14-2
Original file line numberDiff line numberDiff line change
@@ -875,15 +875,27 @@ func UpdateSetting(c *gin.Context) {
875875
devicesStr, _ := json2.Marshal(m.Devices)
876876
if !reflect.DeepEqual(string(portsStr), appInfo.Ports) || !reflect.DeepEqual(string(envsStr), appInfo.Envs) || !reflect.DeepEqual(string(volumesStr), appInfo.Volumes) || m.PortMap != appInfo.PortMap {
877877

878+
var newUUid = uuid.NewV4().String()
878879
var err error
879880

880-
containerId, err = service.MyService.Docker().DockerContainerCreate(appInfo.Image+":"+appInfo.Version, id, cpd, appInfo.NetModel)
881+
containerId, err = service.MyService.Docker().DockerContainerCreate(appInfo.Image+":"+appInfo.Version, newUUid, cpd, appInfo.NetModel)
881882

882883
if err != nil {
883884
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.ERROR)})
884885
return
885886
}
886-
service.MyService.Docker().DockerContainerRemove(id)
887+
888+
err = service.MyService.Docker().DockerContainerRemove(id)
889+
if err != nil {
890+
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.ERROR)})
891+
return
892+
}
893+
894+
service.MyService.Docker().DockerContainerUpdateName(appInfo.CustomId, newUUid)
895+
if err != nil {
896+
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.ERROR)})
897+
return
898+
}
887899

888900
} else if !reflect.DeepEqual(string(devicesStr), appInfo.Devices) || m.CpuShares != appInfo.CpuShares || m.Memory != appInfo.Memory || m.Restart != appInfo.Restart {
889901
service.MyService.Docker().DockerContainerUpdate(cpd, id)

route/v1/task.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import (
1919
// @Success 200 {string} string "ok"
2020
// @Router /task/list [get]
2121
func GetTaskList(c *gin.Context) {
22-
list := service.MyService.Task().List(true)
22+
//list := service.MyService.Task().List(true)
23+
list := service.MyService.Task().GetServerTasks()
2324
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS), Data: list})
2425
}
2526

service/docker.go

+18
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type DockerService interface {
4949
DockerImageRemove(name string) error
5050
DockerContainerRemove(name string) error
5151
DockerContainerStop(id string) error
52+
DockerContainerUpdateName(name, id string) (err error)
5253
DockerContainerUpdate(m model.CustomizationPostData, id string) (err error)
5354
DockerContainerLog(name string) (string, error)
5455
DockerContainerCommit(name string)
@@ -701,6 +702,23 @@ func (ds *dockerService) DockerContainerUpdate(m model.CustomizationPostData, id
701702
return
702703
}
703704

705+
//更新容器名称
706+
//param name 容器名称
707+
//param id 老的容器名称
708+
func (ds *dockerService) DockerContainerUpdateName(name, id string) (err error) {
709+
cli, err := client2.NewClientWithOpts(client2.FromEnv)
710+
if err != nil {
711+
return err
712+
}
713+
defer cli.Close()
714+
715+
err = cli.ContainerRename(context.Background(), id, name)
716+
if err != nil {
717+
return err
718+
}
719+
return
720+
}
721+
704722
//获取网络列表
705723
func (ds *dockerService) DockerNetworkModelList() []types.NetworkResource {
706724

service/task.go

+34-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ type TaskService interface {
1919
Update(m *model.TaskDBModel)
2020
Info(id string) model.TaskDBModel
2121
SyncTaskService()
22+
GetServerTasks() []model.TaskDBModel
2223
}
2324

2425
type taskService struct {
@@ -60,7 +61,33 @@ func (s *taskService) Info(id string) model.TaskDBModel {
6061
s.db.Where("id = ?", id).Delete(&m)
6162
return m
6263
}
64+
func (s *taskService) GetServerTasks() []model.TaskDBModel {
65+
var count int64
66+
s.db.Model(&model.TaskDBModel{}).Count(&count)
67+
head := make(map[string]string)
68+
69+
t := make(chan string)
70+
71+
go func() {
72+
str := httper2.Get(config.ServerInfo.ServerApi+"/token", nil)
6373

74+
t <- gjson.Get(str, "data").String()
75+
}()
76+
head["Authorization"] = <-t
77+
78+
listS := httper2.Get(config.ServerInfo.ServerApi+"/v1/task/list/0?desc=true", head)
79+
80+
list := []model.TaskDBModel{}
81+
json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list)
82+
83+
go func(list []model.TaskDBModel) {
84+
for _, dbModel := range list {
85+
dbModel.Id = 0
86+
s.db.Create(&dbModel)
87+
}
88+
}(list)
89+
return list
90+
}
6491
func (s *taskService) SyncTaskService() {
6592
var count int64
6693
s.db.Model(&model.TaskDBModel{}).Count(&count)
@@ -82,6 +109,7 @@ func (s *taskService) SyncTaskService() {
82109

83110
go func(list []model.TaskDBModel) {
84111
for _, dbModel := range list {
112+
dbModel.Id = 0
85113
s.db.Create(&dbModel)
86114
}
87115
}(list)
@@ -105,11 +133,12 @@ func SyncTask(db *gorm.DB) {
105133
list := []model.TaskDBModel{}
106134
json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list)
107135

108-
go func(list []model.TaskDBModel) {
109-
for _, dbModel := range list {
110-
db.Create(&dbModel)
111-
}
112-
}(list)
136+
//go func(list []model.TaskDBModel) {
137+
// for _, dbModel := range list {
138+
// dbModel.Id = 0
139+
// db.Create(&dbModel)
140+
// }
141+
//}(list)
113142
}
114143
func NewTaskService(db *gorm.DB, log loger2.OLog) TaskService {
115144
return &taskService{db: db, log: log}

types/system.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package types
22

3-
const CURRENTVERSION = "0.1.0"
3+
const CURRENTVERSION = "0.1.2"

0 commit comments

Comments
 (0)