[libvirt] [PATCH 5/5] remote generator: Move blacklist to a file and add explicit whitelist

Matthias Bolte matthias.bolte at googlemail.com
Sat May 7 12:28:40 UTC 2011


---
 daemon/Makefile.am                 |   20 ++++-
 daemon/qemu_dispatch.blacklist     |    3 +
 daemon/qemu_dispatch.whitelist     |    1 +
 daemon/remote_dispatch.blacklist   |   37 ++++++++
 daemon/remote_dispatch.whitelist   |  169 +++++++++++++++++++++++++++++++++++
 daemon/remote_generator.pl         |  171 +++++++++++++-----------------------
 src/Makefile.am                    |   24 ++++-
 src/remote/qemu_client.blacklist   |    3 +
 src/remote/qemu_client.whitelist   |    1 +
 src/remote/remote_client.blacklist |   47 ++++++++++
 src/remote/remote_client.whitelist |  159 +++++++++++++++++++++++++++++++++
 11 files changed, 516 insertions(+), 119 deletions(-)
 create mode 100644 daemon/qemu_dispatch.blacklist
 create mode 100644 daemon/qemu_dispatch.whitelist
 create mode 100644 daemon/remote_dispatch.blacklist
 create mode 100644 daemon/remote_dispatch.whitelist
 create mode 100644 src/remote/qemu_client.blacklist
 create mode 100644 src/remote/qemu_client.whitelist
 create mode 100644 src/remote/remote_client.blacklist
 create mode 100644 src/remote/remote_client.whitelist

diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 114adf3..6382878 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -30,7 +30,11 @@ DISTCLEANFILES =
 EXTRA_DIST =						\
 	remote_generator.pl				\
 	remote_dispatch_bodies.h			\
+	remote_dispatch.whitelist			\
+	remote_dispatch.blacklist			\
 	qemu_dispatch_bodies.h				\
+	qemu_dispatch.whitelist				\
+	qemu_dispatch.blacklist				\
 	libvirtd.conf					\
 	libvirtd.init.in				\
 	libvirtd.upstart				\
@@ -211,7 +215,11 @@ remote.c: $(DAEMON_GENERATED)
 remote.h: $(DAEMON_GENERATED)
 
 REMOTE_PROTOCOL = $(top_srcdir)/src/remote/remote_protocol.x
+REMOTE_PROTOCOL_WHITELIST = $(srcdir)/remote_dispatch.whitelist
+REMOTE_PROTOCOL_BLACKLIST = $(srcdir)/remote_dispatch.blacklist
 QEMU_PROTOCOL = $(top_srcdir)/src/remote/qemu_protocol.x
+QEMU_PROTOCOL_WHITELIST = $(srcdir)/qemu_dispatch.whitelist
+QEMU_PROTOCOL_BLACKLIST = $(srcdir)/qemu_dispatch.blacklist
 
 remote_dispatch_prototypes.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
 	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -p remote $(REMOTE_PROTOCOL) > $@
@@ -225,8 +233,10 @@ remote_dispatch_args.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
 remote_dispatch_ret.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
 	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -r remote $(REMOTE_PROTOCOL) > $@
 
-remote_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
-	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -b remote $(REMOTE_PROTOCOL) > $@
+remote_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL) \
+		$(REMOTE_PROTOCOL_WHITELIST) $(REMOTE_PROTOCOL_BLACKLIST)
+	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -b remote $(REMOTE_PROTOCOL) \
+	  $(REMOTE_PROTOCOL_WHITELIST) $(REMOTE_PROTOCOL_BLACKLIST) > $@
 
 qemu_dispatch_prototypes.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
 	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -p qemu $(QEMU_PROTOCOL) > $@
@@ -240,8 +250,10 @@ qemu_dispatch_args.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
 qemu_dispatch_ret.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
 	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -r qemu $(QEMU_PROTOCOL) > $@
 
