Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
isula-build
提交
62baceea
I
isula-build
项目概览
openeuler
/
isula-build
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
isula-build
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
62baceea
编写于
8月 10, 2020
作者:
O
openeuler-ci-bot
提交者:
Gitee
8月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
!37 isula-build:robustness enhancement
Merge pull request !37 from zklei/review
上级
9bef8153
9456ff91
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
12 addition
and
17 deletion
+12
-17
daemon/build.go
daemon/build.go
+10
-14
daemon/save.go
daemon/save.go
+2
-2
exporter/common.go
exporter/common.go
+0
-1
未找到文件。
daemon/build.go
浏览文件 @
62baceea
...
...
@@ -54,7 +54,6 @@ func (b *Backend) Build(req *pb.BuildRequest, stream pb.Control_BuildServer) (er
f
*
os
.
File
length
int
imageID
string
pipeFile
string
eg
*
errgroup
.
Group
errC
=
make
(
chan
error
,
1
)
)
...
...
@@ -62,10 +61,6 @@ func (b *Backend) Build(req *pb.BuildRequest, stream pb.Control_BuildServer) (er
pipeWrapper
:=
builder
.
OutputPipeWrapper
()
eg
,
ctx
=
errgroup
.
WithContext
(
ctx
)
eg
.
Go
(
func
()
error
{
if
pipeWrapper
!=
nil
{
pipeFile
=
pipeWrapper
.
PipeFile
defer
pipeWrapper
.
Close
()
}
b
.
syncBuildStatus
(
req
.
BuildID
)
<-
struct
{}{}
imageID
,
err
=
builder
.
Build
()
...
...
@@ -73,8 +68,9 @@ func (b *Backend) Build(req *pb.BuildRequest, stream pb.Control_BuildServer) (er
// the pipeFile, which will cause frontend hangs forever.
// so if the output type is archive(pipeFile is not empty string) and any error occurred, we write the error
// message into the pipe to make the goroutine move on instead of hangs.
if
err
!=
nil
&&
pipeFile
!=
""
{
if
perr
:=
ioutil
.
WriteFile
(
pipeFile
,
[]
byte
(
err
.
Error
()),
constant
.
DefaultRootFileMode
);
perr
!=
nil
{
if
err
!=
nil
&&
pipeWrapper
.
PipeFile
!=
""
{
pipeWrapper
.
Close
()
if
perr
:=
ioutil
.
WriteFile
(
pipeWrapper
.
PipeFile
,
[]
byte
(
err
.
Error
()),
constant
.
DefaultRootFileMode
);
perr
!=
nil
{
logrus
.
WithField
(
util
.
LogKeySessionID
,
req
.
BuildID
)
.
Warnf
(
"Write error [%v] in to pipe file failed: %v"
,
err
,
perr
)
}
}
...
...
@@ -100,10 +96,10 @@ func (b *Backend) Build(req *pb.BuildRequest, stream pb.Control_BuildServer) (er
buf
:=
make
([]
byte
,
constant
.
BufferSize
,
constant
.
BufferSize
)
for
{
length
,
err
=
reader
.
Read
(
buf
)
if
length
==
0
&&
pipeWrapper
.
Done
{
if
err
==
io
.
EOF
||
pipeWrapper
.
Done
{
break
}
if
err
!=
nil
&&
err
!=
io
.
EOF
{
if
err
!=
nil
{
return
err
}
if
err
=
stream
.
Send
(
&
pb
.
BuildResponse
{
...
...
daemon/save.go
浏览文件 @
62baceea
...
...
@@ -77,7 +77,6 @@ func (b *Backend) Save(req *pb.SaveRequest, stream pb.Control_SaveServer) (err e
eg
.
Go
(
func
()
error
{
defer
func
()
{
pipeWrapper
.
Close
()
cliLogger
.
CloseContent
()
}()
output
:=
fmt
.
Sprintf
(
"%s:%s"
,
exportType
,
pipeWrapper
.
PipeFile
)
...
...
@@ -88,6 +87,7 @@ func (b *Backend) Save(req *pb.SaveRequest, stream pb.Control_SaveServer) (err e
}
if
err
=
exporter
.
Export
(
imageID
,
output
,
exOpts
,
store
);
err
!=
nil
{
pipeWrapper
.
Close
()
logrus
.
Errorf
(
"Save image %s failed: %v"
,
imageID
,
err
)
return
err
}
...
...
@@ -110,7 +110,7 @@ func (b *Backend) Save(req *pb.SaveRequest, stream pb.Control_SaveServer) (err e
buf
:=
make
([]
byte
,
constant
.
BufferSize
,
constant
.
BufferSize
)
for
{
length
,
err
=
reader
.
Read
(
buf
)
if
err
==
io
.
EOF
{
if
err
==
io
.
EOF
||
pipeWrapper
.
Done
{
break
}
if
err
!=
nil
{
...
...
exporter/common.go
浏览文件 @
62baceea
...
...
@@ -177,7 +177,6 @@ func newPolicyContext(sc *types.SystemContext) (*signature.PolicyContext, error)
type
PipeWrapper
struct
{
PipeFile
string
Done
bool
Err
error
}
// Close set the done flag for this pip
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录