Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
472d97f5
T
tp-qemu
项目概览
openeuler
/
tp-qemu
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
tp-qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
472d97f5
编写于
11月 09, 2018
作者:
H
Haotong Chen
提交者:
GitHub
11月 09, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1533 from hereischen/overlay
added a qemu-img convert test
上级
6c2e32a8
84293f8b
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
112 addition
and
0 deletion
+112
-0
qemu/tests/cfg/convert_after_resize_snapshot.cfg
qemu/tests/cfg/convert_after_resize_snapshot.cfg
+24
-0
qemu/tests/convert_after_resize_snapshot.py
qemu/tests/convert_after_resize_snapshot.py
+88
-0
未找到文件。
qemu/tests/cfg/convert_after_resize_snapshot.cfg
0 → 100644
浏览文件 @
472d97f5
- qemu_img_convert:
only qcow2
virt_test_type = qemu
type = convert_after_resize_snapshot
kill_vm = yes
start_vm = no
force_create_image = no
create_image = yes
remove_image = yes
images = "base"
image_chain = "base sn1 sn2"
image_name_base = "images/base"
image_name_sn1 = "images/sn1"
# set size to "", so during snapshot creation
# the cmdline will not have speicfed size option
image_size_sn1 = ""
image_name_sn2 = "images/sn2"
image_size_sn2 = ""
image_convert = "sn2"
convert_name_sn2 = "images/combined"
convert_format_sn2 = "qcow2"
variants:
- after_enlarge_snapshot:
sn1_size_change = "+1G"
qemu/tests/convert_after_resize_snapshot.py
0 → 100644
浏览文件 @
472d97f5
import
logging
import
json
from
avocado.utils
import
process
from
virttest
import
data_dir
from
virttest
import
utils_numeric
from
virttest.qemu_storage
import
QemuImg
from
qemu.tests.qemu_disk_img
import
QemuImgTest
from
qemu.tests.qemu_disk_img
import
generate_base_snapshot_pair
def
run
(
test
,
params
,
env
):
"""
Verify it can successfully convert a enlarged snapshot.
:param test: Qemu test object
:param params: Dictionary with the test parameters
:param env: Dictionary with test environment.
"""
def
_compare_images
(
img1
,
img2
):
"""Compare two qemu images are identical or not."""
logging
.
info
(
"Compare two images are identical."
)
cmd
=
[
img1
.
image_cmd
,
"compare"
,
"-f"
,
img1
.
image_format
,
"-F"
,
img2
.
image_format
,
img1
.
image_filename
,
img2
.
image_filename
]
output
=
process
.
system_output
(
" "
.
join
(
cmd
)).
decode
()
if
"Images are identical"
not
in
output
:
test
.
fail
(
"%s and %s are not identical."
%
(
img1
.
image_filename
,
img2
.
image_filename
))
def
_create_external_snapshot
(
tag
):
"""Create an external snapshot based on tag."""
logging
.
info
(
"Create external snapshot %s."
%
tag
)
qit
=
QemuImgTest
(
test
,
params
,
env
,
tag
)
qit
.
create_snapshot
()
def
_verify_backing_file
(
output
,
backing_tag
):
"""Verify backing file is as expected."""
if
backing_tag
is
None
:
return
backing_param
=
params
.
object_params
(
backing_tag
)
backing
=
QemuImg
(
backing_param
,
img_root_dir
,
backing_tag
)
if
backing
.
image_filename
not
in
json
.
loads
(
output
)[
"backing-filename"
]:
test
.
fail
(
"Backing file is not correct."
)
def
_qemu_img_info
(
tag
,
backing_tag
=
None
):
"""Run qemu info to given image."""
img_param
=
params
.
object_params
(
tag
)
img
=
QemuImg
(
img_param
,
img_root_dir
,
tag
)
output
=
img
.
info
(
output
=
"json"
)
_verify_backing_file
(
output
,
backing_tag
)
return
img
def
_verify_resize
(
img
):
"""Verify the image size is as expected after resize."""
img_size
=
json
.
loads
(
img
.
info
(
output
=
"json"
))[
"virtual-size"
]
sign
=
(
-
1
if
'-'
in
params
[
"sn1_size_change"
]
else
1
)
expected_size
=
(
int
(
utils_numeric
.
normalize_data_size
(
params
[
"image_size"
],
"B"
))
+
int
(
utils_numeric
.
normalize_data_size
(
params
[
"sn1_size_change"
],
"B"
)))
*
sign
logging
.
info
(
"Verify the size of %s is %s."
%
(
img
.
image_filename
,
expected_size
))
if
img_size
!=
expected_size
:
test
.
fail
(
"Got image virtual size: %s, should be: %s."
%
(
img_size
,
expected_size
))
gen
=
generate_base_snapshot_pair
(
params
[
"image_chain"
])
img_root_dir
=
data_dir
.
get_data_dir
()
base
,
sn1
=
next
(
gen
)
_create_external_snapshot
(
sn1
)
img_sn1
=
_qemu_img_info
(
sn1
,
base
)
img_sn1
.
resize
(
params
[
"sn1_size_change"
])
_verify_resize
(
img_sn1
)
sn1
,
sn2
=
next
(
gen
)
_create_external_snapshot
(
sn2
)
img_sn2
=
_qemu_img_info
(
sn2
,
sn1
)
img_sn2
.
convert
(
params
.
object_params
(
sn2
),
img_root_dir
)
converted
=
{
"image_name_converted"
:
params
[
"convert_name_%s"
%
sn2
],
"image_format_converted"
:
params
[
"convert_format_%s"
%
sn2
]}
params
.
update
(
converted
)
img_converted
=
_qemu_img_info
(
"converted"
)
_compare_images
(
img_sn2
,
img_converted
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录