Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
d722d8c7
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看板
提交
d722d8c7
编写于
8月 11, 2014
作者:
T
Taowei
提交者:
Michal Privoznik
8月 15, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
vbox: Rewrite vboxDomainSnapshotIsCurrent
上级
8bd13162
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
59 addition
and
63 deletion
+59
-63
src/vbox/vbox_common.c
src/vbox/vbox_common.c
+57
-0
src/vbox/vbox_tmpl.c
src/vbox/vbox_tmpl.c
+0
-63
src/vbox/vbox_uniformed_api.h
src/vbox/vbox_uniformed_api.h
+2
-0
未找到文件。
src/vbox/vbox_common.c
浏览文件 @
d722d8c7
...
...
@@ -6360,3 +6360,60 @@ vboxDomainSnapshotCurrent(virDomainPtr dom, unsigned int flags)
vboxIIDUnalloc
(
&
iid
);
return
ret
;
}
int
vboxDomainSnapshotIsCurrent
(
virDomainSnapshotPtr
snapshot
,
unsigned
int
flags
)
{
virDomainPtr
dom
=
snapshot
->
domain
;
VBOX_OBJECT_CHECK
(
dom
->
conn
,
int
,
-
1
);
vboxIIDUnion
iid
;
IMachine
*
machine
=
NULL
;
ISnapshot
*
snap
=
NULL
;
ISnapshot
*
current
=
NULL
;
PRUnichar
*
nameUtf16
=
NULL
;
char
*
name
=
NULL
;
nsresult
rc
;
virCheckFlags
(
0
,
-
1
);
if
(
openSessionForMachine
(
data
,
dom
->
uuid
,
&
iid
,
&
machine
,
false
)
<
0
)
goto
cleanup
;
if
(
!
(
snap
=
vboxDomainSnapshotGet
(
data
,
dom
,
machine
,
snapshot
->
name
)))
goto
cleanup
;
rc
=
gVBoxAPI
.
UIMachine
.
GetCurrentSnapshot
(
machine
,
&
current
);
if
(
NS_FAILED
(
rc
))
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"could not get current snapshot"
));
goto
cleanup
;
}
if
(
!
current
)
{
ret
=
0
;
goto
cleanup
;
}
rc
=
gVBoxAPI
.
UISnapshot
.
GetName
(
current
,
&
nameUtf16
);
if
(
NS_FAILED
(
rc
)
||
!
nameUtf16
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"could not get current snapshot name"
));
goto
cleanup
;
}
VBOX_UTF16_TO_UTF8
(
nameUtf16
,
&
name
);
if
(
!
name
)
{
virReportOOMError
();
goto
cleanup
;
}
ret
=
STREQ
(
snapshot
->
name
,
name
);
cleanup:
VBOX_UTF8_FREE
(
name
);
VBOX_UTF16_FREE
(
nameUtf16
);
VBOX_RELEASE
(
snap
);
VBOX_RELEASE
(
current
);
VBOX_RELEASE
(
machine
);
vboxIIDUnalloc
(
&
iid
);
return
ret
;
}
src/vbox/vbox_tmpl.c
浏览文件 @
d722d8c7
...
...
@@ -1523,69 +1523,6 @@ vboxDomainSnapshotGet(vboxGlobalData *data,
return
snapshot
;
}
static
int
vboxDomainSnapshotIsCurrent
(
virDomainSnapshotPtr
snapshot
,
unsigned
int
flags
)
{
virDomainPtr
dom
=
snapshot
->
domain
;
VBOX_OBJECT_CHECK
(
dom
->
conn
,
int
,
-
1
);
vboxIID
iid
=
VBOX_IID_INITIALIZER
;
IMachine
*
machine
=
NULL
;
ISnapshot
*
snap
=
NULL
;
ISnapshot
*
current
=
NULL
;
PRUnichar
*
nameUtf16
=
NULL
;
char
*
name
=
NULL
;
nsresult
rc
;
virCheckFlags
(
0
,
-
1
);
vboxIIDFromUUID
(
&
iid
,
dom
->
uuid
);
rc
=
VBOX_OBJECT_GET_MACHINE
(
iid
.
value
,
&
machine
);
if
(
NS_FAILED
(
rc
))
{
virReportError
(
VIR_ERR_NO_DOMAIN
,
"%s"
,
_
(
"no domain with matching UUID"
));
goto
cleanup
;
}
if
(
!
(
snap
=
vboxDomainSnapshotGet
(
data
,
dom
,
machine
,
snapshot
->
name
)))
goto
cleanup
;
rc
=
machine
->
vtbl
->
GetCurrentSnapshot
(
machine
,
&
current
);
if
(
NS_FAILED
(
rc
))
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"could not get current snapshot"
));
goto
cleanup
;
}
if
(
!
current
)
{
ret
=
0
;
goto
cleanup
;
}
rc
=
current
->
vtbl
->
GetName
(
current
,
&
nameUtf16
);
if
(
NS_FAILED
(
rc
)
||
!
nameUtf16
)
{
virReportError
(
VIR_ERR_INTERNAL_ERROR
,
"%s"
,
_
(
"could not get current snapshot name"
));
goto
cleanup
;
}
VBOX_UTF16_TO_UTF8
(
nameUtf16
,
&
name
);
if
(
!
name
)
{
virReportOOMError
();
goto
cleanup
;
}
ret
=
STREQ
(
snapshot
->
name
,
name
);
cleanup:
VBOX_UTF8_FREE
(
name
);
VBOX_UTF16_FREE
(
nameUtf16
);
VBOX_RELEASE
(
snap
);
VBOX_RELEASE
(
current
);
VBOX_RELEASE
(
machine
);
vboxIIDUnalloc
(
&
iid
);
return
ret
;
}
static
int
vboxDomainSnapshotHasMetadata
(
virDomainSnapshotPtr
snapshot
,
unsigned
int
flags
)
...
...
src/vbox/vbox_uniformed_api.h
浏览文件 @
d722d8c7
...
...
@@ -589,6 +589,8 @@ vboxDomainSnapshotGetParent(virDomainSnapshotPtr snapshot,
unsigned
int
flags
);
virDomainSnapshotPtr
vboxDomainSnapshotCurrent
(
virDomainPtr
dom
,
unsigned
int
flags
);
int
vboxDomainSnapshotIsCurrent
(
virDomainSnapshotPtr
snapshot
,
unsigned
int
flags
);
/* Version specified functions for installing uniformed API */
void
vbox22InstallUniformedAPI
(
vboxUniformedAPI
*
pVBoxAPI
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录