[libvirt] [PATCH] esx: Add nwfilter driver stub

Matthias Bolte matthias.bolte at googlemail.com
Thu Apr 15 00:31:41 UTC 2010


This stops libvirt trying to connect to a non-existing libvirtd on the
ESX server.
---
 src/Makefile.am               |    1 +
 src/esx/esx_driver.c          |    4 +-
 src/esx/esx_nwfilter_driver.c |   86 +++++++++++++++++++++++++++++++++++++++++
 src/esx/esx_nwfilter_driver.h |   29 ++++++++++++++
 4 files changed, 119 insertions(+), 1 deletions(-)
 create mode 100644 src/esx/esx_nwfilter_driver.c
 create mode 100644 src/esx/esx_nwfilter_driver.h

diff --git a/src/Makefile.am b/src/Makefile.am
index df577ea..66dc349 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -247,6 +247,7 @@ ESX_DRIVER_SOURCES =						\
 		esx/esx_storage_driver.c esx/esx_storage_driver.h		\
 		esx/esx_device_monitor.c esx/esx_device_monitor.h		\
 		esx/esx_secret_driver.c esx/esx_secret_driver.h		\
+		esx/esx_nwfilter_driver.c esx/esx_nwfilter_driver.h		\
 		esx/esx_util.c esx/esx_util.h			\
 		esx/esx_vi.c esx/esx_vi.h			\
 		esx/esx_vi_methods.c esx/esx_vi_methods.h	\
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index e3340c9..a2fc85c 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -39,6 +39,7 @@
 #include "esx_storage_driver.h"
 #include "esx_device_monitor.h"
 #include "esx_secret_driver.h"
+#include "esx_nwfilter_driver.h"
 #include "esx_private.h"
 #include "esx_vi.h"
 #include "esx_vi_methods.h"
@@ -3834,7 +3835,8 @@ esxRegister(void)
         esxNetworkRegister() < 0 ||
         esxStorageRegister() < 0 ||
         esxDeviceRegister() < 0 ||
-        esxSecretRegister() < 0) {
+        esxSecretRegister() < 0 ||
+        esxNWFilterRegister() < 0) {
         return -1;
     }
 
diff --git a/src/esx/esx_nwfilter_driver.c b/src/esx/esx_nwfilter_driver.c
new file mode 100644
index 0000000..71d7aca
--- /dev/null
+++ b/src/esx/esx_nwfilter_driver.c
@@ -0,0 +1,86 @@
+
+/*
+ * esx_nwfilter_driver.c: nwfilter driver functions for managing VMware ESX
+ *                        firewall rules
+ *
+ * Copyright (C) 2010 Matthias Bolte <matthias.bolte at googlemail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ *
+ */
+
+#include <config.h>
+
+#include "internal.h"
+#include "util.h"
+#include "memory.h"
+#include "logging.h"
+#include "uuid.h"
+#include "esx_private.h"
+#include "esx_nwfilter_driver.h"
+#include "esx_vi.h"
+#include "esx_vi_methods.h"
+#include "esx_util.h"
+
+#define VIR_FROM_THIS VIR_FROM_ESX
+
+
+
+static virDrvOpenStatus
+esxNWFilterOpen(virConnectPtr conn,
+                virConnectAuthPtr auth ATTRIBUTE_UNUSED,
+                int flags ATTRIBUTE_UNUSED)
+{
+    if (STRNEQ(conn->driver->name, "ESX")) {
+        return VIR_DRV_OPEN_DECLINED;
+    }
+
+    conn->nwfilterPrivateData = conn->privateData;
+
+    return VIR_DRV_OPEN_SUCCESS;
+}
+
+
+
+static int
+esxNWFilterClose(virConnectPtr conn)
+{
+    conn->interfacePrivateData = NULL;
+
+    return 0;
+}
+
+
+
+static virNWFilterDriver esxNWFilterDriver = {
+    "ESX",                                 /* name */
+    esxNWFilterOpen,                       /* open */
+    esxNWFilterClose,                      /* close */
+    NULL,                                  /* numOfNWFilters */
+    NULL,                                  /* listNWFilters */
+    NULL,                                  /* nwfilterLookupByName */
+    NULL,                                  /* nwfilterLookupByUUID */
+    NULL,                                  /* defineXML */
+    NULL,                                  /* undefine */
+    NULL,                                  /* getXMLDesc */
+};
+
+
+
+int
+esxNWFilterRegister(void)
+{
+    return virRegisterNWFilterDriver(&esxNWFilterDriver);
+}
diff --git a/src/esx/esx_nwfilter_driver.h b/src/esx/esx_nwfilter_driver.h
new file mode 100644
index 0000000..64cceab
--- /dev/null
+++ b/src/esx/esx_nwfilter_driver.h
@@ -0,0 +1,29 @@
+
+/*
+ * esx_nwfilter_driver.h: nwfilter driver functions for managing VMware ESX
+ *                        firewall rules
+ *
+ * Copyright (C) 2010 Matthias Bolte <matthias.bolte at googlemail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ *
+ */
+
+#ifndef __ESX_NWFILTER_DRIVER_H__
+# define __ESX_NWFILTER_DRIVER_H__
+
+int esxNWFilterRegister(void);
+
+#endif /* __ESX_NWFILTER_DRIVER_H__ */
-- 
1.6.3.3




More information about the libvir-list mailing list