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
> 

Reply via email to