summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2013-11-22 14:09:55 +0000
committerDaniel P. Berrange <berrange@redhat.com>2013-11-22 14:21:44 +0000
commita60a5bc957814343fc36f26f6ce89a4be47ebdf6 (patch)
tree4da6df4cb9720499b96d27737524d08565d578f1
parent6900340b151d3a265ca5b89345fc07e6531ae62b (diff)
downloadlibvirt-python-v7-master.tar.gz
libvirt-python-v7-master.tar.xz
libvirt-python-v7-master.zip
Ensure API overrides only used if API existsHEADmaster
Entries in the -overrides.xml files should only be recorded if the API also exists in the main API XML file. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
-rwxr-xr-xgenerator.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/generator.py b/generator.py
index 00ef45a..224c886 100755
--- a/generator.py
+++ b/generator.py
@@ -27,6 +27,7 @@ import os
import xml.sax
debug = 0
+onlyOverrides = False
def getparser():
# Attach parser to an unmarshalling object. return both objects.
@@ -183,12 +184,18 @@ class docParser(xml.sax.handler.ContentHandler):
def function(name, desc, ret, args, file, module, cond):
+ if onlyOverrides and name not in functions:
+ return
functions[name] = (desc, ret, args, file, module, cond)
def qemu_function(name, desc, ret, args, file, module, cond):
+ if onlyOverrides and name not in qemu_functions:
+ return
qemu_functions[name] = (desc, ret, args, file, module, cond)
def lxc_function(name, desc, ret, args, file, module, cond):
+ if onlyOverrides and name not in lxc_functions:
+ return
lxc_functions[name] = (desc, ret, args, file, module, cond)
def enum(type, name, value):
@@ -213,16 +220,22 @@ def enum(type, name, value):
elif value == 'VIR_DOMAIN_AFFECT_CONFIG':
value = 2
if name[-5:] != '_LAST':
+ if onlyOverrides and name not in enums[type]:
+ return
enums[type][name] = value
def lxc_enum(type, name, value):
if not lxc_enums.has_key(type):
lxc_enums[type] = {}
+ if onlyOverrides and name not in lxc_enums[type]:
+ return
lxc_enums[type][name] = value
def qemu_enum(type, name, value):
if not qemu_enums.has_key(type):
qemu_enums[type] = {}
+ if onlyOverrides and name not in qemu_enums[type]:
+ return
qemu_enums[type][name] = value
@@ -790,6 +803,7 @@ def buildStubs(module, api_xml):
f = open(api_xml)
data = f.read()
f.close()
+ onlyOverrides = False
(parser, target) = getparser()
parser.feed(data)
parser.close()
@@ -808,6 +822,7 @@ def buildStubs(module, api_xml):
f = open(override_api_xml)
data = f.read()
f.close()
+ onlyOverrides = True
(parser, target) = getparser()
parser.feed(data)
parser.close()