| 2010-05-10 07:31:34 utc | jmettraux | threetee: well done ! |
| 2010-05-10 07:31:55 utc | threetee | thanks |
| 2010-05-10 07:33:04 utc | threetee | working on packaging and deployment for my real agents now, I hope to have something running for real tomorrow :) |
| 2010-05-10 07:33:28 utc | threetee | I've also added some SmtpParticipants as well |
| 2010-05-10 07:33:35 utc | jmettraux | sweet |
| 2010-05-10 07:34:07 utc | threetee | the only thing that is making me nervous now is securing the AMQP traffic |
| 2010-05-10 07:34:43 utc | jmettraux | ah, nothing in AMQP about that ? |
| 2010-05-10 07:34:57 utc | threetee | I can use SSL on the AMQP level, but I'm nervous about password authentication being the only thing between a potential attacker and my agents |
| 2010-05-10 07:35:29 utc | threetee | I'm thinking about hacking some PKI into ruote-amqp so I can sign messages from my server |
| 2010-05-10 07:35:43 utc | jmettraux | good idea |
| 2010-05-10 07:36:47 utc | jmettraux | your system is "on the web" or is the LAN between ruote and the agents insecure ? |
| 2010-05-10 07:37:24 utc | threetee | LAN is fairly secure, but I prefer not to employ the "tootsie pop" security model :) |
| 2010-05-10 07:37:53 utc | jmettraux | OK |
| 2010-05-10 07:38:14 utc | threetee | I'm trying for as much of the "onion" model as possible |
| 2010-05-10 07:38:31 utc | threetee | so if one server gets compromised, I don't want it to be able to start sending instructions to my agents via AMQP |
| 2010-05-10 07:39:36 utc | threetee | oh and I did have a Ruote question as well: right now I'm hard-coding the participants into my pdef, but eventually I need to have them be dynamically-generated, based on metadata pulled from my asset management system |
| 2010-05-10 07:40:01 utc | jmettraux | participant :ref => '${f:toto}' |
| 2010-05-10 07:40:16 utc | jmettraux | participant :ref => 'agent_${f:toto}' |
| 2010-05-10 07:40:27 utc | jmettraux | participant '${f:toto}' |
| 2010-05-10 07:40:40 utc | jmettraux | or |
| 2010-05-10 07:40:48 utc | jmettraux | you can generate the process definition on the fly |
| 2010-05-10 07:41:00 utc | threetee | yes, that's what I planned to do |
| 2010-05-10 07:41:12 utc | threetee | but I like your other suggestions too, I'll have to experiment to see which one makes more sense |
| 2010-05-10 07:41:24 utc | jmettraux | you can use both |
| 2010-05-10 07:41:39 utc | threetee | my question is actually about the storage: any problems there if I change the participants/pdefs? |
| 2010-05-10 07:42:19 utc | jmettraux | well, the process definition is known at launch time |
| 2010-05-10 07:42:47 utc | jmettraux | not sure if I understand your question |
| 2010-05-10 07:42:57 utc | jmettraux | the engine doesn't re-read the process definitions |
| 2010-05-10 07:43:07 utc | jmettraux | it keeps a copy of it in the process instance |
| 2010-05-10 07:43:15 utc | jmettraux | in each of the expression |
| 2010-05-10 07:43:17 utc | jmettraux | s |
| 2010-05-10 07:43:18 utc | threetee | right, but if the participants change |
| 2010-05-10 07:43:36 utc | jmettraux | name is a reference |
| 2010-05-10 07:43:44 utc | jmettraux | if your neighbor picks your mail |
| 2010-05-10 07:43:45 utc | threetee | so actually it seems like your first suggestions would have to be the way I do it |
| 2010-05-10 07:44:09 utc | jmettraux | at runtime versus at launchtime ;) |
| 2010-05-10 07:44:15 utc | threetee | right |
| 2010-05-10 07:44:47 utc | threetee | so instead of "participant :server1, RuoteAMQP::Participant", "participant :server2, RuoteAMQP::Participant" |
| 2010-05-10 07:45:53 utc | threetee | just have one line: "participant '${f:server}', RuoteAMQP::Participant" |
| 2010-05-10 07:46:14 utc | jmettraux | well, you're mixing participant registration with process definition |
| 2010-05-10 07:46:29 utc | jmettraux | participant registration : |
| 2010-05-10 07:47:00 utc | jmettraux | why not participant "agent_.+", RuoteAMQP::Participant |
| 2010-05-10 07:47:12 utc | jmettraux | agent\_.+ |
| 2010-05-10 07:47:18 utc | threetee | makes sense, use the wildcard |
| 2010-05-10 07:47:40 utc | jmettraux | so that any participant whose name starts with agent_ gets handed to the AMQP participant |
| 2010-05-10 07:47:58 utc | jmettraux | then in your process definition |
| 2010-05-10 07:48:03 utc | jmettraux | agent_orange |
| 2010-05-10 07:48:10 utc | jmettraux | participant "agent_orange" |
| 2010-05-10 07:48:14 utc | threetee | perfect |
| 2010-05-10 07:48:19 utc | jmettraux | participant :ref => 'agent_orange' |
| 2010-05-10 07:48:20 utc | jmettraux | ... |
| 2010-05-10 07:48:30 utc | threetee | then I never have to change the participant registration, just my pdefs |
| 2010-05-10 07:48:47 utc | jmettraux | workitem.participant_name holds the absolute value "agent_orange" |
| 2010-05-10 07:48:59 utc | jmettraux | so you can have multiple participant names for 1 participant |
| 2010-05-10 07:49:11 utc | threetee | cool, makes perfect sense |
| 2010-05-10 07:49:44 utc | jmettraux | I hope you can build something nice with all of that |
| 2010-05-10 07:49:56 utc | jmettraux | and come up with feedback, suggestions and contributions |
| 2010-05-10 07:50:15 utc | threetee | is there a difference between "participant :ref => 'agent_orange', :command => '/sample/quote'" and "agent_orange :command => '/sample/quote'"? |
| 2010-05-10 07:50:29 utc | jmettraux | no |
| 2010-05-10 07:50:34 utc | threetee | cool |
| 2010-05-10 07:50:56 utc | threetee | I think I'll still have to reload my rails app, since I plan to store the pdefs in the models |
| 2010-05-10 07:51:31 utc | threetee | and the models should get cached in production |
| 2010-05-10 07:51:50 utc | jmettraux | OK |
| 2010-05-10 07:52:00 utc | threetee | but that shouldn't be a problem |
| 2010-05-10 07:52:27 utc | jmettraux | if your process definitions are generated via a method call |
| 2010-05-10 07:52:32 utc | jmettraux | ... |
| 2010-05-10 07:53:29 utc | threetee | ah right |
| 2010-05-10 07:53:48 utc | threetee | I remember reading that that was your preferred mechanism |
| 2010-05-10 07:54:00 utc | jmettraux | maybe |
| 2010-05-10 07:54:30 utc | jmettraux | these days I have the process definition stored as a JSON document |
| 2010-05-10 07:54:50 utc | jmettraux | engine.launch(Definitions.find(xxx).definition) |
| 2010-05-10 07:54:56 utc | jmettraux | or something like that |
| 2010-05-10 07:55:14 utc | jmettraux | also possible : |
| 2010-05-10 07:55:19 utc | threetee | I can generate the JSON defs on the fly from my management app |
| 2010-05-10 07:55:44 utc | jmettraux | engine.launch("http://defs.example.com/procurement_process_0.rb") |
| 2010-05-10 07:57:50 utc | jmettraux | so many ways |
| 2010-05-10 07:59:48 utc | threetee | no kidding :) |
| 2010-05-10 11:35:40 utc | kennethkalmer | coffees ? |
| 2010-05-10 11:43:22 utc | jmettraux | hey, please ! |
| 2010-05-10 11:47:38 utc | kennethkalmer | ACTION sends ristretto |
| 2010-05-10 11:47:49 utc | jmettraux | many thanks ! |
| 2010-05-10 12:01:18 utc | kennethkalmer | only a pleasure |
| 2010-05-10 12:01:26 utc | kennethkalmer | so the new guy started today |
| 2010-05-10 12:01:32 utc | kennethkalmer | loving reading up on git |
| 2010-05-10 12:01:36 utc | jmettraux | yet another one ? |
| 2010-05-10 12:01:50 utc | kennethkalmer | well, the previous one didn't manage to pull through |
| 2010-05-10 12:02:10 utc | kennethkalmer | unfortunately |
| 2010-05-10 12:03:02 utc | jmettraux | well, I guess he learnt a lot anyway |
| 2010-05-10 12:03:20 utc | kennethkalmer | hope so ! |
| 2010-05-10 12:03:45 utc | kennethkalmer | he spent two months reading a lot and watching a ton of webcasts, but never took action |
| 2010-05-10 12:03:50 utc | jmettraux | ouch |
| 2010-05-10 12:04:13 utc | kennethkalmer | pitty, new guy is amped and eager so i'm happy |
| 2010-05-10 12:04:20 utc | kennethkalmer | we'll see over the coming days |
| 2010-05-10 12:04:29 utc | jmettraux | I guess you gave him a few goals |
| 2010-05-10 12:06:06 utc | kennethkalmer | indeed |
| 2010-05-10 12:06:20 utc | kennethkalmer | git, base ruby, http, vim |
| 2010-05-10 12:06:29 utc | kennethkalmer | and gave him some sites to go through |
| 2010-05-10 12:06:40 utc | kennethkalmer | he is just consuming info at an amazing rate |
| 2010-05-10 12:06:41 utc | jmettraux | what was he before ? |
| 2010-05-10 12:07:42 utc | jmettraux | oh the sweet rdoc template http://rubyworks.github.com/ansi/rdoc/ |
| 2010-05-10 12:08:49 utc | kennethkalmer | well he worked for another company that did proprietary stuff for the motor industry |
| 2010-05-10 12:08:59 utc | kennethkalmer | they use they're own internally developed cruft |
| 2010-05-10 12:09:02 utc | kennethkalmer | and cvs |
| 2010-05-10 12:09:14 utc | kennethkalmer | that is an awesome template |
| 2010-05-10 12:10:42 utc | jmettraux | oh the pain |
| 2010-05-10 12:10:53 utc | kennethkalmer | indeed |
| 2010-05-10 12:10:57 utc | jmettraux | Eddie is back and wants me to test the tomcat thing |
| 2010-05-10 12:11:23 utc | jmettraux | it's cold cold cold in my swap |
| 2010-05-10 12:11:30 utc | jmettraux | my head |
| 2010-05-10 12:11:36 utc | jmettraux | have to swap from disk |
| 2010-05-10 12:13:11 utc | kennethkalmer | :) |
| 2010-05-10 12:27:44 utc | jmettraux | answered |
| 2010-05-10 13:40:53 utc | kennethkalmer | protip: ensure bundler versions on development and deployment machines match |
| 2010-05-10 13:41:22 utc | jmettraux | ACTION smells something burnt |
| 2010-05-10 13:43:05 utc | kennethkalmer | my brain :) |
| 2010-05-10 14:59:02 utc | threetee | kennethkalmer, you still around? |