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