Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
bc225b1b
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bc225b1b
编写于
7月 15, 2016
作者:
P
Peter Krempa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
util: storage: Add JSON backing volume parser for 'ssh' protocol
上级
29f06ff5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
57 addition
and
0 deletion
+57
-0
src/util/virstoragefile.c
src/util/virstoragefile.c
+38
-0
tests/virstoragetest.c
tests/virstoragetest.c
+19
-0
未找到文件。
src/util/virstoragefile.c
浏览文件 @
bc225b1b
...
...
@@ -2772,6 +2772,43 @@ virStorageSourceParseBackingJSONSheepdog(virStorageSourcePtr src,
}
static
int
virStorageSourceParseBackingJSONSSH
(
virStorageSourcePtr
src
,
virJSONValuePtr
json
,
int
opaque
ATTRIBUTE_UNUSED
)
{
const
char
*
path
=
virJSONValueObjectGetString
(
json
,
"path"
);
const
char
*
host
=
virJSONValueObjectGetString
(
json
,
"host"
);
const
char
*
port
=
virJSONValueObjectGetString
(
json
,
"port"
);
if
(
!
host
||
!
path
)
{
virReportError
(
VIR_ERR_INVALID_ARG
,
"%s"
,
_
(
"missing host or path of SSH JSON backing "
"volume definition"
));
return
-
1
;
}
src
->
type
=
VIR_STORAGE_TYPE_NETWORK
;
src
->
protocol
=
VIR_STORAGE_NET_PROTOCOL_SSH
;
if
(
VIR_STRDUP
(
src
->
path
,
path
)
<
0
)
return
-
1
;
if
(
VIR_ALLOC_N
(
src
->
hosts
,
1
)
<
0
)
return
-
1
;
src
->
nhosts
=
1
;
src
->
hosts
[
0
].
transport
=
VIR_STORAGE_NET_HOST_TRANS_TCP
;
if
(
VIR_STRDUP
(
src
->
hosts
[
0
].
name
,
host
)
<
0
)
return
-
1
;
if
(
VIR_STRDUP
(
src
->
hosts
[
0
].
port
,
port
)
<
0
)
return
-
1
;
return
0
;
}
struct
virStorageSourceJSONDriverParser
{
const
char
*
drvname
;
int
(
*
func
)(
virStorageSourcePtr
src
,
virJSONValuePtr
json
,
int
opaque
);
...
...
@@ -2791,6 +2828,7 @@ static const struct virStorageSourceJSONDriverParser jsonParsers[] = {
{
"iscsi"
,
virStorageSourceParseBackingJSONiSCSI
,
0
},
{
"nbd"
,
virStorageSourceParseBackingJSONNbd
,
0
},
{
"sheepdog"
,
virStorageSourceParseBackingJSONSheepdog
,
0
},
{
"ssh"
,
virStorageSourceParseBackingJSONSSH
,
0
},
};
...
...
tests/virstoragetest.c
浏览文件 @
bc225b1b
...
...
@@ -1467,6 +1467,25 @@ mymain(void)
"<source protocol='nbd' name='blah'>
\n
"
" <host name='example.org' port='6000'/>
\n
"
"</source>
\n
"
);
TEST_BACKING_PARSE
(
"json:{
\"
file
\"
:{
\"
driver
\"
:
\"
ssh
\"
,"
"
\"
host
\"
:
\"
example.org
\"
,"
"
\"
port
\"
:
\"
6000
\"
,"
"
\"
path
\"
:
\"
blah
\"
,"
"
\"
user
\"
:
\"
user
\"
"
"}"
"}"
,
"<source protocol='ssh' name='blah'>
\n
"
" <host name='example.org' port='6000'/>
\n
"
"</source>
\n
"
);
TEST_BACKING_PARSE
(
"json:{
\"
file.driver
\"
:
\"
ssh
\"
,"
"
\"
file.host
\"
:
\"
example.org
\"
,"
"
\"
file.port
\"
:
\"
6000
\"
,"
"
\"
file.path
\"
:
\"
blah
\"
,"
"
\"
file.user
\"
:
\"
user
\"
"
"}"
,
"<source protocol='ssh' name='blah'>
\n
"
" <host name='example.org' port='6000'/>
\n
"
"</source>
\n
"
);
cleanup:
/* Final cleanup */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录