<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10/31/2012 05:00 PM, Trinath
      Somanchi wrote:<br>
    </div>
    <blockquote
cite="mid:CAH8Hgma_xvyPL_tAmRBDW0-CYXR78O-3mN23Y4rU8=YgUbgNzA@mail.gmail.com"
      type="cite">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><a class="moz-txt-link-abbreviated" href="mailto:root@user-P2020Build:/usr/lib/python2.7/dist-packages/quantum/db#">root@user-P2020Build:/usr/lib/python2.7/dist-packages/quantum/db#</a>
          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>
    </blockquote>
    I don't know what change you have done to the code, so cannot help a
    lot.<br>
    <blockquote
cite="mid:CAH8Hgma_xvyPL_tAmRBDW0-CYXR78O-3mN23Y4rU8=YgUbgNzA@mail.gmail.com"
      type="cite">
      <div>
        <div>How can I register a new plugin/agent with the quantum?</div>
        <div><br>
        </div>
      </div>
    </blockquote>
    quantum.conf define the plugin:<br>
    core_plugin =
    quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2<br>
    You can point it to your plugin.<br>
    plugin agent is a peer for the plugin, that is running standalone.<br>
    <blockquote
cite="mid:CAH8Hgma_xvyPL_tAmRBDW0-CYXR78O-3mN23Y4rU8=YgUbgNzA@mail.gmail.com"
      type="cite">
      <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>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Mailing list: <a class="moz-txt-link-freetext" href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a>
Post to     : <a class="moz-txt-link-abbreviated" href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>
Unsubscribe : <a class="moz-txt-link-freetext" href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a>
More help   : <a class="moz-txt-link-freetext" href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>