Delete pointless nova.virt.VIFDriver class

There is a nova.virt.VIFDriver class which the hypervisor
VIF drivers inherit from. None of the hypervisor subclasses
pay any attention to the API contract defined to the parent
class. Some of the hypervisors don't bother trying to use
the VIFDriver class at all (hyperv, baremetal).

It is not worth trying to make the hypervisor subclasses
follow the same API contract, since the base parent class
offers no re-usable functionality of its own. The hypervisor
base classs nova.virt.ComputeDriver also has no need for the
VIFDriver API to exist, since its integration point is the
'plug_vifs' method.

As such the nova.virt.VIFDriver class serves no purpose
other than to mislead reviewers into thinking there is a
common API where none actually exists. It should thus be
deleted

Change-Id: Id287f7e66143a248a5f106e010510a3f09d2b1e7
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2012-12-17 20:45:03 +00:00
parent 7240f7d480
commit b1298cc990
4 changed files with 3 additions and 40 deletions

View File

@ -25,7 +25,6 @@ from nova.openstack.common import cfg
from nova.openstack.common import log as logging
from nova import utils
from nova.virt import netutils
from nova.virt import vif
from nova.virt.libvirt import config as vconfig
@ -48,7 +47,7 @@ CONF.import_opt('use_ipv6', 'nova.config')
LINUX_DEV_LEN = 14
class LibvirtBaseVIFDriver(vif.VIFDriver):
class LibvirtBaseVIFDriver(object):
def get_config(self, instance, network, mapping):
conf = vconfig.LibvirtConfigGuestInterface()

View File

@ -1,34 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright (C) 2011 Midokura KK
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""VIF module common to all virt layers."""
class VIFDriver(object):
"""Abstract class that defines generic interfaces for all VIF drivers."""
def __init__(self, **kwargs):
# NOTE(jkoelker) __init__ is here so subclasses *could* take
# advantage of any kwargs should they need to
pass
def plug(self, instance, vif, **kwargs):
"""Plug VIF into network."""
raise NotImplementedError()
def unplug(self, instance, vif, **kwargs):
"""Unplug VIF from network."""
raise NotImplementedError()

View File

@ -20,7 +20,6 @@
from nova import exception
from nova.openstack.common import cfg
from nova.openstack.common import log as logging
from nova.virt import vif
from nova.virt.vmwareapi import network_utils
@ -30,7 +29,7 @@ CONF = cfg.CONF
CONF.set_default('vmwareapi_vlan_interface', 'vmnic0')
class VMWareVlanBridgeDriver(vif.VIFDriver):
class VMWareVlanBridgeDriver(object):
"""VIF Driver to setup bridge/VLAN networking using VMWare API."""
def plug(self, instance, vif):

View File

@ -21,7 +21,6 @@
from nova.openstack.common import cfg
from nova.openstack.common import log as logging
from nova.virt import vif
from nova.virt.xenapi import network_utils
from nova.virt.xenapi import vm_utils
@ -35,7 +34,7 @@ CONF.register_opt(xenapi_ovs_integration_bridge_opt)
LOG = logging.getLogger(__name__)
class XenVIFDriver(vif.VIFDriver):
class XenVIFDriver(object):
def __init__(self, xenapi_session):
self._session = xenapi_session