Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
2e5e5115
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,发现更多精彩内容 >>
提交
2e5e5115
编写于
2月 14, 2007
作者:
D
Daniel P. Berrange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor to allowing changing config of active domains
上级
4ccb9579
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
228 addition
and
201 deletion
+228
-201
ChangeLog
ChangeLog
+6
-0
qemud/conf.c
qemud/conf.c
+168
-154
qemud/conf.h
qemud/conf.h
+14
-5
qemud/dispatch.c
qemud/dispatch.c
+12
-12
qemud/driver.c
qemud/driver.c
+13
-22
qemud/internal.h
qemud/internal.h
+3
-2
qemud/qemud.c
qemud/qemud.c
+12
-6
未找到文件。
ChangeLog
浏览文件 @
2e5e5115
Tue Feb 14 11:58:24 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* src/qemud.c, src/conf.c, src/internal.c, src/driver.c: Change
the handling of the internal VM config to allow replacing of the
config for a VM which is running.
Tue Feb 14 16:53:25 IST 2007 Mark McLoughlin <markmc@redhat.com>
Fix from Richard W.M. Jones <rjones@redhat.com>
...
...
qemud/conf.c
浏览文件 @
2e5e5115
此差异已折叠。
点击以展开。
qemud/conf.h
浏览文件 @
2e5e5115
...
...
@@ -30,18 +30,27 @@ int qemudBuildCommandLine(struct qemud_server *server,
struct
qemud_vm
*
vm
,
char
***
argv
);
void
qemudFreeVMDef
(
struct
qemud_vm_def
*
vm
);
int
qemudScanConfigs
(
struct
qemud_server
*
server
);
int
qemudDeleteConfig
(
struct
qemud_server
*
server
,
const
char
*
configFile
,
const
char
*
name
);
void
qemudFreeVM
(
struct
qemud_vm
*
vm
);
struct
qemud_vm
*
qemudLoadConfigXML
(
struct
qemud_server
*
server
,
const
char
*
file
,
const
char
*
doc
,
int
persist
);
int
qemudScanConfigs
(
struct
qemud_server
*
server
);
char
*
qemudGenerateXML
(
struct
qemud_server
*
server
,
struct
qemud_vm
*
vm
);
int
qemudDeleteConfigXML
(
struct
qemud_server
*
server
,
struct
qemud_vm
*
vm
);
struct
qemud_vm
*
vm
,
int
live
);
void
qemudFreeNetwork
(
struct
qemud_network
*
network
);
struct
qemud_network
*
qemudLoadNetworkConfigXML
(
struct
qemud_server
*
server
,
const
char
*
file
,
const
char
*
doc
,
int
persist
);
char
*
qemudGenerateNetworkXML
(
struct
qemud_server
*
server
,
struct
qemud_network
*
network
);
#endif
...
...
qemud/dispatch.c
浏览文件 @
2e5e5115
...
...
@@ -154,9 +154,9 @@ static int qemudDispatchDomainCreate(struct qemud_server *server, struct qemud_c
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_CREATE
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainCreateReply
);
out
->
data
.
domainCreateReply
.
id
=
vm
->
def
.
id
;
memcpy
(
out
->
data
.
domainCreateReply
.
uuid
,
vm
->
def
.
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainCreateReply
.
name
,
vm
->
def
.
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainCreateReply
.
id
=
vm
->
id
;
memcpy
(
out
->
data
.
domainCreateReply
.
uuid
,
vm
->
def
->
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainCreateReply
.
name
,
vm
->
def
->
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainCreateReply
.
name
[
QEMUD_MAX_NAME_LEN
-
1
]
=
'\0'
;
}
return
0
;
...
...
@@ -174,8 +174,8 @@ static int qemudDispatchDomainLookupByID(struct qemud_server *server, struct qem
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_LOOKUP_BY_ID
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainLookupByIDReply
);
memcpy
(
out
->
data
.
domainLookupByIDReply
.
uuid
,
vm
->
def
.
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainLookupByIDReply
.
name
,
vm
->
def
.
name
,
QEMUD_MAX_NAME_LEN
-
1
);
memcpy
(
out
->
data
.
domainLookupByIDReply
.
uuid
,
vm
->
def
->
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainLookupByIDReply
.
name
,
vm
->
def
->
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainLookupByIDReply
.
name
[
QEMUD_MAX_NAME_LEN
-
1
]
=
'\0'
;
}
return
0
;
...
...
@@ -193,8 +193,8 @@ static int qemudDispatchDomainLookupByUUID(struct qemud_server *server, struct q
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_LOOKUP_BY_UUID
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainLookupByUUIDReply
);
out
->
data
.
domainLookupByUUIDReply
.
id
=
vm
->
def
.
id
;
strncpy
(
out
->
data
.
domainLookupByUUIDReply
.
name
,
vm
->
def
.
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainLookupByUUIDReply
.
id
=
vm
->
id
;
strncpy
(
out
->
data
.
domainLookupByUUIDReply
.
name
,
vm
->
def
->
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainLookupByUUIDReply
.
name
[
QEMUD_MAX_NAME_LEN
-
1
]
=
'\0'
;
}
return
0
;
...
...
@@ -214,8 +214,8 @@ static int qemudDispatchDomainLookupByName(struct qemud_server *server, struct q
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_LOOKUP_BY_NAME
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainLookupByNameReply
);
out
->
data
.
domainLookupByNameReply
.
id
=
vm
->
def
.
id
;
memcpy
(
out
->
data
.
domainLookupByNameReply
.
uuid
,
vm
->
def
.
uuid
,
QEMUD_UUID_RAW_LEN
);
out
->
data
.
domainLookupByNameReply
.
id
=
vm
->
id
;
memcpy
(
out
->
data
.
domainLookupByNameReply
.
uuid
,
vm
->
def
->
uuid
,
QEMUD_UUID_RAW_LEN
);
}
return
0
;
}
...
...
@@ -420,7 +420,7 @@ static int qemudDispatchDomainStart(struct qemud_server *server, struct qemud_cl
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_START
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainStartReply
);
out
->
data
.
domainStartReply
.
id
=
vm
->
def
.
id
;
out
->
data
.
domainStartReply
.
id
=
vm
->
id
;
}
return
0
;
}
...
...
@@ -439,8 +439,8 @@ static int qemudDispatchDomainDefine(struct qemud_server *server, struct qemud_c
}
else
{
out
->
header
.
type
=
QEMUD_PKT_DOMAIN_DEFINE
;
out
->
header
.
dataSize
=
sizeof
(
out
->
data
.
domainDefineReply
);
memcpy
(
out
->
data
.
domainDefineReply
.
uuid
,
vm
->
def
.
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainDefineReply
.
name
,
vm
->
def
.
name
,
QEMUD_MAX_NAME_LEN
-
1
);
memcpy
(
out
->
data
.
domainDefineReply
.
uuid
,
vm
->
def
->
uuid
,
QEMUD_UUID_RAW_LEN
);
strncpy
(
out
->
data
.
domainDefineReply
.
name
,
vm
->
def
->
name
,
QEMUD_MAX_NAME_LEN
-
1
);
out
->
data
.
domainDefineReply
.
name
[
QEMUD_MAX_NAME_LEN
-
1
]
=
'\0'
;
}
return
0
;
...
...
qemud/driver.c
浏览文件 @
2e5e5115
...
...
@@ -225,7 +225,7 @@ struct qemud_vm *qemudFindVMByID(const struct qemud_server *server, int id) {
struct
qemud_vm
*
vm
=
server
->
activevms
;
while
(
vm
)
{
if
(
vm
->
def
.
id
==
id
)
if
(
vm
->
id
==
id
)
return
vm
;
vm
=
vm
->
next
;
}
...
...
@@ -238,14 +238,14 @@ struct qemud_vm *qemudFindVMByUUID(const struct qemud_server *server,
struct
qemud_vm
*
vm
=
server
->
activevms
;
while
(
vm
)
{
if
(
!
memcmp
(
vm
->
def
.
uuid
,
uuid
,
QEMUD_UUID_RAW_LEN
))
if
(
!
memcmp
(
vm
->
def
->
uuid
,
uuid
,
QEMUD_UUID_RAW_LEN
))
return
vm
;
vm
=
vm
->
next
;
}
vm
=
server
->
inactivevms
;
while
(
vm
)
{
if
(
!
memcmp
(
vm
->
def
.
uuid
,
uuid
,
QEMUD_UUID_RAW_LEN
))
if
(
!
memcmp
(
vm
->
def
->
uuid
,
uuid
,
QEMUD_UUID_RAW_LEN
))
return
vm
;
vm
=
vm
->
next
;
}
...
...
@@ -258,14 +258,14 @@ struct qemud_vm *qemudFindVMByName(const struct qemud_server *server,
struct
qemud_vm
*
vm
=
server
->
activevms
;
while
(
vm
)
{
if
(
!
strcmp
(
vm
->
def
.
name
,
name
))
if
(
!
strcmp
(
vm
->
def
->
name
,
name
))
return
vm
;
vm
=
vm
->
next
;
}
vm
=
server
->
inactivevms
;
while
(
vm
)
{
if
(
!
strcmp
(
vm
->
def
.
name
,
name
))
if
(
!
strcmp
(
vm
->
def
->
name
,
name
))
return
vm
;
vm
=
vm
->
next
;
}
...
...
@@ -281,7 +281,7 @@ int qemudListDomains(struct qemud_server *server, int *ids, int nids) {
struct
qemud_vm
*
vm
=
server
->
activevms
;
int
got
=
0
;
while
(
vm
&&
got
<
nids
)
{
ids
[
got
]
=
vm
->
def
.
id
;
ids
[
got
]
=
vm
->
id
;
vm
=
vm
->
next
;
got
++
;
}
...
...
@@ -297,16 +297,11 @@ struct qemud_vm *qemudDomainCreate(struct qemud_server *server, const char *xml)
return
NULL
;
}
if
(
qemud
StartVMDaemon
(
server
,
vm
)
<
0
)
{
if
(
qemud
DomainStart
(
server
,
vm
)
<
0
)
{
qemudFreeVM
(
vm
);
return
NULL
;
}
vm
->
next
=
server
->
activevms
;
server
->
activevms
=
vm
;
server
->
nactivevms
++
;
server
->
nvmfds
+=
2
;
return
vm
;
}
...
...
@@ -399,9 +394,9 @@ int qemudDomainGetInfo(struct qemud_server *server, const unsigned char *uuid,
}
}
*
maxmem
=
vm
->
def
.
maxmem
;
*
memory
=
vm
->
def
.
memory
;
*
nrVirtCpu
=
vm
->
def
.
vcpus
;
*
maxmem
=
vm
->
def
->
maxmem
;
*
memory
=
vm
->
def
->
memory
;
*
nrVirtCpu
=
vm
->
def
->
vcpus
;
return
0
;
}
...
...
@@ -437,7 +432,7 @@ int qemudDomainDumpXML(struct qemud_server *server, const unsigned char *uuid, c
return
-
1
;
}
vmxml
=
qemudGenerateXML
(
server
,
vm
);
vmxml
=
qemudGenerateXML
(
server
,
vm
,
1
);
if
(
!
vmxml
)
return
-
1
;
...
...
@@ -452,7 +447,7 @@ int qemudListDefinedDomains(struct qemud_server *server, char *const*names, int
struct
qemud_vm
*
vm
=
server
->
inactivevms
;
int
got
=
0
;
while
(
vm
&&
got
<
nnames
)
{
strncpy
(
names
[
got
],
vm
->
def
.
name
,
QEMUD_MAX_NAME_LEN
-
1
);
strncpy
(
names
[
got
],
vm
->
def
->
name
,
QEMUD_MAX_NAME_LEN
-
1
);
names
[
got
][
QEMUD_MAX_NAME_LEN
-
1
]
=
'\0'
;
vm
=
vm
->
next
;
got
++
;
...
...
@@ -501,10 +496,6 @@ struct qemud_vm *qemudDomainDefine(struct qemud_server *server, const char *xml)
return
NULL
;
}
vm
->
next
=
server
->
inactivevms
;
server
->
inactivevms
=
vm
;
server
->
ninactivevms
++
;
return
vm
;
}
...
...
@@ -522,7 +513,7 @@ int qemudDomainUndefine(struct qemud_server *server, const unsigned char *uuid)
return
-
1
;
}
if
(
qemudDeleteConfig
(
server
,
vm
->
configFile
,
vm
->
def
.
name
)
<
0
)
if
(
qemudDeleteConfig
(
server
,
vm
->
configFile
,
vm
->
def
->
name
)
<
0
)
return
-
1
;
vm
->
configFile
[
0
]
=
'\0'
;
...
...
qemud/internal.h
浏览文件 @
2e5e5115
...
...
@@ -169,7 +169,6 @@ struct qemud_vm_os_def {
/* Guest VM main configuration */
struct
qemud_vm_def
{
int
id
;
int
virtType
;
unsigned
char
uuid
[
QEMUD_UUID_RAW_LEN
];
char
name
[
QEMUD_MAX_NAME_LEN
];
...
...
@@ -198,13 +197,15 @@ struct qemud_vm {
int
stderr
;
int
monitor
;
int
pid
;
int
id
;
int
*
tapfds
;
int
ntapfds
;
char
configFile
[
PATH_MAX
];
struct
qemud_vm_def
def
;
struct
qemud_vm_def
*
def
;
/* The current definition */
struct
qemud_vm_def
*
newDef
;
/* New definition to activate at shutdown */
struct
qemud_vm
*
next
;
};
...
...
qemud/qemud.c
浏览文件 @
2e5e5115
...
...
@@ -438,16 +438,16 @@ int qemudStartVMDaemon(struct qemud_server *server,
char
**
argv
=
NULL
;
int
i
,
ret
=
-
1
;
if
(
vm
->
def
.
vncPort
<
0
)
vm
->
def
.
vncActivePort
=
5900
+
server
->
nextvmid
;
if
(
vm
->
def
->
vncPort
<
0
)
vm
->
def
->
vncActivePort
=
5900
+
server
->
nextvmid
;
else
vm
->
def
.
vncActivePort
=
vm
->
def
.
vncPort
;
vm
->
def
->
vncActivePort
=
vm
->
def
->
vncPort
;
if
(
qemudBuildCommandLine
(
server
,
vm
,
&
argv
)
<
0
)
return
-
1
;
if
(
qemudExec
(
server
,
argv
,
&
vm
->
pid
,
&
vm
->
stdout
,
&
vm
->
stderr
,
vm
->
tapfds
)
==
0
)
{
vm
->
def
.
id
=
server
->
nextvmid
++
;
vm
->
id
=
server
->
nextvmid
++
;
ret
=
0
;
}
...
...
@@ -711,7 +711,7 @@ int qemudShutdownVMDaemon(struct qemud_server *server, struct qemud_vm *vm) {
curr
->
monitor
=
-
1
;
server
->
nvmfds
-=
2
;
net
=
vm
->
def
.
nets
;
net
=
vm
->
def
->
nets
;
while
(
net
)
{
if
(
net
->
type
==
QEMUD_NET_NETWORK
)
qemudNetworkIfaceDisconnect
(
server
,
vm
,
net
);
...
...
@@ -726,7 +726,13 @@ int qemudShutdownVMDaemon(struct qemud_server *server, struct qemud_vm *vm) {
}
vm
->
pid
=
-
1
;
vm
->
def
.
id
=
-
1
;
vm
->
id
=
-
1
;
if
(
vm
->
newDef
)
{
qemudFreeVMDef
(
vm
->
def
);
vm
->
def
=
vm
->
newDef
;
vm
->
newDef
=
NULL
;
}
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录