Yes, I'm using zaku...
And I do not have any file called "jsonmsg_event.i".
Any idea about how can I receive json messages and handle them in order to install flow entries?
Do I have to use destiny branch?
I don't know if it could be simple to switch from zaku to destiny, but i'd rather to keep zaku, as I already worked a bit on it in order to extend it with other classes and with the component I am try to improve.
Is it possible to implement those functionalities going on with zaku?

Giorgio

On 26/01/2012 21:38, Kyriakos Zarifis wrote:
Hi Girogio,

I forgot to ask, but, are you using the destiny branch or zaku? It looks like you're using zaku.

In your _source_ directory, not the build dir, (so: nox/src/nox/coreapps/messenger), you should have a file called "jsonmsg_event.i", which creates the module you're missing. That exists only in destiny

On Thu, Jan 26, 2012 at 5:27 AM, Giorgio Mazza <giorgio.mazza...@gmail.com <mailto:giorgio.mazza...@gmail.com>> wrote:

    Actually I get the same error, because I do not have neither
    pyjsonmsgevent nor pymsgevent in messenger folder...
    This is the list of what I have in messenger folder:

    giorgio@controller:~/nox/build/src$ ls -a  nox/coreapps/messenger/
    . jsonmessenger.la <http://jsonmessenger.la> messenger.la
    <http://messenger.la>
.. jsonmessenger_la-jsonmessenger.lo messenger_la-messenger.lo cacert.pem .libs messenger.py .deps Makefile meta.json
    __init__.py messenger_core.la
