Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
c9b7eae9
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看板
提交
c9b7eae9
编写于
1月 21, 2008
作者:
D
Daniel P. Berrange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make python generator fail build on any missing APIs
上级
62094f72
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
92 deletion
+50
-92
ChangeLog
ChangeLog
+7
-0
python/generator.py
python/generator.py
+33
-17
python/libvir.c
python/libvir.c
+10
-75
未找到文件。
ChangeLog
浏览文件 @
c9b7eae9
Mon Jan 21 10:52:04 EST 2008 Daniel P. Berrange <berrange@redhat.com>
* python/generator.py: Abort with non-zero status if any functions
are marked as failed.
* python/libvir.c: Don't do manual virDomainFree/virNetworkFree/
virConnectFree since the generator creates them without issue
Mon Jan 21 10:39:04 EST 2008 Daniel P. Berrange <berrange@redhat.com>
* python/generator.py: mark VCPU / schedular related functions
...
...
python/generator.py
浏览文件 @
c9b7eae9
...
...
@@ -212,7 +212,7 @@ skipped_modules = {
}
skipped_types
=
{
'int *'
:
"usually a return type"
,
#
'int *': "usually a return type",
}
#######################################################################
...
...
@@ -277,6 +277,8 @@ skip_impl = (
'virDomainLookupByUUID'
,
'virNetworkGetUUID'
,
'virNetworkLookupByUUID'
,
'virDomainGetAutostart'
,
'virNetworkGetAutostart'
,
'virDomainBlockStats'
,
'virDomainInterfaceStats'
,
'virNodeGetCellsFreeMemory'
,
...
...
@@ -287,18 +289,23 @@ skip_impl = (
'virDomainPinVcpu'
,
)
def
skip_function
(
name
):
if
name
==
"virConnectClose"
:
return
1
if
name
==
"virDomainFree"
:
return
1
if
name
==
"virNetworkFree"
:
return
1
if
name
==
"vshRunConsole"
:
return
1
if
name
==
"virGetVersion"
:
return
1
return
0
# These are functions which the generator skips completly - no python
# or C code is generated. Generally should not be used for any more
# functions than those already listed
skip_function
=
(
'virConnectListDomains'
,
# Python API is called virConectListDomainsID for unknown reasons
'virConnSetErrorFunc'
,
# Not used in Python API XXX is this a bug ?
'virResetError'
,
# Not used in Python API XXX is this a bug ?
'virConnectGetVersion'
,
# Not used in Python API XXX is this a bug ?
'virGetVersion'
,
# Python C code is manually written
'virSetErrorFunc'
,
# Python API is called virRegisterErrorHandler for unknown reasons
'virConnCopyLastError'
,
# Python API is called virConnGetLastError instead
'virCopyLastError'
,
# Python API is called virGetLastError instead
'virConnectOpenAuth'
,
# Python C code is manually written
'virDefaultErrorFunc'
,
# Python virErrorFuncHandler impl calls this from C
)
def
print_function_wrapper
(
name
,
output
,
export
,
include
):
global
py_types
...
...
@@ -314,7 +321,7 @@ def print_function_wrapper(name, output, export, include):
if
skipped_modules
.
has_key
(
file
):
return
0
if
skip_function
(
name
)
==
1
:
if
name
in
skip_function
:
return
0
if
name
in
skip_impl
:
# Don't delete the function entry in the caller.
...
...
@@ -527,13 +534,20 @@ def buildStubs():
export
.
close
()
wrapper
.
close
()
print
"Generated %d wrapper functions
, %d failed, %d skipped
\n
"
%
(
nb_wrap
,
failed
,
skipped
);
print
"Generated %d wrapper functions
"
%
nb_wrap
print
"Missing type converters: "
for
type
in
unknown_types
.
keys
():
print
"%s:%d "
%
(
type
,
len
(
unknown_types
[
type
])),
print
for
f
in
functions_failed
:
print
"ERROR: failed %s"
%
f
if
failed
>
0
:
return
-
1
return
0
#######################################################################
#
# This part writes part of the Python front-end classes based on
...
...
@@ -1126,5 +1140,7 @@ def buildWrappers():
txt
.
close
()
classes
.
close
()
buildStubs
()
if
buildStubs
()
<
0
:
sys
.
exit
(
1
)
buildWrappers
()
sys
.
exit
(
0
)
python/libvir.c
浏览文件 @
c9b7eae9
...
...
@@ -23,14 +23,6 @@ extern void initlibvirtmod(void);
extern
void
initcygvirtmod
(
void
);
#endif
PyObject
*
libvirt_virDomainGetUUID
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virNetworkGetUUID
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virGetLastError
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virConnGetLastError
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virDomainBlockStats
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virDomainInterfaceStats
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
PyObject
*
libvirt_virNodeGetCellsFreeMemory
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
);
/* The two-statement sequence "Py_INCREF(Py_None); return Py_None;"
is so common that we encapsulate it here. Now, each use is simply
return VIR_PY_NONE; */
...
...
@@ -42,7 +34,7 @@ PyObject * libvirt_virNodeGetCellsFreeMemory(PyObject *self ATTRIBUTE_UNUSED, Py
* *
************************************************************************/
PyObject
*
static
PyObject
*
libvirt_virDomainBlockStats
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
virDomainPtr
domain
;
PyObject
*
pyobj_domain
;
...
...
@@ -71,7 +63,7 @@ libvirt_virDomainBlockStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return
(
info
);
}
PyObject
*
static
PyObject
*
libvirt_virDomainInterfaceStats
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
virDomainPtr
domain
;
PyObject
*
pyobj_domain
;
...
...
@@ -424,7 +416,7 @@ libvirt_virDomainPinVcpu(PyObject *self ATTRIBUTE_UNUSED,
static
PyObject
*
libvirt_virPythonErrorFuncHandler
=
NULL
;
static
PyObject
*
libvirt_virPythonErrorFuncCtxt
=
NULL
;
PyObject
*
static
PyObject
*
libvirt_virGetLastError
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
ATTRIBUTE_UNUSED
)
{
virError
err
;
...
...
@@ -448,7 +440,7 @@ libvirt_virGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUT
return
info
;
}
PyObject
*
static
PyObject
*
libvirt_virConnGetLastError
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
virError
err
;
...
...
@@ -716,41 +708,6 @@ libvirt_virGetVersion (PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
return
Py_BuildValue
((
char
*
)
"kk"
,
libVer
,
typeVer
);
}
static
PyObject
*
libvirt_virDomainFree
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
int
c_retval
;
virDomainPtr
domain
;
PyObject
*
pyobj_domain
;
if
(
!
PyArg_ParseTuple
(
args
,
(
char
*
)
"O:virDomainFree"
,
&
pyobj_domain
))
return
(
NULL
);
domain
=
(
virDomainPtr
)
PyvirDomain_Get
(
pyobj_domain
);
LIBVIRT_BEGIN_ALLOW_THREADS
;
c_retval
=
virDomainFree
(
domain
);
LIBVIRT_END_ALLOW_THREADS
;
py_retval
=
libvirt_intWrap
((
int
)
c_retval
);
return
(
py_retval
);
}
static
PyObject
*
libvirt_virConnectClose
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
int
c_retval
;
virConnectPtr
conn
;
PyObject
*
pyobj_conn
;
if
(
!
PyArg_ParseTuple
(
args
,
(
char
*
)
"O:virConnectClose"
,
&
pyobj_conn
))
return
(
NULL
);
conn
=
(
virConnectPtr
)
PyvirConnect_Get
(
pyobj_conn
);
LIBVIRT_BEGIN_ALLOW_THREADS
;
c_retval
=
virConnectClose
(
conn
);
LIBVIRT_END_ALLOW_THREADS
;
py_retval
=
libvirt_intWrap
((
int
)
c_retval
);
return
(
py_retval
);
}
static
PyObject
*
libvirt_virConnectListDomainsID
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
...
...
@@ -874,7 +831,7 @@ libvirt_virNodeGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return
(
py_retval
);
}
PyObject
*
static
PyObject
*
libvirt_virDomainGetUUID
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
unsigned
char
uuid
[
VIR_UUID_BUFLEN
];
...
...
@@ -923,25 +880,6 @@ libvirt_virDomainLookupByUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
static
PyObject
*
libvirt_virNetworkFree
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
int
c_retval
;
virNetworkPtr
domain
;
PyObject
*
pyobj_domain
;
if
(
!
PyArg_ParseTuple
(
args
,
(
char
*
)
"O:virNetworkFree"
,
&
pyobj_domain
))
return
(
NULL
);
domain
=
(
virNetworkPtr
)
PyvirNetwork_Get
(
pyobj_domain
);
LIBVIRT_BEGIN_ALLOW_THREADS
;
c_retval
=
virNetworkFree
(
domain
);
LIBVIRT_END_ALLOW_THREADS
;
py_retval
=
libvirt_intWrap
((
int
)
c_retval
);
return
(
py_retval
);
}
static
PyObject
*
libvirt_virConnectListNetworks
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
...
...
@@ -1026,7 +964,7 @@ libvirt_virConnectListDefinedNetworks(PyObject *self ATTRIBUTE_UNUSED,
}
PyObject
*
static
PyObject
*
libvirt_virNetworkGetUUID
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
unsigned
char
uuid
[
VIR_UUID_BUFLEN
];
...
...
@@ -1075,7 +1013,7 @@ libvirt_virNetworkLookupByUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
}
PyObject
*
static
PyObject
*
libvirt_virDomainGetAutostart
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
int
c_retval
,
autostart
;
...
...
@@ -1098,7 +1036,7 @@ libvirt_virDomainGetAutostart(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
}
PyObject
*
static
PyObject
*
libvirt_virNetworkGetAutostart
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
int
c_retval
,
autostart
;
...
...
@@ -1120,8 +1058,8 @@ libvirt_virNetworkGetAutostart(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
return
(
py_retval
);
}
PyObject
*
libvirt_virNodeGetCellsFreeMemory
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
static
PyObject
*
libvirt_virNodeGetCellsFreeMemory
(
PyObject
*
self
ATTRIBUTE_UNUSED
,
PyObject
*
args
)
{
PyObject
*
py_retval
;
PyObject
*
pyobj_conn
;
...
...
@@ -1167,9 +1105,7 @@ error:
static
PyMethodDef
libvirtMethods
[]
=
{
#include "libvirt-export.c"
{(
char
*
)
"virGetVersion"
,
libvirt_virGetVersion
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virDomainFree"
,
libvirt_virDomainFree
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectOpenAuth"
,
libvirt_virConnectOpenAuth
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectClose"
,
libvirt_virConnectClose
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectListDomainsID"
,
libvirt_virConnectListDomainsID
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectListDefinedDomains"
,
libvirt_virConnectListDefinedDomains
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virDomainGetInfo"
,
libvirt_virDomainGetInfo
,
METH_VARARGS
,
NULL
},
...
...
@@ -1179,7 +1115,6 @@ static PyMethodDef libvirtMethods[] = {
{(
char
*
)
"virRegisterErrorHandler"
,
libvirt_virRegisterErrorHandler
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virGetLastError"
,
libvirt_virGetLastError
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnGetLastError"
,
libvirt_virConnGetLastError
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virNetworkFree"
,
libvirt_virNetworkFree
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectListNetworks"
,
libvirt_virConnectListNetworks
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virConnectListDefinedNetworks"
,
libvirt_virConnectListDefinedNetworks
,
METH_VARARGS
,
NULL
},
{(
char
*
)
"virNetworkGetUUID"
,
libvirt_virNetworkGetUUID
,
METH_VARARGS
,
NULL
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录