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
6aa1d584
Commit
6aa1d584
authored
Mar 26, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add models info file
parent
3fedf570
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
11 deletions
+37
-11
model_handler.go
largeModel/model_handler.go
+34
-4
task_handler.go
nm/task_handler.go
+3
-7
No files found.
largeModel/model_handler.go
View file @
6aa1d584
...
...
@@ -8,19 +8,22 @@ import (
"example.com/m/operate"
"io"
"net/http"
"os"
"strings"
"time"
)
type
ModelHandler
struct
{
dockerOp
*
operate
.
DockerOp
client
*
http
.
Client
dockerOp
*
operate
.
DockerOp
client
*
http
.
Client
modelsFileName
string
}
func
NewModelHandler
(
dockerOp
*
operate
.
DockerOp
)
*
ModelHandler
{
return
&
ModelHandler
{
dockerOp
:
dockerOp
,
client
:
&
http
.
Client
{},
dockerOp
:
dockerOp
,
client
:
&
http
.
Client
{},
modelsFileName
:
"models.json"
,
}
}
...
...
@@ -84,11 +87,38 @@ func (m *ModelHandler) MonitorModelInfo() {
}
m
.
dockerOp
.
ModelsInfo
=
modelInfosResp
m
.
dockerOp
.
ReportTaskIds
=
reportTaskIds
err
=
os
.
WriteFile
(
m
.
modelsFileName
,
bodyBytes
,
0644
)
if
err
!=
nil
{
log
.
WithError
(
err
)
.
Error
(
"Error writing models.json"
)
}
ticker
=
time
.
NewTicker
(
time
.
Minute
*
10
)
}
}
}
func
(
m
*
ModelHandler
)
ReadModels
()
([]
*
models
.
ModelInfo
,
error
)
{
bodyBytes
,
err
:=
os
.
ReadFile
(
m
.
modelsFileName
)
if
err
!=
nil
{
log
.
WithError
(
err
)
.
WithField
(
"fileName"
,
m
.
modelsFileName
)
.
Error
(
"Error reading"
)
return
nil
,
err
}
resp
:=
&
models
.
Resp
{}
err
=
json
.
Unmarshal
(
bodyBytes
,
resp
)
if
err
!=
nil
{
log
.
WithField
(
"fileName"
,
m
.
modelsFileName
)
.
Error
(
"Unmarshal model response failed:"
,
err
)
return
nil
,
err
}
if
resp
.
Code
!=
http
.
StatusOK
{
log
.
WithField
(
"fileName"
,
m
.
modelsFileName
)
.
Error
(
"Response code :"
,
resp
.
Code
)
return
nil
,
err
}
if
resp
.
Data
==
nil
||
len
(
resp
.
Data
)
==
0
{
log
.
WithField
(
"fileName"
,
m
.
modelsFileName
)
.
Warn
(
"Response data is empty"
)
return
nil
,
err
}
return
resp
.
Data
,
nil
}
func
isResourceEnough
(
modelInfo
*
models
.
ModelInfo
)
bool
{
return
true
}
nm/task_handler.go
View file @
6aa1d584
...
...
@@ -132,7 +132,7 @@ func (t *TaskHandler) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
t
.
checkIsStopContainer
(
taskCmd
)
}
log
.
Info
(
"check is stop container finished"
)
isFound
,
imageId
:=
t
.
foundTaskImage
(
task
ExecResult
,
taskCmd
,
taskMsg
)
isFound
,
imageId
:=
t
.
foundTaskImage
(
task
Cmd
)
log
.
Info
(
"found task image finished"
)
if
!
isFound
||
imageId
==
""
{
log
.
Error
(
"The image is not found:"
,
taskCmd
.
ImageName
)
...
...
@@ -170,6 +170,7 @@ func (t *TaskHandler) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
isMatch
:=
strings
.
HasPrefix
(
taskCmd
.
ImageName
,
models
.
ReplicateImageNameSuffix
)
if
isMatch
{
if
!
t
.
checkContainerHealthy
(
internalIp
,
internalPort
,
taskMsg
,
taskExecResult
)
{
t
.
ExecTaskIdIsSuccess
.
Store
(
taskMsg
.
TaskId
,
true
)
return
}
}
...
...
@@ -495,12 +496,10 @@ func (t *TaskHandler) CustomTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
log
.
Info
(
"received customTask--------------------------------"
)
}
func
(
t
*
TaskHandler
)
foundTaskImage
(
task
ExecResult
*
models
.
TaskResult
,
taskCmd
*
models
.
TaskCmd
,
taskMsg
*
nodeManagerV1
.
PushTaskMessage
)
(
isSuccess
bool
,
imageId
string
)
{
func
(
t
*
TaskHandler
)
foundTaskImage
(
task
Cmd
*
models
.
TaskCmd
)
(
isSuccess
bool
,
imageId
string
)
{
images
,
err
:=
t
.
DockerOp
.
PsImages
()
if
err
!=
nil
{
log
.
Error
(
"Ps images failed:"
,
err
)
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s,%s"
,
"Ps images failed:"
,
err
.
Error
())
t
.
ExecTaskIdIsSuccess
.
Store
(
taskMsg
.
TaskId
,
true
)
isSuccess
=
false
imageId
=
""
return
...
...
@@ -663,7 +662,6 @@ func (t *TaskHandler) checkContainerHealthy(internalIp string, internalPort uint
if
err
!=
nil
{
log
.
Errorf
(
"Request container healthy failed: %s"
,
err
.
Error
())
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s,%s"
,
"Request container healthy failed"
,
err
.
Error
())
t
.
ExecTaskIdIsSuccess
.
Store
(
taskMsg
.
TaskId
,
true
)
return
false
}
if
healthyCheckResp
.
StatusCode
==
http
.
StatusNotFound
{
...
...
@@ -675,13 +673,11 @@ func (t *TaskHandler) checkContainerHealthy(internalIp string, internalPort uint
if
err
!=
nil
{
log
.
Errorf
(
"Json unmarshal container healthy body failed: %s"
,
err
.
Error
())
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s,%s"
,
"Json unmarshal container healthy body failed"
,
err
.
Error
())
t
.
ExecTaskIdIsSuccess
.
Store
(
taskMsg
.
TaskId
,
true
)
return
false
}
if
m
.
Status
!=
models
.
READY
{
log
.
Errorf
(
"The container is not ready"
)
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s"
,
"The container is not ready"
)
t
.
ExecTaskIdIsSuccess
.
Store
(
taskMsg
.
TaskId
,
true
)
return
false
}
return
true
...
...
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