20:09:29 <colindixon> #startmeeting better host tracker interns 20:09:29 <odl_meetbot> Meeting started Mon Jul 14 20:09:29 2014 UTC. The chair is colindixon. Information about MeetBot at http://ci.openstack.org/meetbot.html. 20:09:29 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:09:29 <odl_meetbot> The meeting name has been set to 'better_host_tracker_interns' 20:09:33 <colindixon> #topic status update 20:09:49 <colindixon> #info evanz and djx are getting data changes about addresses! woot! 20:09:50 <evanz> we're just talking about what we can do with the data changes now that we're getting them 20:09:58 <colindixon> #topic next steps 20:10:21 <colindixon> so, I was saying that I think the first thing we should do is to just create a new host for every unique Addresses we hear about 20:10:41 <colindixon> just to show that we can publish things 20:10:47 <djx> and put them on a hashmap? 20:11:02 <colindixon> no, no publish them to the MD-SAL 20:11:17 <djx> ah, create them and put them on md-sal 20:11:30 <djx> but we have to same their instance identifier, or isn't necessary? 20:11:45 <djx> s/same/save 20:11:59 <colindixon> #info eventually I think we want to do the following: Addresses (from Address Tracker) => our logic => Hosts in MD-SAL 20:12:19 <colindixon> #info the idea has been that the hostracker_new code (from BSN) would be “our logic” above 20:12:41 <colindixon> #info for now, I’d like to keep things as simple as possible and basically make “our logic” just the minimal transform to directly turn an Addresses into a host 20:12:51 <djx> okay 20:12:57 <djx> sounds perfectly good 20:13:02 <colindixon> so, you make a good point, which is that we need to assign an ID to to the host to create it’s instance identifier 20:13:09 <colindixon> the cool part here is that if we do this 20:13:20 <colindixon> we can hand *something* to the dlux people and it will basically work 20:13:41 <evanz> so as far as ID we have a string now 20:13:46 <evanz> do we still want to do uuid 20:13:54 <evanz> or something simpler 20:13:59 <djx> hmmm can't we change it to macaddress? 20:14:31 <colindixon> we could just make it an AtomicLong or something and increment it and then make it a string 20:15:03 <djx> colindixon but we still have their macaddress, right? 20:15:19 <colindixon> djx: you could make it the MAC address 20:15:21 <colindixon> that would be fine 20:15:23 <djx> I don't if I like a non deterministic way to create uuid 20:15:26 <colindixon> it should be an opaque thing 20:15:57 <djx> but for now it could be the atomiclong 20:16:28 <evanz> sounds good 20:16:29 <colindixon> yeah 20:16:33 <colindixon> it’s irrelevant 20:17:24 <evanz> uh oh 20:18:33 <colindixon> so, my take would be for you guys to create that logic 20:18:41 <colindixon> generate the host ID however you want 20:18:47 <colindixon> as long as it’s unique 20:19:13 <colindixon> evanz: I’ll assume djx can read this stuff when he gets back 20:19:18 <evanz> k 20:19:32 <colindixon> just so you know, you can go to meetings.opendaylight.org and then browse from there 20:19:45 <evanz> I have :) 20:19:54 <evanz> hey btw are you going to be in chicago in august? 20:20:01 <colindixon> evanz: I wish 20:20:10 <colindixon> I have 3 papers there :p 20:20:24 <colindixon> isn’t it september 20:20:27 <colindixon> ? 20:20:29 <colindixon> you mean SIGCOMM? 20:20:33 <evanz> linuxcon 20:20:35 <colindixon> ah 20:20:36 <colindixon> no 20:20:44 <colindixon> we’re expecting a baby 8/15 20:20:51 <evanz> oh congrats :) 20:20:53 <colindixon> so I’m grounded from now until 9/29 when we have OpenDaylight Summit 20:20:54 <colindixon> yah 20:20:56 <colindixon> thanks! 20:21:18 <evanz> well I'm going to be talking about hosttracker stuff at the mini-summit it looks like 20:21:27 <evanz> so if you have ideas for that let me know 20:21:35 <colindixon> #info it seems like the best thing we could do here would be to write some kind of test which injects Addresses on the one side and looks to make sure a matching host comes out on the other site 20:21:41 <colindixon> evanz: sure 20:21:43 <colindixon> I’m happy to help 20:22:12 <colindixon> does thast make sense? ^^ 20:22:27 <evanz> yeah 20:22:33 <colindixon> yeah, 20:22:36 <evanz> so how do I make an address such that it will cause a notification 20:23:11 <colindixon> evanz: that’s a good question :p, I was thinking it’d be easy 20:23:22 <colindixon> maybe the right thing to do is just test with mininet 20:23:33 <evanz> I guess it depends on addresstracker 20:23:33 <colindixon> since constructing all the releavant state is a pain in the ass 20:23:50 <evanz> sure 20:23:52 <colindixon> well, the issue is that Addresses depend on NodeConnectors which depend on Nodes 20:24:10 <colindixon> I mean, you could do it, but it’d be a pain 20:25:03 <colindixon> you’d have to create a Nodes using a NodesBuilder then a FlowCapableNode using a FlowCapableNodeBuilder and then createa an AddressCapabeleNodeConnector, and then …. 20:25:08 <colindixon> it’s just painful 20:25:13 <evanz> yeah I see 20:25:35 <colindixon> #info so, after thinking a bit, it seems easier (for now) to just use mininet to test things 20:25:38 <colindixon> so, yeah 20:25:54 <colindixon> do you know how to publish create the Host and publish it? 20:26:02 <colindixon> or did you want to jump on a hangout? 20:26:37 <evanz> I think I can get myself through using HostBuilder as some of thats already in the code 20:26:42 <colindixon> ok 20:26:43 <evanz> to publish it is it a write transaction? 20:26:47 <colindixon> yeah 20:26:58 <evanz> should be able to do it then 20:27:19 <evanz> so I noticed with the databroker stuff 20:27:43 <colindixon> basically (i) you build a host using a hostbuilder, (ii) you create an instance identifier, and (iii) you create a write transaction and you do a put(iid, host) 20:27:45 <colindixon> yeah? 20:28:02 <evanz> operational and configurational data 20:28:05 <evanz> I think those are the two? 20:28:06 <evanz> something like that 20:28:12 <colindixon> yeah… 20:28:14 <colindixon> *sigh* 20:28:18 <evanz> haha 20:28:20 <colindixon> just pick one 20:28:23 <evanz> got it 20:28:30 <colindixon> you can always change it later 20:28:36 <colindixon> probably, we should use operational 20:28:52 <evanz> cool 20:29:17 <evanz> I didn't know what the intended difference was and it sounds like a pain point so we'll leave it at that :) 20:30:07 <colindixon> evanz: so, it depends on who you ask 20:30:53 <djx> sorry guys, I don't know what happen I had to connect via 3g modem 20:31:04 <djx> colin do you have the meeting notes 20:31:10 <colindixon> yes 20:31:11 <colindixon> hold on 20:31:13 <evanz> ISPs in Portugal are as unfriendly as here it seems 20:31:32 <colindixon> https://meetings.opendaylight.org/opendaylight-intern/2014/better_host_tracker_interns/opendaylight-intern-better_host_tracker_interns.2014-07-14-20.09.log.txt 20:31:41 <colindixon> I haven’t ended the meeting yet 20:31:52 <djx> No, I think the problem is only with this ISP 20:32:05 <djx> we've around 5 ISPs or so 20:32:23 <colindixon> evanz: w.r.t. operational vs. config, the operational is supposed to be data coming from the network that you can read 20:32:45 <colindixon> and the config is supposed to be data coming from the user/app that can be written 20:32:52 <colindixon> so, we should be operational 20:32:56 <evanz> makes sense 20:32:57 <colindixon> that’s my understanding 20:33:30 <colindixon> but others will tell you different things, like tony seems to think that operational should be a strict superset of config 20:33:36 <colindixon> but there’s lots of stuff going on her 20:33:39 <colindixon> here 20:33:46 <colindixon> that are being hashed out 20:34:14 <evanz> cool 20:34:23 <colindixon> #action djx and evanz to get it so that they produce actual hosts in teh MD-SAL with a simple mininet setup 20:34:30 <colindixon> have you guys played with RESTCONF yet? 20:34:35 <colindixon> it’s really nice way to debug things 20:34:59 <colindixon> I think you did because that’s what I was deugging with you guys when you first managed to see Addresses 20:35:25 <evanz> not sure 20:35:39 <djx> ok, I'm updated 20:35:52 <djx> yes I only used RESTCONF to read not write stuff 20:36:07 <evanz> I did check out the restconf url that Amit sent 20:36:14 <evanz> I don't think there was anything on it at the time 20:37:34 <djx> #info we decided to be operational data since it's data that we read from the network, we never write anything on the nodes 20:37:44 <colindixon> read is all you need to do 20:37:50 <colindixon> it’s just helpful for debugging 20:38:57 <djx> btw that colin 8/15 it's a very precise date :) 20:41:38 <djx> am I offline again? 20:41:46 <evanz> djx: no :) 20:45:13 <djx> yeah.. guys? 20:45:27 <djx> isn't there a code that writes hosts on mdsal on our project? 20:45:36 <evanz> djx; let me see 20:45:45 <djx> line 78-93 20:46:08 <djx> MdHostTrackerImpl 20:46:38 <evanz> haha yup I guess so 20:47:27 <evanz> what is hostId in that right now? 20:47:29 <djx> do you have an error on eclipse? 20:47:45 <evanz> nope 20:47:48 <evanz> what is the error? 20:47:50 <djx> on line 80? 20:48:06 <djx> I have a non suitable method found 20:48:15 <djx> but the prject compiles 20:48:33 <evanz> no errors here 20:48:39 <djx> okay 20:48:57 <djx> so we should be able to see our hosts on restconf 20:48:59 <djx> let me test 20:54:23 <colindixon> hey 20:54:25 <colindixon> sorry 20:54:27 <colindixon> I wandered off 20:54:38 <colindixon> djx: we’re having a c-section for a variety of reasons 20:54:44 <colindixon> and so it’s more precise 20:54:53 <colindixon> ok 20:54:58 <colindixon> is there anything else you guys need from me? 20:55:05 <colindixon> or I’ll close out the meeting and check in later on 20:55:12 <colindixon> and assume you’ll ping me if stuff goes sideways 20:55:32 <djx> oh okay, I hope everything goes well 20:56:11 <djx> yes if you could just hold 4 more minutes 20:57:40 <djx> shouldn't we have access to /restconf/operational/opendaylight-inventory:hosts/? 21:01:10 <evanz> djx: might want to put something in onFailure 21:01:15 <djx> colindixon 21:01:17 <evanz> could be something wrong with the transaction 21:01:20 <djx> evanz 21:01:23 <djx> success 21:01:57 <djx> /restconf/operational/host-tracker-service:hosts/ 21:02:17 <evanz> awesome 21:02:19 <djx> { 21:02:20 <djx> hosts: { 21:02:20 <djx> host: [4] 21:02:20 <djx> 0: { 21:02:20 <djx> id: "00:00:00:00:00:02" 21:02:20 <djx> addresses: [1] 21:02:22 <djx> 0: { 21:02:24 <djx> ip: "fe80:0:0:0:200:ff:fe00:2" 21:02:27 <djx> first-seen: 1405119080654 21:02:28 <djx> mac: "00:00:00:00:00:02" 21:02:30 <djx> last-seen: 1405119084374 21:02:34 <djx> }- 21:02:34 <djx> - 21:02:36 <djx> }- 21:02:39 <djx> 1: { 21:02:39 <evanz> perfect 21:02:42 <djx> id: "00:00:00:00:00:01" 21:02:44 <djx> addresses: [1] 21:02:46 <djx> 0: { 21:02:48 <djx> ip: "fe80:0:0:0:200:ff:fe00:1" 21:02:51 <djx> first-seen: 1405119081656 21:02:52 <djx> mac: "00:00:00:00:00:01" 21:02:54 <djx> last-seen: 1405119082260 21:02:58 <djx> }- 21:02:58 <djx> - 21:03:00 <djx> } 21:03:06 <evanz> is hosts an array or an object? 21:03:19 <djx> #info to access hosts inventory is need to go http://127.0.0.1:8080/restconf/operational/host-tracker-service:hosts/ 21:03:22 <djx> array 21:08:38 <evanz> it looks like hosts is an object with a field "host" 21:08:40 <evanz> which is the array 21:08:43 <evanz> in my postman 21:08:45 <colindixon> sweei 21:08:47 <colindixon> is that working hoss? 21:08:53 <evanz> { 21:08:53 <evanz> "hosts": { 21:08:53 <evanz> "host": [ 21:08:53 <evanz> { 21:08:53 <evanz> "id": "be:6c:2a:05:49:e2", 21:08:53 <colindixon> hosts!? 21:08:54 <evanz> "addresses": [ 21:08:56 <evanz> { 21:08:58 <evanz> "first-seen": 1405372017328, 21:09:00 <evanz> "last-seen": 1405372025340, 21:09:02 <evanz> "mac": "be:6c:2a:05:49:e2", 21:09:04 <evanz> "ip": "fe80:0:0:0:bc6c:2aff:fe05:49e2" 21:09:06 <evanz> } 21:09:08 <djx> I have an array 21:09:08 <evanz> ] 21:09:10 <evanz> }, 21:09:12 <evanz> colindixon: indeed 21:09:48 <colindixon> cool! 21:10:00 <colindixon> #chair evanz djx 21:10:00 <odl_meetbot> Current chairs: colindixon djx evanz 21:10:11 <colindixon> you guys can end the meeting whenever you want to with #endmeeting 21:10:25 <djx> we don't need a chair to do that 21:11:02 <djx> colindixon, when it will be the next meeting? 21:11:20 <colindixon> when works for you guys 21:11:24 <colindixon> is friday too long from now? 21:11:47 <djx> This week is the last week for my thesis 21:12:04 <djx> I have to deliver the final version by friday I guess 21:12:17 <djx> so friday it would be perfect to me 21:12:29 <evanz> sounds good to me 21:13:45 <djx> evanz there will be only need a thread for our bundle? 21:14:49 <evanz> djx: you mean the threadpool thing? 21:14:55 <djx> yep 21:14:58 <evanz> I mentioned once that I'm not sure if we need it anymore 21:15:06 <evanz> because the new databroker is asynchronous 21:15:12 <djx> why? 21:15:12 <djx> ah nice 21:15:13 <evanz> so I'm not sure 21:15:24 <djx> but wait 21:15:56 <djx> we still need to be asynchronous because we are processing the onDataChanged method, right? 21:17:03 <evanz> I guess so yeah 21:18:56 <evanz> djx: I'm going to bike home now 21:18:57 <evanz> brb 21:19:20 <djx> good luck I had a flat tire while riding to university 21:27:11 <djx> #endmeeting