Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-libvirt
提交
d96a6480
T
tp-libvirt
项目概览
openeuler
/
tp-libvirt
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
tp-libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
d96a6480
编写于
8月 10, 2020
作者:
C
chunfu wen
提交者:
GitHub
8月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2858 from meinaLi/virtual_disk
Attach an overlay image based on chap authorized iscsi
上级
34fb4fbe
69bca98d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
92 addition
and
15 deletion
+92
-15
libvirt/tests/cfg/virtual_disks/virtual_disks_multidisks.cfg
libvirt/tests/cfg/virtual_disks/virtual_disks_multidisks.cfg
+20
-0
libvirt/tests/src/virtual_disks/virtual_disks_multidisks.py
libvirt/tests/src/virtual_disks/virtual_disks_multidisks.py
+72
-15
未找到文件。
libvirt/tests/cfg/virtual_disks/virtual_disks_multidisks.cfg
浏览文件 @
d96a6480
...
...
@@ -1155,6 +1155,26 @@
virt_disk_check_partitions = "no"
disk_attach_bus_option = "--io native --cache unsafe"
disks_attach_option = "${disk_attach_bus_option}"
- disk_with_baseimg:
virt_disk_device_format = "qcow2"
virt_disk_device_type = "file"
virt_disk_device_target = "sda"
virt_disk_device_bus = "scsi"
virtio_scsi_controller = "yes"
virtio_scsi_controller_model = "virtio-scsi"
variants:
- network_iscsi:
network_iscsi_baseimg = "yes"
with_backingstore = "yes"
virt_disk_device_type_bs = "network"
virt_disk_device_format_bs = "raw"
auth_usage = "yes"
auth_type = "chap"
secret_usage_target = "libvirtiscsi"
secret_usage_type = "iscsi"
iscsi_user = "rhat"
iscsi_password = "rhatrhat"
driver_option = "type=qcow2,cache=none"
variants:
- hotplug:
virt_disk_device_hotplug = "yes"
...
...
libvirt/tests/src/virtual_disks/virtual_disks_multidisks.py
浏览文件 @
d96a6480
...
...
@@ -215,7 +215,7 @@ def run(test, params, env):
logging
.
debug
(
"disk source is:%s"
,
disk
[
'source'
])
elif
disk_device_type
==
"network"
:
if
auth_usage
:
global
secret_uuid
global
secret_uuid
,
iscsi_target
,
lun_num
secret_uuid
=
create_auth_secret
()
# Setup iscsi target
try
:
...
...
@@ -263,11 +263,35 @@ def run(test, params, env):
disk
.
update
({
"format"
:
'lvm'
,
"source"
:
device_source
})
elif
disk_format
in
[
"raw"
,
"qcow2"
,
"vhdx"
,
"qed"
]:
disk_size
=
params
.
get
(
"virt_disk_device_size"
,
"1"
)
device_source
=
libvirt
.
create_local_disk
(
"file"
,
path
,
disk_size
,
disk_format
=
disk_format
)
disk
.
update
({
"format"
:
disk_format
,
"source"
:
device_source
})
if
network_iscsi_baseimg
:
if
auth_usage
:
secret_uuid
=
create_auth_secret
()
# Setup iscsi target
image_size
=
params
.
get
(
"image_size"
,
"2G"
)
try
:
iscsi_target
,
lun_num
=
libvirt
.
setup_or_cleanup_iscsi
(
is_setup
=
True
,
is_login
=
False
,
image_size
=
image_size
,
chap_user
=
chap_user
,
chap_passwd
=
chap_passwd
)
except
Exception
as
iscsi_ex
:
logging
.
debug
(
"Failed to create iscsi lun: %s"
,
str
(
iscsi_ex
))
libvirt
.
setup_or_cleanup_iscsi
(
is_setup
=
False
)
json_str
=
(
'json:{"driver":"raw", "file":{"lun":"%s",'
'"portal":"127.0.0.1","driver":"iscsi", "transport":"tcp",'
'"target":"%s", "user":"%s", "password-secret":"sec"}}'
%
(
lun_num
,
iscsi_target
,
chap_user
))
cmd
=
(
"qemu-img create --object secret,data='%s',id=sec,format=raw "
"-f qcow2 -b '%s' -o backing_fmt=raw %s"
%
(
chap_passwd
,
json_str
,
path
))
ret
=
process
.
run
(
cmd
,
shell
=
True
)
libvirt
.
check_exit_status
(
ret
)
disk
.
update
({
"format"
:
disk_format
,
"source"
:
path
})
else
:
disk_size
=
params
.
get
(
"virt_disk_device_size"
,
"1"
)
device_source
=
libvirt
.
create_local_disk
(
"file"
,
path
,
disk_size
,
disk_format
=
disk_format
)
disk
.
update
({
"format"
:
disk_format
,
"source"
:
device_source
})
if
file_mount_point_type
:
for
cmd
in
(
"touch %s"
%
tmp_demo_img
,
"mount --bind %s %s"
%
(
path
,
tmp_demo_img
)):
try
:
...
...
@@ -907,6 +931,11 @@ def run(test, params, env):
secret_usage_target
=
params
.
get
(
"secret_usage_target"
)
secret_usage_type
=
params
.
get
(
"secret_usage_type"
)
# backing Store parameters
network_iscsi_baseimg
=
"yes"
==
params
.
get
(
"network_iscsi_baseimg"
,
"no"
)
bs_device_types
=
params
.
get
(
"virt_disk_device_type_bs"
,
"file"
).
split
()
bs_device_formats
=
params
.
get
(
"virt_disk_device_format_bs"
,
"qcow2"
).
split
()
# Storage pool and disk related parameters.S
pool_name
=
params
.
get
(
"pool_name"
,
"iscsi_pool"
)
pool_type
=
params
.
get
(
"pool_type"
)
...
...
@@ -1145,13 +1174,21 @@ def run(test, params, env):
source_dict
=
{
dev_attrs
:
disk_source
}
if
len
(
startup_policy
)
>
i
:
source_dict
.
update
({
"startupPolicy"
:
startup_policy
[
i
]})
if
auth_usage
or
pool_type
==
"iscsi"
:
if
auth_usage
and
not
network_iscsi_baseimg
:
auth_dict
=
{
"auth_user"
:
chap_user
,
"secret_type"
:
secret_usage_type
,
"secret_usage"
:
secret_usage_target
}
disk_source
=
disk_xml
.
new_disk_source
(
**
disk_source
)
disk_auth
=
disk_xml
.
new_auth
(
**
auth_dict
)
disk_source
.
auth
=
disk_auth
disk_xml
.
source
=
disk_source
elif
pool_type
==
"iscsi"
:
disk_xml
.
source
=
disk_xml
.
new_disk_source
(
**
disk_source
)
else
:
disk_xml
.
source
=
disk_xml
.
new_disk_source
(
**
{
"attrs"
:
source_dict
})
if
len
(
device_bootorder
)
>
i
:
disk_xml
.
boot
=
device_bootorder
[
i
]
...
...
@@ -1186,12 +1223,32 @@ def run(test, params, env):
driver_dict
.
update
({
d
[
0
].
strip
():
d
[
1
].
strip
()})
disk_xml
.
driver
=
driver_dict
# Add iSCSI authentication information.
if
auth_usage
:
auth_dict
=
{
"auth_user"
:
chap_user
,
"secret_type"
:
secret_usage_type
,
"secret_usage"
:
secret_usage_target
}
disk_xml
.
auth
=
disk_xml
.
new_auth
(
**
auth_dict
)
def
add_backingstore_element_to_disk_xml
(
disk_xml
):
"""
Add backingstore subelement of source element.
:param disk_xml: the xml of disk
"""
disk_xml
.
source
=
disk_xml
.
new_disk_source
(
**
{
"attrs"
:
source_dict
})
bs_source
=
{
"protocol"
:
"iscsi"
,
"name"
:
"%s/%s"
%
(
iscsi_target
,
lun_num
),
"host"
:
{
"name"
:
'127.0.0.1'
,
"port"
:
'3260'
}}
bs_dict
=
{
"type"
:
bs_device_types
[
i
],
"format"
:
{
'type'
:
bs_device_formats
[
i
]}}
new_bs
=
disk_xml
.
new_backingstore
(
**
bs_dict
)
new_bs
.
source
=
disk_xml
.
BackingStore
().
new_source
(
**
bs_source
)
if
auth_usage
:
auth_dict
=
{
"auth_user"
:
chap_user
,
"secret_type"
:
secret_usage_type
,
"secret_usage"
:
secret_usage_target
}
disk_auth
=
disk_xml
.
new_auth
(
**
auth_dict
)
new_bs_source
=
new_bs
.
source
new_bs_source
.
auth
=
disk_auth
new_bs
.
source
=
new_bs_source
disk_xml
.
backingstore
=
new_bs
if
network_iscsi_baseimg
:
add_backingstore_element_to_disk_xml
(
disk_xml
)
# Add disk address from parameters.
if
len
(
device_address
)
>
i
:
...
...
@@ -1948,7 +2005,7 @@ def run(test, params, env):
else
:
if
img
[
"format"
]
==
"scsi"
:
libvirt
.
delete_scsi_disk
()
elif
img
[
"format"
]
==
"iscsi"
:
elif
img
[
"format"
]
==
"iscsi"
or
network_iscsi_baseimg
:
libvirt
.
setup_or_cleanup_iscsi
(
is_setup
=
False
)
# Clean up secret
if
auth_usage
and
secret_uuid
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录