<http://messenger_core.la> servercert.pem __init__.pyc messenger_core_la-messenger_core.lo serverkey.pem


    Do I miss anything in my folders or did I make something wrong?

    Giorgio


    On 26/01/2012 13:05, Murphy McCauley wrote:
    Oops, that was my bad -- as I said, I had adapted that from
    another message.
    The correct import should be:
    from nox.coreapps.messenger.pyjsonmsgevent import JSONMsg_event

    -- Murphy

    On Jan 26, 2012, at 3:40 AM, Giorgio Mazza wrote:

    Thanks, I think I will specify a port.

    Another question...
    At the moment I get an error while importing the JSON_Msg event
    in the install() of my component.

    "in install
            from nox.coreapps.messenger.pymsgevent import JSONMsg_event
        ImportError: No module named pymsgevent "

    I blindly followed your instructions at first, but then I looked
    in my messenger folder without finding where this event is defined.
    Could you please tell me where is it, so that I can insert the
    correct path in my install function? I'm using the standard
    message folder.
    Thank you.
    Regards,

    Giorgio

    On 25/01/2012 22:28, Murphy McCauley wrote:
    I believe it defaults to port 2703.  You should be able to set
    the port number by specifying it on the commandline...
    ./nox_core -i ptcp: jsonmessenger=tcpport=4096 your_app_here

    It listens on all IP addresses; there is currently no way to
    specify just one.

    -- Murphy

    On Jan 25, 2012, at 1:11 PM, Giorgio Mazza wrote:

    A question about the socket opened when invoking jsonmessenger.
    What are the IP address, the tcp port and the interface that
    this socket refers to? Is there any way to set them?
    I undersotood the mechanism, but I don't know where to send my
    messages from the external application.
    Thank you.
    Regards,

    Giorgio

    On 24/01/2012 13:49, Murphy McCauley wrote:
    The minimum to get up and going should be something like this:

    1) In your component's install function:
    from nox.coreapps.messenger.pymsgevent import JSONMsg_event
    JSONMsg_event.register_event_converter(self.ctxt)
    self.register_handler(JSONMsg_event.static_get_name(), myHandler)

    2) Implement a handler:
    def myHandler (e):
      import json
      print json.loads(e.jsonstring)
      e.reply(json.dumps({"msg":"Hello world"}))

    3) Include jsonmessenger on the commandline or as a dependency


    That may not be exactly correct -- it's adapted from a quick
    writeup I did in December about using the new Python support
    for the "regular" messenger (as opposed to the JSON
messenger), which has not yet been pushed to the repository. For reference, that post was:
    http://noxrepo.org/pipermail/nox-dev/2011-December/008382.html

    (If using the new version of messenger that I linked to in
    that post, you remove the register_event_converter() call
    from step 1 and include pyjsonmessenger instead of
    jsonmessenger in step 3.)

    Invoking the jsonmessenger component (on the commandline or
    by including it as a dependency in your app's meta.json) will
    create the server socket for you.

    You absolutely do not have to use the messenger.py class.
     I'm removing it from that directory, because all it ever
    does is confuse people -- it really doesn't belong there.
     messenger.py is a library for writing JSON messenger
    *clients* (external programs) in Python.  That may be useful
    to you, but you don't need it for the NOX side of things.

    Hope that helps.

    -- Murphy

    On Jan 24, 2012, at 4:12 AM, Giorgio Mazza wrote:

    Thank you.
    I try to sum up the operations I need to perform, to see if
    I understood correctly.
    Basically in my external application I have to set up a
    socket that sends json messages and this would be quite simple.
    In my nox component, instead, I have to import the
    "JSONMsg_event" and, within the "install()" instruction, to
    handle it with my specific method, that, in my case, would
    only save these json messages into a dictionary, for using
    them later, according to some conditions.
    Is that correct?

    A couple of things that I didn't understand:
    - I assume I also have to set up a server socket in my nox
component, in order to receive json messages and handle JSONMsg_events. So, I think this socket has to be already up
    and running when I handle the event. So, when do I have to
    create it and how? Do I have to use messenger.py channel class?
    - Second question, probably related to the first. I think to
    be pretty confused about jsonmessenger: what are the
    jsonmessenger files I could look into in order to understand
    fields and methods that I would need to use? Are the
    jsonmessenger.cc and jsonmessenger.hh in
    nox/src/nox/coreapps/messenger? And, if it is the case, how
    can I integrate them into a python component?

    Thanks again,

    Giorgio

    On 24/01/2012 12:28, Kyriakos Zarifis wrote:
    Hi Giorgio,

    yes, I think using jsonmessenger would be the best approach
    for this.

    you need to implement a send/receive interface on the
    external application and in your nox component. For the
    external application, it's pretty straightforward - Connect
    to the jsonmessenger socket and send json strings. In your
    nox application you need to register for JSON messages, and
    handle them appropriately.

    The wiki explains the communication in a few steps
    (specifically for the GUI<->NOX, but it will be similar and
    simpler for any external app) here
    
<http://noxrepo.org/noxwiki/index.php/NOX_GUI#Connecting_a_subview_to_a_NOX_component>:

    If you want to see a full example, the GUI
    <http://tinyurl.com/6p2yl5o> and the monitoring
    <http://tinyurl.com/6nv83a3> component in destiny could be
    a place to look. I'm afraid it's much more complex than
    what you need, but the bits you need are in there if you
    dig in the code a bit.


    On Tue, Jan 24, 2012 at 2:16 AM, Giorgio Mazza
    <giorgio.mazza...@gmail.com
    <mailto:giorgio.mazza...@gmail.com>> wrote:

        Hi all!
        I have written a simple component in python that works
        fine.
        Now I would to improve it, making it to install flow
        entries depending on parameters received from an
        external application.
        In particular I want to pass those parameters via json
        messages to my component, which, in my thougths, has to
        open a "permanent" socket listening for them, save
        those parameters in a dictionary and, as a consequence,
        decide the desired switch behaviour (whether install or
        not a flow entry for the received parameters).
        In previous threads I found that I have to use
        jsonmessenger (even in python?) or to have a look to
        discovery.py, but I am not sure to have understood what
        I have to do and where in order to realize such a
        behaviour.
        Could anyone, please, help me?
        Thank you in advance,

        Giorgio Mazza
        _______________________________________________
        nox-dev mailing list
        nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
        http://noxrepo.org/mailman/listinfo/nox-dev



    _______________________________________________
    nox-dev mailing list
    nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    http://noxrepo.org/mailman/listinfo/nox-dev


    _______________________________________________
    nox-dev mailing list
    nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    http://noxrepo.org/mailman/listinfo/nox-dev


    _______________________________________________
    nox-dev mailing list
    nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    http://noxrepo.org/mailman/listinfo/nox-dev



    _______________________________________________
    nox-dev mailing list
    nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    http://noxrepo.org/mailman/listinfo/nox-dev



_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to