]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Remove nova code from Quantum Cisco Plugin
authorEdgar Magana <emagana@gmail.com>
Thu, 8 Nov 2012 06:57:35 +0000 (22:57 -0800)
committerEdgar Magana <emagana@gmail.com>
Thu, 8 Nov 2012 06:57:35 +0000 (22:57 -0800)
Fixes bug 1073311

Change-Id: Ifd408d7fdbbaec1fd70e8d114dc2cdc38505b2c2

quantum/plugins/cisco/nova/__init__.py [deleted file]
quantum/plugins/cisco/nova/quantum_port_aware_scheduler.py [deleted file]
quantum/plugins/cisco/nova/vifdirect.py [deleted file]

diff --git a/quantum/plugins/cisco/nova/__init__.py b/quantum/plugins/cisco/nova/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/quantum/plugins/cisco/nova/quantum_port_aware_scheduler.py b/quantum/plugins/cisco/nova/quantum_port_aware_scheduler.py
deleted file mode 100644 (file)
index 61ab9b4..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-#
-# Copyright 2011 Cisco Systems, Inc.  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.
-#
-# @author: Sumit Naiksatam, Cisco Systems, Inc.
-#
-
-
-"""
-Quantum Port Aware Scheduler Implementation
-"""
-
-from nova import exception as excp
-from nova import flags
-from nova.openstack.common import cfg
-from nova.openstack.common import log as logging
-from nova.scheduler import chance
-from quantumclient import Client
-
-
-LOG = logging.getLogger(__name__)
-
-
-quantum_opts = [
-    cfg.StrOpt('quantum_connection_host',
-               default='127.0.0.1',
-               help='HOST for connecting to quantum'),
-    cfg.StrOpt('quantum_connection_port',
-               default='9696',
-               help='PORT for connecting to quantum'),
-    cfg.StrOpt('quantum_default_tenant_id',
-               default="default",
-               help='Default tenant id when creating quantum networks'),
-]
-
-
-FLAGS = flags.FLAGS
-FLAGS.register_opts(quantum_opts)
-
-HOST = FLAGS.quantum_connection_host
-PORT = FLAGS.quantum_connection_port
-USE_SSL = False
-VERSION = '1.0'
-URI_PREFIX_CSCO = '/extensions/csco/tenants/{tenant_id}'
-TENANT_ID = 'nova'
-CSCO_EXT_NAME = 'Cisco Nova Tenant'
-ACTION = '/schedule_host'
-
-
-class QuantumPortAwareScheduler(chance.ChanceScheduler):
-    """
-    Quantum network service dependent scheduler
-    Obtains the hostname from Quantum using an extension API
-    """
-    def __init__(self):
-        # We have to send a dummy tenant name here since the client
-        # needs some tenant name, but the tenant name will not be used
-        # since the extensions URL does not require it
-        LOG.debug("Initializing Cisco Quantum Port-aware Scheduler...")
-        super(QuantumPortAwareScheduler, self).__init__()
-        client = Client(HOST, PORT, USE_SSL, format='json', version=VERSION,
-                        uri_prefix="", tenant="dummy", logger=LOG)
-        request_url = "/extensions"
-        data = client.do_request('GET', request_url)
-        LOG.debug("Obtained supported extensions from Quantum: %s" % data)
-        for ext in data['extensions']:
-            name = ext['name']
-            if name == CSCO_EXT_NAME:
-                LOG.debug("Quantum plugin supports required \"%s\" extension"
-                          "for the scheduler." % name)
-                return
-
-        LOG.error("Quantum plugin does not support required \"%s\" extension"
-                  " for the scheduler. Scheduler will quit." % CSCO_EXT_NAME)
-        raise excp.ServiceUnavailable()
-
-    def _schedule(self, context, topic, request_spec, **kwargs):
-        """Gets the host name from the Quantum service"""
-        LOG.debug("Cisco Quantum Port-aware Scheduler is scheduling...")
-        instance_id = request_spec['instance_properties']['uuid']
-        user_id = request_spec['instance_properties']['user_id']
-        project_id = request_spec['instance_properties']['project_id']
-
-        instance_data_dict = {'novatenant':
-                              {'instance_id': instance_id,
-                               'instance_desc':
-                               {'user_id': user_id,
-                                'project_id': project_id}}}
-
-        client = Client(HOST, PORT, USE_SSL, format='json', version=VERSION,
-                        uri_prefix=URI_PREFIX_CSCO, tenant=TENANT_ID,
-                        logger=LOG)
-        request_url = "/novatenants/" + project_id + ACTION
-        data = client.do_request('PUT', request_url, body=instance_data_dict)
-
-        hostname = data["host_list"]["host_1"]
-        if not hostname:
-            raise excp.NoValidHost(_("Scheduler was unable to locate a host"
-                                     " for this request. Is the appropriate"
-                                     " service running?"))
-
-        LOG.debug(_("Quantum service returned host: %s") % hostname)
-        return hostname
diff --git a/quantum/plugins/cisco/nova/vifdirect.py b/quantum/plugins/cisco/nova/vifdirect.py
deleted file mode 100644 (file)
index 88e72a2..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-# Copyright 2011 Cisco Systems, Inc.  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.
-#
-# @author: Sumit Naiksatam, Cisco Systems, Inc.
-#
-
-"""VIF drivers for interface type direct."""
-
-
-from nova import exception as excp
-from nova import flags
-from nova.openstack.common import cfg
-from nova.openstack.common import log as logging
-from nova.virt.vif import VIFDriver
-from quantumclient import Client
-
-
-LOG = logging.getLogger(__name__)
-
-quantum_opts = [
-    cfg.StrOpt('quantum_connection_host',
-               default='127.0.0.1',
-               help='HOST for connecting to quantum'),
-    cfg.StrOpt('quantum_connection_port',
-               default='9696',
-               help='PORT for connecting to quantum'),
-    cfg.StrOpt('quantum_default_tenant_id',
-               default="default",
-               help='Default tenant id when creating quantum networks'),
-]
-
-FLAGS = flags.FLAGS
-FLAGS.register_opts(quantum_opts)
-
-HOST = FLAGS.quantum_connection_host
-PORT = FLAGS.quantum_connection_port
-USE_SSL = False
-VERSION = '1.0'
-URI_PREFIX_CSCO = '/extensions/csco/tenants/{tenant_id}'
-TENANT_ID = 'nova'
-CSCO_EXT_NAME = 'Cisco Nova Tenant'
-ASSOCIATE_ACTION = '/associate_port'
-DETACH_ACTION = '/detach_port'
-
-
-class Libvirt802dot1QbhDriver(VIFDriver):
-    """VIF driver for 802.1Qbh"""
-    def __init__(self):
-        # We have to send a dummy tenant name here since the client
-        # needs some tenant name, but the tenant name will not be used
-        # since the extensions URL does not require it
-        LOG.debug("Initializing Cisco Quantum VIF driver...")
-        client = Client(HOST, PORT, USE_SSL, format='json', version=VERSION,
-                        uri_prefix="", tenant="dummy", logger=LOG)
-        request_url = "/extensions"
-        data = client.do_request('GET', request_url)
-        LOG.debug("Obtained supported extensions from Quantum: %s" % data)
-        for ext in data['extensions']:
-            name = ext['name']
-            if name == CSCO_EXT_NAME:
-                LOG.debug("Quantum plugin supports required \"%s\" extension"
-                          "for the VIF driver." % name)
-                return
-        LOG.error("Quantum plugin does not support required \"%s\" extension"
-                  " for the VIF driver. nova-compute will quit."
-                  % CSCO_EXT_NAME)
-        raise excp.ServiceUnavailable()
-
-    def _update_configurations(self, instance, network, mapping, action):
-        """Gets the device name and the profile name from Quantum"""
-        LOG.debug("Cisco Quantum VIF driver performing: %s" % (action))
-        instance_id = instance['uuid']
-        user_id = instance['user_id']
-        project_id = instance['project_id']
-        vif_id = mapping['vif_uuid']
-
-        instance_data_dict = {
-            'novatenant': {
-                'instance_id': instance_id,
-                'instance_desc': {
-                    'user_id': user_id,
-                    'project_id': project_id,
-                    'vif_id': vif_id}}}
-
-        client = Client(HOST, PORT, USE_SSL, format='json', version=VERSION,
-                        uri_prefix=URI_PREFIX_CSCO, tenant=TENANT_ID,
-                        logger=LOG)
-        request_url = "/novatenants/" + project_id + action
-        data = client.do_request('PUT', request_url, body=instance_data_dict)
-
-        if action == ASSOCIATE_ACTION:
-            device = data['vif_desc']['device']
-            portprofile = data['vif_desc']['portprofile']
-            LOG.debug(_("Quantum provided the device: %s") % device)
-            LOG.debug(_("Quantum provided the portprofile: %s") % portprofile)
-            mac_id = mapping['mac'].replace(':', '')
-
-            result = {
-                'id': mac_id,
-                'mac_address': mapping['mac'],
-                'device_name': device,
-                'profile_name': portprofile,
-            }
-
-            return result
-        else:
-            return data
-
-    def plug(self, instance, network, mapping):
-        return self._update_configurations(instance, network, mapping,
-                                           ASSOCIATE_ACTION)
-
-    def unplug(self, instance, network, mapping):
-        self._update_configurations(instance, network, mapping,
-                                    DETACH_ACTION)