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