[nox-dev] Compiling NOX on RHEL/Centos 6+

2012-01-25 Thread Ilia Baldine
Hello,

The wiki says it is possible to build NOX on RHEL 6+ system. Are there specific 
instructions or a list of dependencies available now that I could try? Thank 
you.

-ilia

Ilia Baldine
Director, Networking Research and Infrastructure
Renaissance Computing Institute
http://www.renci.org




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


Re: [nox-dev] Compiling NOX on RHEL/Centos 6+

2012-01-25 Thread John Meylor
Hi Ilia,

On RHEL6, we have been using the following; let me know if there is a 
difference for you.

sudo yum install gcc-c++ boost-devel openssl-devel automake autoconf swig git 
libtool libtool-dev python-devel python-twisted python-simplejson

git clone git://noxrepo.org/nox

./boot.sh

mkdir build

cd build

../configure --with-boost-filesystem=boost_filesystem 
--with-boost-unit-test-framework=mt LDFLAGS='-L/usr/include/openssl -lssl 
-lcrypto'

make

cd src

make check


--John

On Jan 25, 2012, at 3:52 PM, Ilia Baldine wrote:

> Hello,
> 
> The wiki says it is possible to build NOX on RHEL 6+ system. Are there 
> specific instructions or a list of dependencies available now that I could 
> try? Thank you.
> 
> -ilia
> 
> Ilia Baldine
> Director, Networking Research and Infrastructure
> Renaissance Computing Institute
> http://www.renci.org
> 
> 
> 
> 
> ___
> nox-dev mailing list
> 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


Re: [nox-dev] Receiving JSON messages

2012-01-25 Thread Giorgio Mazza

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 
:


If you want to see a full example, the GUI 
 and the monitoring 
 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 
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
 

Re: [nox-dev] Receiving JSON messages

2012-01-25 Thread Murphy McCauley
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:
 
 If you want to see a full example, the GUI and the monitoring 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 
  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