Hi Stackers-
I'm testing a dummy plugin which does and RPC based communication with
Quantum.
I have done this following:
[1] I have written dummy agent like DHCP agent - Present in HOST
[2] I have written dummy_rpc_base like the db/dhcp_rpc_base.py -
Present in Controller
[3] I have written an testing method to the db/db_base_plugin_v2.py
- Present in Controller
But when I restart the quantum-server, I get this error:
root@user-P2020Build:/usr/lib/python2.7/dist-packages/quantum/db#
python /usr/bin/quantum-server -- --config-file
/etc/quantum/quantum.conf --log-file /var/log/quantum/server.log
--config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
2012-10-31 14:20:30 DEBUG [quantum.service]
********************************************************************************
2012-10-31 14:20:30 DEBUG [quantum.service] Configuration options
gathered from config file:
2012-10-31 14:20:30 DEBUG [quantum.service]
================================================
2012-10-31 14:20:30 DEBUG [quantum.service] allow_bulk
True
2012-10-31 14:20:30 DEBUG [quantum.service] allow_overlapping_ips
False
2012-10-31 14:20:30 DEBUG [quantum.service] api_extensions_path
2012-10-31 14:20:30 DEBUG [quantum.service] api_paste_config
/etc/quantum/api-paste.ini
2012-10-31 14:20:30 DEBUG [quantum.service] auth_strategy
keystone
2012-10-31 14:20:30 DEBUG [quantum.service] base_mac
fa:16:3e:00:00:00
2012-10-31 14:20:30 DEBUG [quantum.service] bind_host
0.0.0.0
2012-10-31 14:20:30 DEBUG [quantum.service] bind_port
9696
2012-10-31 14:20:30 DEBUG [quantum.service] config_dir
None
2012-10-31 14:20:30 DEBUG [quantum.service] config_file
['/etc/quantum/quantum.conf']
2012-10-31 14:20:30 DEBUG [quantum.service] core_plugin
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
2012-10-31 14:20:30 DEBUG [quantum.service] debug
True
2012-10-31 14:20:30 DEBUG [quantum.service] dhcp_lease_duration
120
2012-10-31 14:20:30 DEBUG [quantum.service] log_config
None
2012-10-31 14:20:30 DEBUG [quantum.service] log_date_format
%Y-%m-%d %H:%M:%S
2012-10-31 14:20:30 DEBUG [quantum.service] log_dir
None
2012-10-31 14:20:30 DEBUG [quantum.service] log_file
None
2012-10-31 14:20:30 DEBUG [quantum.service] log_format
%(asctime)s %(levelname)8s [%(name)s] %(message)s
2012-10-31 14:20:30 DEBUG [quantum.service] mac_generation_retries
16
2012-10-31 14:20:30 DEBUG [quantum.service] max_dns_nameservers
5
2012-10-31 14:20:30 DEBUG [quantum.service] max_subnet_host_routes
20
2012-10-31 14:20:30 DEBUG [quantum.service] policy_file
policy.json
2012-10-31 14:20:30 DEBUG [quantum.service] state_path
.
2012-10-31 14:20:30 DEBUG [quantum.service] syslog_log_facility
LOG_USER
2012-10-31 14:20:30 DEBUG [quantum.service] use_syslog
False
2012-10-31 14:20:30 DEBUG [quantum.service] verbose
True
2012-10-31 14:20:30 DEBUG [quantum.service]
********************************************************************************
2012-10-31 14:20:30 INFO [quantum.common.config] Config paste
file: /etc/quantum/api-paste.ini
2012-10-31 14:20:30 DEBUG [quantum.manager] Plugin
location:quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
2012-10-31 14:20:30 INFO [quantum.manager] Loading Plugin:
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
Traceback (most recent call last):
File "/usr/bin/quantum-server", line 26, in <module>
server()
File "/usr/lib/python2.7/dist-packages/quantum/server/__init__.py",
line 40, in main
quantum_service = service.serve_wsgi(service.QuantumApiService)
File "/usr/lib/python2.7/dist-packages/quantum/service.py", line 83,
in serve_wsgi
service.start()
File "/usr/lib/python2.7/dist-packages/quantum/service.py", line 42,
in start
self.wsgi_app = _run_wsgi(self.app_name)
File "/usr/lib/python2.7/dist-packages/quantum/service.py", line 89,
in _run_wsgi
app = config.load_paste_app(app_name)
File "/usr/lib/python2.7/dist-packages/quantum/common/config.py",
line 133, in load_paste_app
app = deploy.loadapp("config:%s" % config_path, name=app_name)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 272, in loadobj
return context.create()
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 710, in create
return self.object_type.invoke(self)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 144, in invoke
**context.local_conf)
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
59, in fix_call
reraise(*exc_info)
File "/usr/lib/python2.7/dist-packages/paste/deploy/compat.py", line
22, in reraise
exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
56, in fix_call
val = callable(*args, **kw)
File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 25, in
urlmap_factory
app = loader.get_app(app_name, global_conf=global_conf)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 350, in get_app
name=name, global_conf=global_conf).create()
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 710, in create
return self.object_type.invoke(self)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 144, in invoke
**context.local_conf)
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
59, in fix_call
reraise(*exc_info)
File "/usr/lib/python2.7/dist-packages/paste/deploy/compat.py", line
22, in reraise
exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
56, in fix_call
val = callable(*args, **kw)
File "/usr/lib/python2.7/dist-packages/quantum/auth.py", line 61, in
pipeline_factory
app = loader.get_app(pipeline[-1])
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 350, in get_app
name=name, global_conf=global_conf).create()
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 710, in create
return self.object_type.invoke(self)
File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py",
line 146, in invoke
return fix_call(context.object, context.global_conf,
**context.local_conf)
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
59, in fix_call
reraise(*exc_info)
File "/usr/lib/python2.7/dist-packages/paste/deploy/compat.py", line
22, in reraise
exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line
56, in fix_call
val = callable(*args, **kw)
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/router.py",
line 67, in factory
return cls(**local_config)
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/router.py",
line 71, in __init__
plugin = manager.QuantumManager.get_plugin()
File "/usr/lib/python2.7/dist-packages/quantum/manager.py", line 65,
in get_plugin
cls._instance = cls()
File "/usr/lib/python2.7/dist-packages/quantum/manager.py", line 54,
in __init__
plugin_klass = importutils.import_class(plugin_provider)
File
"/usr/lib/python2.7/dist-packages/quantum/openstack/common/importutils.py",
line 30, in import_class
__import__(mod_str)
File
"/usr/lib/python2.7/dist-packages/quantum/plugins/openvswitch/ovs_quantum_plugin.py",
line 33, in <module>
from quantum.db import l3_db
File "/usr/lib/python2.7/dist-packages/quantum/db/l3_db.py", line
86, in <module>
class L3_NAT_db_mixin(l3.RouterPluginBase):
File "/usr/lib/python2.7/dist-packages/quantum/db/l3_db.py", line
111, in L3_NAT_db_mixin
_network_filter_hook)
TypeError: unbound method register_model_query_hook() must be called
with QuantumDbPluginV2 instance as first argument (got DeclarativeMeta
instance instead)
How to resolve this error?