Try adding a getInterface method to your component. Something like:
def getInterface (self):
return str(type(self))
-- Murphy
On Apr 7, 2013, at 12:49 PM, udita gangwal wrote:
> Hello All,
>
> I have wriiten a module to obtain the individual flow entries from the OVS. I
> run it along with the monitoring component.
>
> The code in the module is as follows:
>
> from nox.lib.core import *
> import nox.lib.pyopenflow as of
> from nox.netapps.monitoring.monitoring import Monitoring
> from twisted.python import log
> import logging
>
> log = logging.getLogger('nox.coreapps.examples.mymonitor')
>
> #global mymonitor instance
> #inst=None
>
> class MyMonitor(Component):
>
> def __init__(self, ctxt):
> #global inst
> Component.__init__(self, ctxt)
> self.ctxt = ctxt
> log.info("Reached the first chkpoint.")
> self.Monitoring =
> ctxt.resolve("nox.netapps.monitoring.monitoring.Monitoring")
> log.info("I have come till second chkpoint")
>
> def install(self):
> self.register_for_flow_stats_in(flow_stats_in_handler)
>
>
> #for sending flow stats request
> def send_flow_stats_request():
> global xid
> flows = of.ofp_match()
> flows.wildcards = of.OFPFW_ALL
> self.Monitoring.send_flow_stats_request(dpid, flows, 0xff, xid)
> xid += 1
>
>
> #for handling the flow stats in
> def flow_stats_in_handler(dpid, flows, more, xid):
> print "---------Flow stats report----------"
> print str(dpid)+" "+str(flows)
> for i in flows:
> print flows[i]
>
>
> def getFactory():
> class Factory:
> def instance(self, ctxt):
> return MyMonitor(ctxt)
>
> return Factory()
>
>
>
>
> I run it from the command line as follows:
>
> sudo ./nox_core -v -i ptcp:6633 pyswitch monitoring mymonitor
>
>
>
> And I get the following error on running it:
>
> 00001|nox|INFO:Starting nox_core
> (/home/openflow/noxcore/build/src/.libs/lt-nox_core)
> 00002|monitoring|INFO:Simple monitoring started!
> 00003|monitoring|INFO:Finished configuring monitoring
> 00004|nox.coreapps.examples.mymonitor|INFO:Reached the first chkpoint.
> 00005|nox.coreapps.examples.mymonitor|INFO:I have come till second chkpoint
> 00006|nox|ERR:Cannot change the state of 'mymonitor' to INSTALLED:
> 'mymonitor' ran into an error:
> cannot retrieve the Python component interface description:
>
>
> I have also the added the folowing entry in the meta.json file present in the
> coreapps/example directory:
>
> {
> "name": "mymonitor" ,
> "dependencies": [
> "python"
> ],
> "python": "nox.coreapps.examples.mymonitor"
> },
>
> Has something else be added here?
>
>
> Can someone please tell me what this error is and what has to be done to
> solve it?
>
> Many Thanks,
> Udita
>
>
> On Sat, Apr 6, 2013 at 9:24 PM, Murphy McCauley <[email protected]>
> wrote:
> On Apr 6, 2013, at 11:13 AM, udita gangwal wrote:
>
> > I want to obtain the individual flow entries from the OVS and display them
> > on the NOX console. How can I do this?
>
> By sending a flow_stats request and handling the response.
>
> > What does the monitor module do in NOX?
>
> It's described (briefly) on the NOX wiki:
> https://github.com/noxrepo/nox-classic/wiki/Monitoring
>
> It periodically sends stats requests. You can probably either use it or base
> your own flow stats query code on it.
>
> -- Murphy
>