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@xxxxxxxxxxxxxx> + * + * 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@xxxxxxxxxxxxxx> + * + * 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list