Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
96837ab1
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,发现更多精彩内容 >>
提交
96837ab1
编写于
3月 05, 2019
作者:
L
Lin Ma
提交者:
Michal Privoznik
3月 05, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
virsh-network: Introduce virshNetworkEventCallback to handle network events
Signed-off-by:
N
Lin Ma
<
lma@suse.com
>
上级
ab8aa7cc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
3 deletion
+22
-3
tools/virsh-network.c
tools/virsh-network.c
+14
-3
tools/virsh-network.h
tools/virsh-network.h
+8
-0
未找到文件。
tools/virsh-network.c
浏览文件 @
96837ab1
...
...
@@ -1156,6 +1156,7 @@ struct virshNetEventData {
bool
loop
;
bool
timestamp
;
int
count
;
virshNetworkEventCallback
*
cb
;
};
typedef
struct
virshNetEventData
virshNetEventData
;
...
...
@@ -1195,6 +1196,12 @@ vshEventLifecyclePrint(virConnectPtr conn ATTRIBUTE_UNUSED,
vshEventDone
(
data
->
ctl
);
}
virshNetworkEventCallback
virshNetworkEventCallbacks
[]
=
{
{
"lifecycle"
,
VIR_NETWORK_EVENT_CALLBACK
(
vshEventLifecyclePrint
),
},
};
verify
(
VIR_NETWORK_EVENT_ID_LAST
==
ARRAY_CARDINALITY
(
virshNetworkEventCallbacks
));
static
const
vshCmdInfo
info_network_event
[]
=
{
{.
name
=
"help"
,
.
data
=
N_
(
"Network Events"
)
...
...
@@ -1246,7 +1253,7 @@ cmdNetworkEvent(vshControl *ctl, const vshCmd *cmd)
size_t
i
;
for
(
i
=
0
;
i
<
VIR_NETWORK_EVENT_ID_LAST
;
i
++
)
vshPrint
(
ctl
,
"%s
\n
"
,
virshNetworkEvent
IdTypeToString
(
i
)
);
vshPrint
(
ctl
,
"%s
\n
"
,
virshNetworkEvent
Callbacks
[
i
].
name
);
return
true
;
}
...
...
@@ -1256,7 +1263,10 @@ cmdNetworkEvent(vshControl *ctl, const vshCmd *cmd)
vshError
(
ctl
,
"%s"
,
_
(
"either --list or --event <type> is required"
));
return
false
;
}
if
((
event
=
virshNetworkEventIdTypeFromString
(
eventName
))
<
0
)
{
for
(
event
=
0
;
event
<
VIR_NETWORK_EVENT_ID_LAST
;
event
++
)
if
(
STREQ
(
eventName
,
virshNetworkEventCallbacks
[
event
].
name
))
break
;
if
(
event
==
VIR_NETWORK_EVENT_ID_LAST
)
{
vshError
(
ctl
,
_
(
"unknown event type %s"
),
eventName
);
return
false
;
}
...
...
@@ -1265,6 +1275,7 @@ cmdNetworkEvent(vshControl *ctl, const vshCmd *cmd)
data
.
loop
=
vshCommandOptBool
(
cmd
,
"loop"
);
data
.
timestamp
=
vshCommandOptBool
(
cmd
,
"timestamp"
);
data
.
count
=
0
;
data
.
cb
=
&
virshNetworkEventCallbacks
[
event
];
if
(
vshCommandOptTimeoutToMs
(
ctl
,
cmd
,
&
timeout
)
<
0
)
return
false
;
...
...
@@ -1274,7 +1285,7 @@ cmdNetworkEvent(vshControl *ctl, const vshCmd *cmd)
goto
cleanup
;
if
((
eventId
=
virConnectNetworkEventRegisterAny
(
priv
->
conn
,
net
,
event
,
VIR_NETWORK_EVENT_CALLBACK
(
vshEventLifecyclePrint
)
,
data
.
cb
->
cb
,
&
data
,
NULL
))
<
0
)
goto
cleanup
;
switch
(
vshEventWait
(
ctl
))
{
...
...
tools/virsh-network.h
浏览文件 @
96837ab1
...
...
@@ -32,6 +32,14 @@ virshCommandOptNetworkBy(vshControl *ctl, const vshCmd *cmd,
virshCommandOptNetworkBy(_ctl, _cmd, _name, \
VIRSH_BYUUID | VIRSH_BYNAME)
struct
virshNetworkEventCallback
{
const
char
*
name
;
virConnectNetworkEventGenericCallback
cb
;
};
typedef
struct
virshNetworkEventCallback
virshNetworkEventCallback
;
extern
virshNetworkEventCallback
virshNetworkEventCallbacks
[];
extern
const
vshCmdDef
networkCmds
[];
#endif
/* LIBVIRT_VIRSH_NETWORK_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录