Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
adba0701
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,发现更多精彩内容 >>
提交
adba0701
编写于
3月 21, 2013
作者:
P
Paolo Bonzini
提交者:
Osier Yang
3月 22, 2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
secret: add iscsi to possible usage types
Signed-off-by:
N
Paolo Bonzini
<
pbonzini@redhat.com
>
上级
8110a824
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
53 addition
and
1 deletion
+53
-1
docs/formatsecret.html.in
docs/formatsecret.html.in
+12
-0
docs/schemas/secret.rng
docs/schemas/secret.rng
+10
-0
include/libvirt/libvirt.h.in
include/libvirt/libvirt.h.in
+1
-0
src/conf/secret_conf.c
src/conf/secret_conf.c
+21
-1
src/conf/secret_conf.h
src/conf/secret_conf.h
+1
-0
src/secret/secret_driver.c
src/secret/secret_driver.c
+8
-0
未找到文件。
docs/formatsecret.html.in
浏览文件 @
adba0701
...
...
@@ -66,6 +66,18 @@
device
</a>
.
<span
class=
"since"
>
Since 0.9.7
</span>
.
</p>
<h3>
Usage type "iscsi"
</h3>
<p>
This secret is associated with an iSCSI target for CHAP authentication.
The
<code>
<
usage type='iscsi'
>
</code>
element must contain
a single
<code>
target
</code>
element that specifies a usage name
for the secret. The iSCSI secret can then be used by UUID or by
this usage name via the
<code>
<
auth
>
</code>
element of
a
<a
href=
"domain.html#elementsDisks"
>
disk
device
</a>
.
<span
class=
"since"
>
Since 1.0.4
</span>
.
</p>
<h2><a
name=
"example"
>
Example
</a></h2>
<pre>
...
...
docs/schemas/secret.rng
浏览文件 @
adba0701
...
...
@@ -41,6 +41,7 @@
<choice>
<ref
name=
'usagevolume'
/>
<ref
name=
'usageceph'
/>
<ref
name=
'usageiscsi'
/>
<!-- More choices later -->
</choice>
</element>
...
...
@@ -67,4 +68,13 @@
</element>
</define>
<define
name=
'usageiscsi'
>
<attribute
name=
'type'
>
<value>
iscsi
</value>
</attribute>
<element
name=
'target'
>
<ref
name=
'genericName'
/>
</element>
</define>
</grammar>
include/libvirt/libvirt.h.in
浏览文件 @
adba0701
...
...
@@ -3649,6 +3649,7 @@ typedef enum {
VIR_SECRET_USAGE_TYPE_NONE
=
0
,
VIR_SECRET_USAGE_TYPE_VOLUME
=
1
,
VIR_SECRET_USAGE_TYPE_CEPH
=
2
,
VIR_SECRET_USAGE_TYPE_ISCSI
=
3
,
#ifdef VIR_ENUM_SENTINELS
VIR_SECRET_USAGE_TYPE_LAST
...
...
src/conf/secret_conf.c
浏览文件 @
adba0701
...
...
@@ -36,7 +36,7 @@
#define VIR_FROM_THIS VIR_FROM_SECRET
VIR_ENUM_IMPL
(
virSecretUsageType
,
VIR_SECRET_USAGE_TYPE_LAST
,
"none"
,
"volume"
,
"ceph"
)
"none"
,
"volume"
,
"ceph"
,
"iscsi"
)
void
virSecretDefFree
(
virSecretDefPtr
def
)
...
...
@@ -57,6 +57,10 @@ virSecretDefFree(virSecretDefPtr def)
VIR_FREE
(
def
->
usage
.
ceph
);
break
;
case
VIR_SECRET_USAGE_TYPE_ISCSI
:
VIR_FREE
(
def
->
usage
.
target
);
break
;
default:
VIR_ERROR
(
_
(
"unexpected secret usage type %d"
),
def
->
usage_type
);
break
;
...
...
@@ -108,6 +112,15 @@ virSecretDefParseUsage(xmlXPathContextPtr ctxt,
}
break
;
case
VIR_SECRET_USAGE_TYPE_ISCSI
:
def
->
usage
.
target
=
virXPathString
(
"string(./usage/target)"
,
ctxt
);
if
(
!
def
->
usage
.
target
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"iSCSI usage specified, but target is missing"
));
return
-
1
;
}
break
;
default:
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
_
(
"unexpected secret usage type %d"
),
...
...
@@ -262,6 +275,13 @@ virSecretDefFormatUsage(virBufferPtr buf,
}
break
;
case
VIR_SECRET_USAGE_TYPE_ISCSI
:
if
(
def
->
usage
.
target
!=
NULL
)
{
virBufferEscapeString
(
buf
,
" <target>%s</target>
\n
"
,
def
->
usage
.
target
);
}
break
;
default:
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
_
(
"unexpected secret usage type %d"
),
...
...
src/conf/secret_conf.h
浏览文件 @
adba0701
...
...
@@ -39,6 +39,7 @@ struct _virSecretDef {
union
{
char
*
volume
;
/* May be NULL */
char
*
ceph
;
char
*
target
;
}
usage
;
};
...
...
src/secret/secret_driver.c
浏览文件 @
adba0701
...
...
@@ -149,6 +149,11 @@ secretFindByUsage(virSecretDriverStatePtr driver, int usageType, const char *usa
if
(
STREQ
(
s
->
def
->
usage
.
ceph
,
usageID
))
return
s
;
break
;
case
VIR_SECRET_USAGE_TYPE_ISCSI
:
if
(
STREQ
(
s
->
def
->
usage
.
target
,
usageID
))
return
s
;
break
;
}
}
return
NULL
;
...
...
@@ -614,6 +619,9 @@ secretUsageIDForDef(virSecretDefPtr def)
case
VIR_SECRET_USAGE_TYPE_CEPH
:
return
def
->
usage
.
ceph
;
case
VIR_SECRET_USAGE_TYPE_ISCSI
:
return
def
->
usage
.
target
;
default:
return
NULL
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录