Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
isula-build
提交
a3b5b393
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,发现更多精彩内容 >>
提交
a3b5b393
编写于
8月 05, 2020
作者:
O
openeuler-ci-bot
提交者:
Gitee
8月 05, 2020
浏览文件
操作
浏览文件
下载
差异文件
!23 image: bugfix for resolve an image and import base image
Merge pull request !23 from zvier/findimage
上级
03671d50
d657ed9c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
7 addition
and
101 deletion
+7
-101
daemon/import.go
daemon/import.go
+3
-17
daemon/import_test.go
daemon/import_test.go
+0
-77
image/image.go
image/image.go
+4
-7
未找到文件。
daemon/import.go
浏览文件 @
a3b5b393
...
...
@@ -15,10 +15,8 @@ package daemon
import
(
"io"
"strings"
cp
"github.com/containers/image/v5/copy"
dockerref
"github.com/containers/image/v5/docker/reference"
is
"github.com/containers/image/v5/storage"
"github.com/containers/image/v5/tarball"
"github.com/containers/image/v5/transports"
...
...
@@ -32,8 +30,7 @@ import (
)
const
(
noneReference
=
"<none>:<none>"
bufLen
=
1024
bufLen
=
1024
)
// Import an image from a tarball
...
...
@@ -59,7 +56,8 @@ func (b *Backend) Import(serv pb.Control_ImportServer) error {
}
logrus
.
Infof
(
"Received and import image %q"
,
reference
)
reference
,
err
:=
parseReference
(
reference
)
reference
,
err
:=
dockerfile
.
ExpandTag
(
reference
,
localStore
)
if
err
!=
nil
{
return
err
}
...
...
@@ -98,15 +96,3 @@ func (b *Backend) Import(serv pb.Control_ImportServer) error {
return
nil
}
func
parseReference
(
ref
string
)
(
string
,
error
)
{
ref
=
strings
.
TrimSpace
(
ref
)
if
ref
==
""
{
return
noneReference
,
nil
}
if
_
,
err
:=
dockerref
.
Parse
(
ref
);
err
!=
nil
{
return
""
,
err
}
return
ref
,
nil
}
daemon/import_test.go
已删除
100644 → 0
浏览文件 @
03671d50
// Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved.
// isula-build licensed under the Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
// PURPOSE.
// See the Mulan PSL v2 for more details.
// Author: Zekun Liu
// Create: 2020-07-25
// Description: This is test file for daemon import.go
package
daemon
import
(
"testing"
"gotest.tools/assert"
)
func
TestParseReference
(
t
*
testing
.
T
)
{
type
testcase
struct
{
name
string
reference
string
expect
string
isErr
bool
errStr
string
}
var
testcases
=
[]
testcase
{
{
name
:
"repo only"
,
reference
:
"busybox"
,
expect
:
"busybox"
,
},
{
name
:
"repo and tag"
,
reference
:
"busybox:latest"
,
expect
:
"busybox:latest"
,
},
{
name
:
"ref with tag missing"
,
reference
:
"busybox:"
,
isErr
:
true
,
errStr
:
"invalid reference format"
,
},
{
name
:
"empty ref"
,
reference
:
""
,
expect
:
noneReference
,
},
{
name
:
"ref with no tag"
,
reference
:
"busybox"
,
expect
:
"busybox"
,
},
{
name
:
"ref with space"
,
reference
:
"busybox: latest"
,
isErr
:
true
,
errStr
:
"invalid reference format"
,
},
}
for
_
,
tc
:=
range
testcases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
ref
,
err
:=
parseReference
(
tc
.
reference
)
assert
.
Equal
(
t
,
err
!=
nil
,
tc
.
isErr
,
tc
.
name
)
if
err
!=
nil
{
assert
.
ErrorContains
(
t
,
err
,
tc
.
errStr
,
tc
.
name
)
}
if
err
==
nil
{
assert
.
Equal
(
t
,
ref
,
tc
.
expect
,
tc
.
name
)
}
})
}
}
image/image.go
浏览文件 @
a3b5b393
...
...
@@ -516,7 +516,7 @@ func ResolveName(name string, sc *types.SystemContext, store store.Store) ([]str
return
nil
,
""
,
nil
}
// 2. try to
resolve image name as an image id and find it in
store
// 2. try to
find image with name or id in local
store
if
imageID
:=
tryResolveNameInStore
(
name
,
store
);
imageID
!=
""
{
return
[]
string
{
imageID
},
""
,
nil
}
...
...
@@ -544,16 +544,13 @@ func ResolveName(name string, sc *types.SystemContext, store store.Store) ([]str
}
func
tryResolveNameInStore
(
name
string
,
store
store
.
Store
)
string
{
logrus
.
Infof
(
"Try to
resolve: %s in local storage with image id
"
,
name
)
logrus
.
Infof
(
"Try to
find image: %s in local storage
"
,
name
)
img
,
err
:=
store
.
Image
(
name
)
if
err
!=
nil
||
img
==
nil
{
if
err
!=
nil
{
return
""
}
if
strings
.
HasPrefix
(
img
.
ID
,
name
)
{
return
img
.
ID
}
return
""
return
img
.
ID
}
func
tryResolveNameWithTransport
(
name
string
)
(
string
,
string
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录