Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
power-node
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
power-node
Commits
1c4d4744
Commit
1c4d4744
authored
Mar 15, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pull image and container sign
parent
2ada1ade
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
27 additions
and
31 deletions
+27
-31
const.go
models/const.go
+11
-9
node_manager.go
models/node_manager.go
+1
-0
model_handler.go
nm/model_handler.go
+2
-4
task_msg.go
nm/task_msg.go
+12
-11
docker.go
operate/docker.go
+1
-7
No files found.
models/const.go
View file @
1c4d4744
...
...
@@ -10,4 +10,6 @@ const (
ContentType
=
"type"
RedirectCode
=
303
UseFileCache
=
"USE-FILE-CACHE"
ModelPublishStatusYes
=
1
ModelPublishStatusNo
=
2
)
models/node_manager.go
View file @
1c4d4744
...
...
@@ -66,6 +66,7 @@ type ModelInfo struct {
ImageName
string
`json:"image_name"`
//OutPutJson string `json:"out_put_json"`
FileExpiresTime
string
`json:"file_expires_time"`
PublishStatus
int
`json:"publish_status"`
}
type
ComputeResult
struct
{
...
...
nm/model_handler.go
View file @
1c4d4744
...
...
@@ -63,10 +63,8 @@ func monitorModelInfo(dockerOp *operate.DockerOp) {
// todo: 判断机器资源是否够用
isPull
:=
isResourceEnough
(
modelInfo
)
// todo: 如果够用
if
isPull
{
if
isPull
&&
modelInfo
.
PublishStatus
==
models
.
ModelPublishStatusYes
{
go
dockerOp
.
PullImage
(
modelInfo
)
// todo: 是否立马上报数据
// reportTaskIds = append(reportTaskIds, modelInfo.TaskId)
}
}
else
{
reportTaskIds
=
append
(
reportTaskIds
,
modelInfo
.
TaskId
)
...
...
@@ -101,5 +99,5 @@ func reportModelInfo(nodeManager *models.NodeManagerClient,
}
func
isResourceEnough
(
modelInfo
*
models
.
ModelInfo
)
bool
{
return
fals
e
return
tru
e
}
nm/task_msg.go
View file @
1c4d4744
...
...
@@ -19,6 +19,7 @@ import (
"mime/multipart"
"net/http"
"strconv"
"strings"
"sync"
"time"
)
...
...
@@ -122,12 +123,16 @@ func (t *TaskHandler) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
}
if
oldTaskImageName
!=
""
&&
oldTaskImageName
!=
taskCmd
.
ImageName
{
//todo: 停止标准任务容器
//containers := t.DockerOp.ListContainer()
//for _, container := range containers {
// if container.Image == taskCmd.ImageName && container.State == "running" {
// t.DockerOp.StopContainer(container.ID)
// }
//}
containers
:=
t
.
DockerOp
.
ListContainer
()
for
_
,
container
:=
range
containers
{
split
:=
strings
.
Split
(
container
.
Image
,
":"
)
if
len
(
split
)
==
1
{
container
.
Image
=
fmt
.
Sprintf
(
"%s:%s"
,
container
.
Image
,
"latest"
)
}
if
container
.
Image
==
taskCmd
.
ImageName
&&
container
.
State
==
"running"
{
t
.
DockerOp
.
StopContainer
(
container
.
ID
)
}
}
oldTaskImageName
=
taskCmd
.
ImageName
}
images
,
err
:=
t
.
DockerOp
.
PsImages
()
...
...
@@ -170,17 +175,13 @@ func (t *TaskHandler) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
}
taskCmd
.
DockerCmd
.
HostIp
=
"0.0.0.0"
taskCmd
.
DockerCmd
.
HostPort
=
strconv
.
FormatInt
(
externalPort
,
10
)
//if int64(len(containers)) == conf.GetConfig().ContainerNum {
// //todo: 待定,需要根据权重去停止哪个容器
// t.DockerOp.StopAndDeleteContainer(containers[0].ID)
//}
containerId
,
err
:=
t
.
DockerOp
.
CreateAndStartContainer
(
taskCmd
.
ImageName
,
taskCmd
.
DockerCmd
)
if
err
!=
nil
{
log
.
Errorf
(
"Create and start container failed: %s"
,
err
.
Error
())
return
}
log
.
Infof
(
"Started container with ID %s"
,
containerId
)
time
.
Sleep
(
time
.
Second
*
2
0
)
time
.
Sleep
(
time
.
Second
*
4
0
)
running
,
internalIp
,
internalPort
=
t
.
foundImageIsRunning
(
imageId
)
if
running
{
taskCmd
.
ApiUrl
=
fmt
.
Sprintf
(
"http://%s:%d%s"
,
internalIp
,
internalPort
,
taskCmd
.
ApiUrl
)
...
...
operate/docker.go
View file @
1c4d4744
...
...
@@ -55,15 +55,9 @@ func NewDockerOp() *DockerOp {
}
func
(
d
*
DockerOp
)
GetContainerSign
(
taskMsg
*
nodemanagerv1
.
PushTaskMessage
,
taskRes
[]
byte
)
[]
byte
{
taskParam
:=
&
models
.
TaskParam
{}
err
:=
json
.
Unmarshal
(
taskMsg
.
TaskParam
,
taskParam
)
if
err
!=
nil
{
log
.
WithField
(
"err"
,
err
)
.
Error
(
"Error unmarshalling task parameter"
)
return
nil
}
reqBody
:=
&
models
.
TaskReq
{
TaskId
:
taskMsg
.
TaskId
,
TaskParam
:
bytes
.
NewBuffer
(
task
Param
.
Body
)
.
String
(),
TaskParam
:
bytes
.
NewBuffer
(
task
Msg
.
TaskParam
)
.
String
(),
TaskResult
:
bytes
.
NewBuffer
(
taskRes
)
.
String
(),
}
body
,
err
:=
json
.
Marshal
(
reqBody
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment