Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
e80f1006
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看板
提交
e80f1006
编写于
1月 23, 2009
作者:
J
John Levon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
parse IP address for bridge interfaces
上级
c4985e94
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
106 addition
and
6 deletion
+106
-6
ChangeLog
ChangeLog
+11
-0
src/domain_conf.c
src/domain_conf.c
+10
-1
src/domain_conf.h
src/domain_conf.h
+1
-0
src/xend_internal.c
src/xend_internal.c
+10
-5
src/xm_internal.c
src/xm_internal.c
+5
-0
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.sexpr
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.sexpr
+2
-0
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
+34
-0
tests/sexpr2xmltest.c
tests/sexpr2xmltest.c
+1
-0
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
+1
-0
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.xml
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.xml
+30
-0
tests/xml2sexprtest.c
tests/xml2sexprtest.c
+1
-0
未找到文件。
ChangeLog
浏览文件 @
e80f1006
Thu Jan 22 17:42:37 PST 2009 John Levon <john.levon@sun.com>
* src/domain_conf.c, src/domain_conf.h, src/xend_internal.c,
src/xm_internal.c: parse IP address for bridge interfaces
* tests/sexpr2xmltest.c, tests/xml2sexprtest.c,
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.sexpr,
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml,
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr,
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.xml: add tests
Thu Jan 21 19:44:12 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
Thu Jan 21 19:44:12 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
Use the GNULIB random_r function
Use the GNULIB random_r function
...
...
src/domain_conf.c
浏览文件 @
e80f1006
...
@@ -289,6 +289,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
...
@@ -289,6 +289,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
VIR_FREE
(
def
->
data
.
bridge
.
brname
);
VIR_FREE
(
def
->
data
.
bridge
.
brname
);
VIR_FREE
(
def
->
data
.
bridge
.
script
);
VIR_FREE
(
def
->
data
.
bridge
.
script
);
VIR_FREE
(
def
->
data
.
bridge
.
ipaddr
);
break
;
break
;
}
}
...
@@ -887,7 +888,8 @@ virDomainNetDefParseXML(virConnectPtr conn,
...
@@ -887,7 +888,8 @@ virDomainNetDefParseXML(virConnectPtr conn,
address
=
virXMLPropString
(
cur
,
"address"
);
address
=
virXMLPropString
(
cur
,
"address"
);
port
=
virXMLPropString
(
cur
,
"port"
);
port
=
virXMLPropString
(
cur
,
"port"
);
}
else
if
((
address
==
NULL
)
&&
}
else
if
((
address
==
NULL
)
&&
(
def
->
type
==
VIR_DOMAIN_NET_TYPE_ETHERNET
)
&&
(
def
->
type
==
VIR_DOMAIN_NET_TYPE_ETHERNET
||
def
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
)
&&
(
xmlStrEqual
(
cur
->
name
,
BAD_CAST
"ip"
)))
{
(
xmlStrEqual
(
cur
->
name
,
BAD_CAST
"ip"
)))
{
address
=
virXMLPropString
(
cur
,
"address"
);
address
=
virXMLPropString
(
cur
,
"address"
);
}
else
if
((
ifname
==
NULL
)
&&
}
else
if
((
ifname
==
NULL
)
&&
...
@@ -954,6 +956,10 @@ virDomainNetDefParseXML(virConnectPtr conn,
...
@@ -954,6 +956,10 @@ virDomainNetDefParseXML(virConnectPtr conn,
def
->
data
.
bridge
.
script
=
script
;
def
->
data
.
bridge
.
script
=
script
;
script
=
NULL
;
script
=
NULL
;
}
}
if
(
address
!=
NULL
)
{
def
->
data
.
bridge
.
ipaddr
=
address
;
address
=
NULL
;
}
break
;
break
;
case
VIR_DOMAIN_NET_TYPE_CLIENT
:
case
VIR_DOMAIN_NET_TYPE_CLIENT
:
...
@@ -2889,6 +2895,9 @@ virDomainNetDefFormat(virConnectPtr conn,
...
@@ -2889,6 +2895,9 @@ virDomainNetDefFormat(virConnectPtr conn,
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
virBufferEscapeString
(
buf
,
" <source bridge='%s'/>
\n
"
,
virBufferEscapeString
(
buf
,
" <source bridge='%s'/>
\n
"
,
def
->
data
.
bridge
.
brname
);
def
->
data
.
bridge
.
brname
);
if
(
def
->
data
.
bridge
.
ipaddr
)
virBufferVSprintf
(
buf
,
" <ip address='%s'/>
\n
"
,
def
->
data
.
bridge
.
ipaddr
);
if
(
def
->
data
.
bridge
.
script
)
if
(
def
->
data
.
bridge
.
script
)
virBufferEscapeString
(
buf
,
" <script path='%s'/>
\n
"
,
virBufferEscapeString
(
buf
,
" <script path='%s'/>
\n
"
,
def
->
data
.
bridge
.
script
);
def
->
data
.
bridge
.
script
);
...
...
src/domain_conf.h
浏览文件 @
e80f1006
...
@@ -155,6 +155,7 @@ struct _virDomainNetDef {
...
@@ -155,6 +155,7 @@ struct _virDomainNetDef {
struct
{
struct
{
char
*
brname
;
char
*
brname
;
char
*
script
;
char
*
script
;
char
*
ipaddr
;
}
bridge
;
}
bridge
;
}
data
;
}
data
;
char
*
ifname
;
char
*
ifname
;
...
...
src/xend_internal.c
浏览文件 @
e80f1006
...
@@ -1763,11 +1763,19 @@ xenDaemonParseSxprNets(virConnectPtr conn,
...
@@ -1763,11 +1763,19 @@ xenDaemonParseSxprNets(virConnectPtr conn,
net
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
&&
net
->
type
==
VIR_DOMAIN_NET_TYPE_BRIDGE
&&
!
(
net
->
data
.
bridge
.
script
=
strdup
(
tmp2
)))
!
(
net
->
data
.
bridge
.
script
=
strdup
(
tmp2
)))
goto
no_memory
;
goto
no_memory
;
tmp
=
sexpr_node
(
node
,
"device/vif/ip"
);
if
(
tmp
&&
!
(
net
->
data
.
bridge
.
ipaddr
=
strdup
(
tmp
)))
goto
no_memory
;
}
else
{
}
else
{
net
->
type
=
VIR_DOMAIN_NET_TYPE_ETHERNET
;
net
->
type
=
VIR_DOMAIN_NET_TYPE_ETHERNET
;
if
(
tmp2
&&
if
(
tmp2
&&
!
(
net
->
data
.
ethernet
.
script
=
strdup
(
tmp2
)))
!
(
net
->
data
.
ethernet
.
script
=
strdup
(
tmp2
)))
goto
no_memory
;
goto
no_memory
;
tmp
=
sexpr_node
(
node
,
"device/vif/ip"
);
if
(
tmp
&&
!
(
net
->
data
.
ethernet
.
ipaddr
=
strdup
(
tmp
)))
goto
no_memory
;
}
}
tmp
=
sexpr_node
(
node
,
"device/vif/vifname"
);
tmp
=
sexpr_node
(
node
,
"device/vif/vifname"
);
...
@@ -1801,11 +1809,6 @@ xenDaemonParseSxprNets(virConnectPtr conn,
...
@@ -1801,11 +1809,6 @@ xenDaemonParseSxprNets(virConnectPtr conn,
net
->
mac
[
5
]
=
mac
[
5
];
net
->
mac
[
5
]
=
mac
[
5
];
}
}
tmp
=
sexpr_node
(
node
,
"device/vif/ip"
);
if
(
tmp
&&
!
(
net
->
data
.
ethernet
.
ipaddr
=
strdup
(
tmp
)))
goto
no_memory
;
if
(
model
&&
if
(
model
&&
!
(
net
->
model
=
strdup
(
model
)))
!
(
net
->
model
=
strdup
(
model
)))
goto
no_memory
;
goto
no_memory
;
...
@@ -5135,6 +5138,8 @@ xenDaemonFormatSxprNet(virConnectPtr conn,
...
@@ -5135,6 +5138,8 @@ xenDaemonFormatSxprNet(virConnectPtr conn,
script
=
def
->
data
.
bridge
.
script
;
script
=
def
->
data
.
bridge
.
script
;
virBufferVSprintf
(
buf
,
"(script '%s')"
,
script
);
virBufferVSprintf
(
buf
,
"(script '%s')"
,
script
);
if
(
def
->
data
.
bridge
.
ipaddr
!=
NULL
)
virBufferVSprintf
(
buf
,
"(ip '%s')"
,
def
->
data
.
bridge
.
ipaddr
);
break
;
break
;
case
VIR_DOMAIN_NET_TYPE_NETWORK
:
case
VIR_DOMAIN_NET_TYPE_NETWORK
:
...
...
src/xm_internal.c
浏览文件 @
e80f1006
...
@@ -1089,6 +1089,9 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
...
@@ -1089,6 +1089,9 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
if
(
script
[
0
]
&&
if
(
script
[
0
]
&&
!
(
net
->
data
.
bridge
.
script
=
strdup
(
script
)))
!
(
net
->
data
.
bridge
.
script
=
strdup
(
script
)))
goto
no_memory
;
goto
no_memory
;
if
(
ip
[
0
]
&&
!
(
net
->
data
.
bridge
.
ipaddr
=
strdup
(
ip
)))
goto
no_memory
;
}
else
{
}
else
{
if
(
script
[
0
]
&&
if
(
script
[
0
]
&&
!
(
net
->
data
.
ethernet
.
script
=
strdup
(
script
)))
!
(
net
->
data
.
ethernet
.
script
=
strdup
(
script
)))
...
@@ -1883,6 +1886,8 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn,
...
@@ -1883,6 +1886,8 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn,
switch
(
net
->
type
)
{
switch
(
net
->
type
)
{
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
case
VIR_DOMAIN_NET_TYPE_BRIDGE
:
virBufferVSprintf
(
&
buf
,
",bridge=%s"
,
net
->
data
.
bridge
.
brname
);
virBufferVSprintf
(
&
buf
,
",bridge=%s"
,
net
->
data
.
bridge
.
brname
);
if
(
net
->
data
.
bridge
.
ipaddr
)
virBufferVSprintf
(
&
buf
,
",ip=%s"
,
net
->
data
.
bridge
.
ipaddr
);
break
;
break
;
case
VIR_DOMAIN_NET_TYPE_ETHERNET
:
case
VIR_DOMAIN_NET_TYPE_ETHERNET
:
...
...
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.sexpr
0 → 100644
浏览文件 @
e80f1006
(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w')))(device (vif (mac '00:11:22:33:44:55')(bridge 'xenbr2')(script 'vif-bridge')(ip '192.0.2.1')))
tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
0 → 100644
浏览文件 @
e80f1006
<domain
type=
'xen'
id=
'6'
>
<name>
pvtest
</name>
<uuid>
596a5d21-71f4-8fb2-e068-e2386a5c413e
</uuid>
<memory>
430080
</memory>
<currentMemory>
430080
</currentMemory>
<vcpu>
2
</vcpu>
<os>
<type>
linux
</type>
<kernel>
/var/lib/xen/vmlinuz.2Dn2YT
</kernel>
<initrd>
/var/lib/xen/initrd.img.0u-Vhq
</initrd>
<cmdline>
method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os
</cmdline>
</os>
<clock
offset=
'utc'
/>
<on_poweroff>
destroy
</on_poweroff>
<on_reboot>
destroy
</on_reboot>
<on_crash>
destroy
</on_crash>
<devices>
<disk
type=
'file'
device=
'disk'
>
<driver
name=
'file'
/>
<source
file=
'/root/some.img'
/>
<target
dev=
'xvda'
bus=
'xen'
/>
</disk>
<interface
type=
'bridge'
>
<mac
address=
'00:11:22:33:44:55'
/>
<source
bridge=
'xenbr2'
/>
<ip
address=
'192.0.2.1'
/>
<script
path=
'vif-bridge'
/>
<target
dev=
'vif6.0'
/>
</interface>
<console
type=
'pty'
>
<target
port=
'0'
/>
</console>
</devices>
</domain>
tests/sexpr2xmltest.c
浏览文件 @
e80f1006
...
@@ -139,6 +139,7 @@ mymain(int argc, char **argv)
...
@@ -139,6 +139,7 @@ mymain(int argc, char **argv)
DO_TEST
(
"net-routed"
,
"net-routed"
,
2
);
DO_TEST
(
"net-routed"
,
"net-routed"
,
2
);
DO_TEST
(
"net-bridged"
,
"net-bridged"
,
2
);
DO_TEST
(
"net-bridged"
,
"net-bridged"
,
2
);
DO_TEST
(
"net-e1000"
,
"net-e1000"
,
2
);
DO_TEST
(
"net-e1000"
,
"net-e1000"
,
2
);
DO_TEST
(
"bridge-ipaddr"
,
"bridge-ipaddr"
,
3
);
DO_TEST
(
"no-source-cdrom"
,
"no-source-cdrom"
,
2
);
DO_TEST
(
"no-source-cdrom"
,
"no-source-cdrom"
,
2
);
DO_TEST
(
"fv-utc"
,
"fv-utc"
,
1
);
DO_TEST
(
"fv-utc"
,
"fv-utc"
,
1
);
...
...
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
0 → 100644
浏览文件 @
e80f1006
(vm (name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/var/lib/xen/vmlinuz.2Dn2YT')(ramdisk '/var/lib/xen/initrd.img.0u-Vhq')(args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os ')))(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w')))(device (vif (mac '00:11:22:33:44:55')(bridge 'xenbr2')(script 'vif-bridge')(ip '192.0.2.1'))))
\ No newline at end of file
tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.xml
0 → 100644
浏览文件 @
e80f1006
<domain
type=
'xen'
id=
'15'
>
<name>
pvtest
</name>
<uuid>
596a5d2171f48fb2e068e2386a5c413e
</uuid>
<os>
<type>
linux
</type>
<kernel>
/var/lib/xen/vmlinuz.2Dn2YT
</kernel>
<initrd>
/var/lib/xen/initrd.img.0u-Vhq
</initrd>
<cmdline>
method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os
</cmdline>
</os>
<memory>
430080
</memory>
<vcpu>
2
</vcpu>
<on_poweroff>
destroy
</on_poweroff>
<on_reboot>
destroy
</on_reboot>
<on_crash>
destroy
</on_crash>
<devices>
<disk
type=
'file'
device=
'disk'
>
<source
file=
'/root/some.img'
/>
<target
dev=
'xvda'
/>
</disk>
<interface
type=
"bridge"
>
<mac
address=
"00:11:22:33:44:55"
/>
<source
bridge=
"xenbr2"
/>
<ip
address=
"192.0.2.1"
/>
<script
path=
"vif-bridge"
/>
<target
dev=
"vif4.0"
/>
</interface>
<console
tty=
'/dev/pts/4'
/>
</devices>
</domain>
tests/xml2sexprtest.c
浏览文件 @
e80f1006
...
@@ -126,6 +126,7 @@ mymain(int argc, char **argv)
...
@@ -126,6 +126,7 @@ mymain(int argc, char **argv)
DO_TEST
(
"net-routed"
,
"net-routed"
,
"pvtest"
,
2
);
DO_TEST
(
"net-routed"
,
"net-routed"
,
"pvtest"
,
2
);
DO_TEST
(
"net-bridged"
,
"net-bridged"
,
"pvtest"
,
2
);
DO_TEST
(
"net-bridged"
,
"net-bridged"
,
"pvtest"
,
2
);
DO_TEST
(
"net-e1000"
,
"net-e1000"
,
"pvtest"
,
2
);
DO_TEST
(
"net-e1000"
,
"net-e1000"
,
"pvtest"
,
2
);
DO_TEST
(
"bridge-ipaddr"
,
"bridge-ipaddr"
,
"pvtest"
,
2
);
DO_TEST
(
"no-source-cdrom"
,
"no-source-cdrom"
,
"test"
,
2
);
DO_TEST
(
"no-source-cdrom"
,
"no-source-cdrom"
,
"test"
,
2
);
DO_TEST
(
"fv-utc"
,
"fv-utc"
,
"fvtest"
,
1
);
DO_TEST
(
"fv-utc"
,
"fv-utc"
,
"fvtest"
,
1
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录