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