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>