-qemu_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
-	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -b qemu $(QEMU_PROTOCOL) > $@
+qemu_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL) \
+		$(QEMU_PROTOCOL_WHITELIST) $(QEMU_PROTOCOL_BLACKLIST)
+	$(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -b qemu $(QEMU_PROTOCOL) \
+	  $(QEMU_PROTOCOL_WHITELIST) $(QEMU_PROTOCOL_BLACKLIST) > $@
 
 LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
                   libvirtd.uml.logrotate libvirtd.logrotate
diff --git a/daemon/qemu_dispatch.blacklist b/daemon/qemu_dispatch.blacklist
new file mode 100644
index 0000000..3ed861f
--- /dev/null
+++ b/daemon/qemu_dispatch.blacklist
@@ -0,0 +1,3 @@
+# procedures in this list will not be handled by remote_generator.pl
+
+MonitorCommand
diff --git a/daemon/qemu_dispatch.whitelist b/daemon/qemu_dispatch.whitelist
new file mode 100644
index 0000000..dc1aca5
--- /dev/null
+++ b/daemon/qemu_dispatch.whitelist
@@ -0,0 +1 @@
+# procedures in this list will be handled by remote_generator.pl
diff --git a/daemon/remote_dispatch.blacklist b/daemon/remote_dispatch.blacklist
new file mode 100644
index 0000000..e53c8ae
--- /dev/null
+++ b/daemon/remote_dispatch.blacklist
@@ -0,0 +1,37 @@
+# procedures in this list will not be handled by remote_generator.pl
+
+AuthList
+AuthPolkit
+AuthSaslInit
+AuthSaslStart
+AuthSaslStep
+Close
+DomainBlockPeek
+DomainCreateWithFlags
+DomainEventsDeregister
+DomainEventsDeregisterAny
+DomainEventsRegister
+DomainEventsRegisterAny
+DomainGetBlkioParameters
+DomainGetMemoryParameters
+DomainGetSchedulerParameters
+DomainGetSchedulerType
+DomainGetSecurityLabel
+DomainGetVcpus
+DomainMigratePrepareTunnel
+DomainOpenConsole
+DomainPinVcpu
+DomainSetBlkioParameters
+DomainSetMemoryParameters
+DomainSetSchedulerParameters
+DomainMemoryPeek
+DomainMemoryStats
+DomainMigratePrepare
+DomainMigratePrepare2
+GetType
+NodeDeviceGetParent
+NodeGetSecurityModel
+Open
+SecretGetValue
+StorageVolDownload
+StorageVolUpload
diff --git a/daemon/remote_dispatch.whitelist b/daemon/remote_dispatch.whitelist
new file mode 100644
index 0000000..3f8e83b
--- /dev/null
+++ b/daemon/remote_dispatch.whitelist
@@ -0,0 +1,169 @@
+# procedures in this list will be handled by remote_generator.pl
+
+CPUBaseline
+CPUCompare
+DomainAbortJob
+DomainAttachDevice
+DomainAttachDeviceFlags
+DomainBlockStats
+DomainCoreDump
+DomainCreate
+DomainCreateXML
+DomainDefineXML
+DomainDestroy
+DomainDetachDevice
+DomainDetachDeviceFlags
+DomainGetAutostart
+DomainGetBlockInfo
+DomainGetInfo
+DomainGetJobInfo
+DomainGetMaxMemory
+DomainGetMaxVcpus
+DomainGetOSType
+DomainGetVcpusFlags
+DomainGetXMLDesc
+DomainHasCurrentSnapshot
+DomainHasManagedSaveImage
+DomainInterfaceStats
+DomainIsActive
+DomainIsPersistent
+DomainIsUpdated
+DomainLookupByID
+DomainLookupByName
+DomainLookupByUUID
+DomainManagedSave
+DomainManagedSaveRemove
+DomainMigrateFinish
+DomainMigrateFinish2
+DomainMigratePerform
+DomainMigrateSetMaxDowntime
+DomainMigrateSetMaxSpeed
+DomainReboot
+DomainRestore
+DomainResume
+DomainRevertToSnapshot
+DomainSave
+DomainSetAutostart
+DomainSetMaxMemory
+DomainSetMemory
+DomainSetMemoryFlags
+DomainSetVcpus
+DomainSetVcpusFlags
+DomainShutdown
+DomainSnapshotCreateXML
+DomainSnapshotCurrent
+DomainSnapshotDelete
+DomainSnapshotGetXMLDesc
+DomainSnapshotListNames
+DomainSnapshotLookupByName
+DomainSnapshotNum
+DomainSuspend
+DomainUndefine
+DomainUpdateDeviceFlags
+DomainXMLFromNative
+DomainXMLToNative
+FindStoragePoolSources
+GetCapabilities
+GetHostname
+GetLibVersion
+GetMaxVcpus
+GetSysinfo
+GetURI
+GetVersion
+InterfaceCreate
+InterfaceDefineXML
+InterfaceDestroy
+InterfaceGetXMLDesc
+InterfaceIsActive
+InterfaceLookupByMACString
+InterfaceLookupByName
+InterfaceUndefine
+IsSecure
+ListDefinedDomains
+ListDefinedInterfaces
+ListDefinedNetworks
+ListDefinedStoragePools
+ListDomains
+ListInterfaces
+ListNetworks
+ListNWFilters
+ListSecrets
+ListStoragePools
+NetworkCreate
+NetworkCreateXML
+NetworkDefineXML
+NetworkDestroy
+NetworkGetAutostart
+NetworkGetBridgeName
+NetworkGetXMLDesc
+NetworkIsActive
+NetworkIsPersistent
+NetworkLookupByName
+NetworkLookupByUUID
+NetworkSetAutostart
+NetworkUndefine
+NodeDeviceCreateXML
+NodeDeviceDestroy
+NodeDeviceDettach
+NodeDeviceGetXMLDesc
+NodeDeviceListCaps
+NodeDeviceLookupByName
+NodeDeviceNumOfCaps
+NodeDeviceReAttach
+NodeDeviceReset
+NodeGetCellsFreeMemory
+NodeGetFreeMemory
+NodeGetInfo
+NodeListDevices
+NodeNumOfDevices
+NumOfDefinedDomains
+NumOfDefinedInterfaces
+NumOfDefinedNetworks
+NumOfDefinedStoragePools
+NumOfDomains
+NumOfInterfaces
+NumOfNetworks
+NumOfNWFilters
+NumOfSecrets
+NumOfStoragePools
+NWFilterDefineXML
+NWFilterGetXMLDesc
+NWFilterLookupByName
+NWFilterLookupByUUID
+NWFilterUndefine
+SecretDefineXML
+SecretGetXMLDesc
+SecretLookupByUsage
+SecretLookupByUUID
+SecretSetValue
+SecretUndefine
+StoragePoolBuild
+StoragePoolCreate
+StoragePoolCreateXML
+StoragePoolDefineXML
+StoragePoolDelete
+StoragePoolDestroy
+StoragePoolGetAutostart
+StoragePoolGetInfo
+StoragePoolGetXMLDesc
+StoragePoolIsActive
+StoragePoolIsPersistent
+StoragePoolListVolumes
+StoragePoolLookupByName
+StoragePoolLookupByUUID
+StoragePoolLookupByVolume
+StoragePoolNumOfVolumes
+StoragePoolRefresh
+StoragePoolSetAutostart
+StoragePoolUndefine
+StorageVolCreateXML
+StorageVolCreateXMLFrom
+StorageVolDelete
+StorageVolGetInfo
+StorageVolGetPath
+StorageVolGetXMLDesc
+StorageVolLookupByKey
+StorageVolLookupByName
+StorageVolLookupByPath
+StorageVolWipe
+SupportsFeature
diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl
index e57f34a..4c72e99 100755
--- a/daemon/remote_generator.pl
+++ b/daemon/remote_generator.pl
@@ -23,9 +23,29 @@ use Getopt::Std;
 our ($opt_p, $opt_t, $opt_a, $opt_r, $opt_d, $opt_c, $opt_b, $opt_k);
 getopts ('ptardcbk');
 
-my $structprefix = $ARGV[0];
+my $structprefix = shift or die "missing prefix argument";
+my $protocol = shift or die "missing protocol argument";
+my $whitelistname;
+my $blacklistname;
+my @whitelist;
+my @blacklist;
+
+if ($opt_b or $opt_k) {
+    $whitelistname = shift or die "missing whitelist argument";
+    $blacklistname = shift or die "missing blacklist argument";
+
+    open(WHITELIST, "<$whitelistname") or die "cannot open $whitelistname: $!";
+    @whitelist = <WHITELIST>;
+    close(WHITELIST);
+    chomp(@whitelist);
+
+    open(BLACKLIST, "<$blacklistname") or die "cannot open $blacklistname: $!";
+    @blacklist = <BLACKLIST>;
+    close(BLACKLIST);
+    chomp(@blacklist);
+}
+
 my $procprefix = uc $structprefix;
-shift;
 
 # Convert name_of_call to NameOfCall.
 sub name_to_ProcName {
@@ -59,7 +79,9 @@ my $collect_args_members = 0;
 my $collect_ret_members = 0;
 my $last_name;
 
-while (<>) {
+open PROTOCOL, "<$protocol" or die "cannot open $protocol: $!";
+
+while (<PROTOCOL>) {
     if ($collect_args_members) {
         if (/^};/) {
             $collect_args_members = 0;
@@ -238,64 +260,32 @@ elsif ($opt_t) {
 
 # Bodies for dispatch functions ("remote_dispatch_bodies.h").
 elsif ($opt_b) {
-    # list of functions that currently are not generatable
-    my @ungeneratable;
-
-    if ($structprefix eq "remote") {
-        @ungeneratable = ("Close",
-                          "DomainEventsDeregisterAny",
-                          "DomainEventsRegisterAny",
-                          "DomainMigratePrepareTunnel",
-                          "DomainOpenConsole",
-                          "DomainPinVcpu",
-                          "DomainSetSchedulerParameters",
-                          "DomainSetMemoryParameters",
-                          "DomainSetBlkioParameters",
-                          "Open",
-                          "StorageVolUpload",
-                          "StorageVolDownload",
-
-                          "AuthList",
-                          "AuthSaslInit",
-                          "AuthSaslStart",
-                          "AuthSaslStep",
-                          "AuthPolkit",
-
-                          "DomainBlockPeek",
-                          "DomainCreateWithFlags",
-                          "DomainEventsDeregister",
-                          "DomainEventsRegister",
-                          "DomainGetBlkioParameters",
-                          "DomainGetMemoryParameters",
-                          "DomainGetSchedulerParameters",
-                          "DomainGetSchedulerType",
-                          "DomainGetSecurityLabel",
-                          "DomainGetVcpus",
-                          "DomainMemoryPeek",
-                          "DomainMemoryStats",
-                          "DomainMigratePrepare",
-                          "DomainMigratePrepare2",
-                          "GetType",
-                          "NodeDeviceGetParent",
-                          "NodeGetSecurityModel",
-                          "SecretGetValue");
-    } elsif ($structprefix eq "qemu") {
-        @ungeneratable = ("MonitorCommand");
-    }
-
-    my %ug = map { $_ => 1 } @ungeneratable;
+    my %white = map { $_ => 1 } @whitelist;
+    my %black = map { $_ => 1 } @blacklist;
     my @keys = sort (keys %calls);
 
     foreach (@keys) {
         # skip things which are REMOTE_MESSAGE
         next if $calls{$_}->{msg};
 
-        if (exists($ug{$calls{$_}->{ProcName}})) {
+        # ignore procedures on the blacklist
+        if (exists($black{$calls{$_}->{ProcName}})) {
+            if (exists($white{$calls{$_}->{ProcName}})) {
+                die "procedure $calls{$_}->{ProcName} on whitelist and blacklist";
+            }
+
             print "\n/* ${structprefix}Dispatch$calls{$_}->{ProcName} has " .
                   "to be implemented manually */\n";
             next;
         }
 
+        # complain about procedures not on the whitelist
+        if (! exists($white{$calls{$_}->{ProcName}})) {
+            die "procedure $calls{$_}->{ProcName} not on whitelist nor on " .
+                "blacklist. add it to the whitelist and let the generator " .
+                "handle it or add it to the blacklist and implement it yourself";
+        }
+
         my $has_node_device = 0;
         my @vars_list = ();
         my @optionals_list = ();
@@ -550,6 +540,8 @@ elsif ($opt_b) {
                     } else {
                         $single_ret_by_ref = 1;
                     }
+                } elsif ($ret_member =~ m/^(\/)?\*/) {
+                    # ignore comments
                 } else {
                     die "unhandled type for return value: $ret_member";
                 }
@@ -756,63 +748,8 @@ elsif ($opt_b) {
 
 # Bodies for client functions ("remote_client_bodies.h").
 elsif ($opt_k) {
-    # list of functions that currently are not generatable
-    my @ungeneratable;
-
-    if ($structprefix eq "remote") {
-        @ungeneratable = ("Close",
-                          "DomainEventsDeregisterAny",
-                          "DomainEventsRegisterAny",
-                          "DomainMigratePrepareTunnel",
-                          "DomainOpenConsole",
-                          "DomainSetSchedulerParameters",
-                          "DomainSetMemoryParameters",
-                          "DomainSetBlkioParameters",
-                          "Open",
-                          "StorageVolUpload",
-                          "StorageVolDownload",
-
-                          "AuthList",
-                          "AuthSaslInit",
-                          "AuthSaslStart",
-                          "AuthSaslStep",
-                          "AuthPolkit",
-
-                          "DomainCreate",
-                          "DomainDestroy",
-                          "FindStoragePoolSources",
-                          "IsSecure",
-                          "SupportsFeature",
-                          "NodeGetCellsFreeMemory",
-                          "ListDomains",
-                          "GetURI",
-                          "NodeDeviceDettach",
-                          "NodeDeviceReset",
-                          "NodeDeviceReAttach",
-
-                          "DomainBlockPeek",
-                          "DomainCreateWithFlags",
-                          "DomainEventsDeregister",
-                          "DomainEventsRegister",
-                          "DomainGetBlkioParameters",
-                          "DomainGetMemoryParameters",
-                          "DomainGetSchedulerParameters",
-                          "DomainGetSchedulerType",
-                          "DomainGetSecurityLabel",
-                          "DomainGetVcpus",
-                          "DomainMemoryPeek",
-                          "DomainMemoryStats",
-                          "DomainMigratePrepare",
-                          "DomainMigratePrepare2",
-                          "GetType",
-                          "NodeDeviceGetParent",
-                          "NodeGetSecurityModel",
-                          "SecretGetValue");
-    } elsif ($structprefix eq "qemu") {
-        @ungeneratable = ("MonitorCommand");
-    }
-
-    my %ug = map { $_ => 1 } @ungeneratable;
+    my %white = map { $_ => 1 } @whitelist;
+    my %black = map { $_ => 1 } @blacklist;
     my @keys = sort (keys %calls);
 
     foreach (@keys) {
@@ -821,12 +758,24 @@ elsif ($opt_k) {
         # skip things which are REMOTE_MESSAGE
         next if $call->{msg};
 
-        if (exists($ug{$call->{ProcName}})) {
-            print "\n/* ${structprefix}Dispatch$call->{ProcName} has to " .
-                  "be implemented manually */\n";
+        # ignore procedures on the blacklist
+        if (exists($black{$call->{ProcName}})) {
+            if (exists($white{$call->{ProcName}})) {
+                die "procedure $call->{ProcName} on whitelist and blacklist";
+            }
+
+            print "\n/* ${structprefix}Dispatch$calls{$_}->{ProcName} has " .
+                  "to be implemented manually */\n";
             next;
         }
 
+        # complain about procedures not on the whitelist
+        if (! exists($white{$call->{ProcName}})) {
+            die "procedure $call->{ProcName} not on whitelist nor on " .
+                "blacklist. add it to the whitelist and let the generator " .
+                "handle it or add it to the blacklist and implement it yourself";
+        }
+
         # handle arguments to the function
         my @args_list = ();
         my @vars_list = ();
@@ -1095,6 +1044,8 @@ elsif ($opt_k) {
                     } else {
                         die "unhandled type for return value: $ret_member";
                     }
+                } elsif ($ret_member =~ m/^(\/)?\*/) {
+                    # ignore comments
                 } else {
                     die "unhandled type for return value: $ret_member";
                 }
diff --git a/src/Makefile.am b/src/Makefile.am
index 75ece49..110615f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -163,18 +163,32 @@ REMOTE_DRIVER_GENERATED = \
 		$(srcdir)/remote/qemu_client_bodies.h
 
 REMOTE_PROTOCOL = $(srcdir)/remote/remote_protocol.x
+REMOTE_PROTOCOL_WHITELIST = $(srcdir)/remote/remote_client.whitelist
+REMOTE_PROTOCOL_BLACKLIST = $(srcdir)/remote/remote_client.blacklist
 QEMU_PROTOCOL = $(srcdir)/remote/qemu_protocol.x
-REMOTE_DRIVER_PROTOCOL = $(REMOTE_PROTOCOL) $(QEMU_PROTOCOL)
+QEMU_PROTOCOL_WHITELIST = $(srcdir)/remote/qemu_client.whitelist
+QEMU_PROTOCOL_BLACKLIST = $(srcdir)/remote/qemu_client.blacklist
+REMOTE_DRIVER_PROTOCOL = \
+		$(REMOTE_PROTOCOL)		\
+		$(REMOTE_PROTOCOL_WHITELIST)	\
+		$(REMOTE_PROTOCOL_BLACKLIST)	\
+		$(QEMU_PROTOCOL)		\
+		$(QEMU_PROTOCOL_WHITELIST)	\
+		$(QEMU_PROTOCOL_BLACKLIST)
 
 $(srcdir)/remote/remote_client_bodies.h: $(REMOTE_PROTOCOL) \
-		$(top_srcdir)/daemon/remote_generator.pl
+		$(top_srcdir)/daemon/remote_generator.pl \
+		$(REMOTE_PROTOCOL_WHITELIST) $(REMOTE_PROTOCOL_BLACKLIST)
 	$(AM_V_GEN)perl -w $(top_srcdir)/daemon/remote_generator.pl \
-	  -c -k remote $(REMOTE_PROTOCOL) > $@
+	  -c -k remote $(REMOTE_PROTOCOL) \
+	  $(REMOTE_PROTOCOL_WHITELIST) $(REMOTE_PROTOCOL_BLACKLIST) > $@
 
 $(srcdir)/remote/qemu_client_bodies.h: $(QEMU_PROTOCOL) \
-		$(top_srcdir)/daemon/remote_generator.pl
+		$(top_srcdir)/daemon/remote_generator.pl \
+		$(QEMU_PROTOCOL_WHITELIST) $(QEMU_PROTOCOL_BLACKLIST)
 	$(AM_V_GEN)perl -w $(top_srcdir)/daemon/remote_generator.pl \
-	  -k qemu $(QEMU_PROTOCOL) > $@
+	  -k qemu $(QEMU_PROTOCOL) \
+	  $(QEMU_PROTOCOL_WHITELIST) $(QEMU_PROTOCOL_BLACKLIST) > $@
 
 REMOTE_DRIVER_SOURCES =						\
 		gnutls_1_0_compat.h				\
diff --git a/src/remote/qemu_client.blacklist b/src/remote/qemu_client.blacklist
new file mode 100644
index 0000000..3ed861f
--- /dev/null
+++ b/src/remote/qemu_client.blacklist
@@ -0,0 +1,3 @@
+# procedures in this list will not be handled by remote_generator.pl
+
+MonitorCommand
diff --git a/src/remote/qemu_client.whitelist b/src/remote/qemu_client.whitelist
new file mode 100644
index 0000000..dc1aca5
--- /dev/null
+++ b/src/remote/qemu_client.whitelist
@@ -0,0 +1 @@
+# procedures in this list will be handled by remote_generator.pl
diff --git a/src/remote/remote_client.blacklist b/src/remote/remote_client.blacklist
new file mode 100644
index 0000000..9406760
--- /dev/null
+++ b/src/remote/remote_client.blacklist
@@ -0,0 +1,47 @@
+# procedures in this list will not be handled by remote_generator.pl
+
+AuthList
+AuthPolkit
+AuthSaslInit
+AuthSaslStart
+AuthSaslStep
+Close
+DomainBlockPeek
+DomainCreate
+DomainCreateWithFlags
+DomainDestroy
+DomainEventsDeregister
+DomainEventsDeregisterAny
+DomainEventsRegister
+DomainEventsRegisterAny
+DomainGetBlkioParameters
+DomainGetMemoryParameters
+DomainGetSchedulerParameters
+DomainGetSchedulerType
+DomainGetSecurityLabel
+DomainGetVcpus
+DomainMemoryPeek
+DomainMemoryStats
+DomainMigratePrepare
+DomainMigratePrepare2
+DomainMigratePrepareTunnel
+DomainOpenConsole
+DomainSetBlkioParameters
+DomainSetMemoryParameters
+DomainSetSchedulerParameters
+FindStoragePoolSources
+GetType
+GetURI
+IsSecure
+ListDomains
+NodeDeviceDettach
+NodeDeviceGetParent
+NodeDeviceReAttach
+NodeDeviceReset
+NodeGetCellsFreeMemory
+NodeGetSecurityModel
+Open
+SecretGetValue
+StorageVolDownload
+StorageVolUpload
+SupportsFeature
diff --git a/src/remote/remote_client.whitelist b/src/remote/remote_client.whitelist
new file mode 100644
index 0000000..29ef601
--- /dev/null
+++ b/src/remote/remote_client.whitelist
@@ -0,0 +1,159 @@
+# procedures in this list will be handled by remote_generator.pl
+
+CPUBaseline
+CPUCompare
+DomainAbortJob
+DomainAttachDevice
+DomainAttachDeviceFlags
+DomainBlockStats
+DomainCoreDump
+DomainCreateXML
+DomainDefineXML
+DomainDetachDevice
+DomainDetachDeviceFlags
+DomainGetAutostart
+DomainGetBlockInfo
+DomainGetInfo
+DomainGetJobInfo
+DomainGetMaxMemory
+DomainGetMaxVcpus
+DomainGetOSType
+DomainGetVcpusFlags
+DomainGetXMLDesc
+DomainHasCurrentSnapshot
+DomainHasManagedSaveImage
+DomainInterfaceStats
+DomainIsActive
+DomainIsPersistent
+DomainIsUpdated
+DomainLookupByID
+DomainLookupByName
+DomainLookupByUUID
+DomainManagedSave
+DomainManagedSaveRemove
+DomainMigrateFinish
+DomainMigrateFinish2
+DomainMigratePerform
+DomainMigrateSetMaxDowntime
+DomainMigrateSetMaxSpeed
+DomainPinVcpu
+DomainReboot
+DomainRestore
+DomainResume
+DomainRevertToSnapshot
+DomainSave
+DomainSetAutostart
+DomainSetMaxMemory
+DomainSetMemory
+DomainSetMemoryFlags
+DomainSetVcpus
+DomainSetVcpusFlags
+DomainShutdown
+DomainSnapshotCreateXML
+DomainSnapshotCurrent
+DomainSnapshotDelete
+DomainSnapshotGetXMLDesc
+DomainSnapshotListNames
+DomainSnapshotLookupByName
+DomainSnapshotNum
+DomainSuspend
+DomainUndefine
+DomainUpdateDeviceFlags
+DomainXMLFromNative
+DomainXMLToNative
+GetCapabilities
+GetHostname
+GetLibVersion
+GetMaxVcpus
+GetSysinfo
+GetVersion
+InterfaceCreate
+InterfaceDefineXML
+InterfaceDestroy
+InterfaceGetXMLDesc
+InterfaceIsActive
+InterfaceLookupByMACString
+InterfaceLookupByName
+InterfaceUndefine
+ListDefinedDomains
+ListDefinedInterfaces
+ListDefinedNetworks
+ListDefinedStoragePools
+ListInterfaces
+ListNetworks
+ListNWFilters
+ListSecrets
+ListStoragePools
+NetworkCreate
+NetworkCreateXML
+NetworkDefineXML
+NetworkDestroy
+NetworkGetAutostart
+NetworkGetBridgeName
+NetworkGetXMLDesc
+NetworkIsActive
+NetworkIsPersistent
+NetworkLookupByName
+NetworkLookupByUUID
+NetworkSetAutostart
+NetworkUndefine
+NodeDeviceCreateXML
+NodeDeviceDestroy
+NodeDeviceGetXMLDesc
+NodeDeviceListCaps
+NodeDeviceLookupByName
+NodeDeviceNumOfCaps
+NodeGetFreeMemory
+NodeGetInfo
+NodeListDevices
+NodeNumOfDevices
+NumOfDefinedDomains
+NumOfDefinedInterfaces
+NumOfDefinedNetworks
+NumOfDefinedStoragePools
+NumOfDomains
+NumOfInterfaces
+NumOfNetworks
+NumOfNWFilters
+NumOfSecrets
+NumOfStoragePools
+NWFilterDefineXML
+NWFilterGetXMLDesc
+NWFilterLookupByName
+NWFilterLookupByUUID
+NWFilterUndefine
+SecretDefineXML
+SecretGetXMLDesc
+SecretLookupByUsage
+SecretLookupByUUID
+SecretSetValue
+SecretUndefine
+StoragePoolBuild
+StoragePoolCreate
+StoragePoolCreateXML
+StoragePoolDefineXML
+StoragePoolDelete
+StoragePoolDestroy
+StoragePoolGetAutostart
+StoragePoolGetInfo
+StoragePoolGetXMLDesc
+StoragePoolIsActive
+StoragePoolIsPersistent
+StoragePoolListVolumes
+StoragePoolLookupByName
+StoragePoolLookupByUUID
+StoragePoolLookupByVolume
+StoragePoolNumOfVolumes
+StoragePoolRefresh
+StoragePoolSetAutostart
+StoragePoolUndefine
+StorageVolCreateXML
+StorageVolCreateXMLFrom
+StorageVolDelete
+StorageVolGetInfo
+StorageVolGetPath
+StorageVolGetXMLDesc
+StorageVolLookupByKey
+StorageVolLookupByName
+StorageVolLookupByPath
+StorageVolWipe
-- 
1.7.0.4




More information about the libvir-list mailing list