20:00:57 <colindixon> #startmeeting better host tracker interns
20:00:57 <odl_meetbot> Meeting started Mon Aug  4 20:00:57 2014 UTC.  The chair is colindixon. Information about MeetBot at http://ci.openstack.org/meetbot.html.
20:00:57 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
20:00:57 <odl_meetbot> The meeting name has been set to 'better_host_tracker_interns'
20:01:10 <colindixon> #topic status update
20:01:15 * colindixon goes to look
20:03:03 <colindixon> #info Amit sent out an e-mail asking us if this is our final design and asking us to confirm what seems like a correct understanding of our approach
20:04:24 <djx> I think he got it, except the part that is not a single attachment point per host
20:05:02 <colindixon> evanz and djx: it seems like he has it right except we might want to tell him that the attachment points are just a copy of the termination points that will appear in the node it aguments
20:05:33 <colindixon> “Most likely a host would always have  only one attachment point right?” is different from usually
20:05:38 <colindixon> do you want me to d send that?
20:05:41 <colindixon> or one of you?
20:06:20 <evanz> colindixon: I can
20:06:31 <colindixon> and we’re happy with what we have so far?
20:06:38 <evanz> I think so
20:06:44 <djx> evanz please remember him to add meas a member of the l2switch project
20:07:03 <colindixon> I am, I just want to make sure it’s not killing you guys in terms of being awkward
20:07:08 <djx> me too, so the next big step is to develop the ifiphost interface?
20:07:19 <evanz> djx: that's what I was thinking
20:07:33 <colindixon> djx: so, being a committer on l2switch is probably something that they’re going to do with a bit of trepidation and has to be approved by the TSC
20:07:57 <djx> TSC?
20:08:32 <colindixon> #action evanz will respond to Amit saying (i) yes, this is our planned final design, (ii) yes, there will just be extra nodes in the topology that will have host augmentations, and (iii) while most hosts will likely have one attachment point, it is by no means guranteed.
20:08:40 <colindixon> djx: technical steering committee
20:09:04 <colindixon> formal ODL projects have a list of committers and adding new ones has to be voted on my the TSC which meets on Thursdays
20:09:11 <colindixon> typically it’s done after you contribute a bunch of code
20:09:14 <djx> I see that ed is one of them :)
20:09:15 <colindixon> which you’re working on
20:09:19 <colindixon> yes
20:10:32 <djx> the model has to be done today + documentation or the documentation can be changed after today?
20:10:43 <colindixon> docs can be changed
20:11:23 <djx> roger
20:11:41 <colindixon> actually, techically by the rules of API freeze we could add a field to the model
20:11:46 <colindixon> we just change change or remove any
20:12:01 <colindixon> #topic non-model stuff
20:12:14 <colindixon> so, there’s two things here, right?
20:12:21 <colindixon> 1.) IfIptoHost
20:12:22 <colindixon> and
20:12:33 <colindixon> 2.) The actual code the populates the hosts
20:12:52 <djx> you mean hostnode, right?
20:13:01 <colindixon> yeah
20:13:15 <colindixon> so, how are we doning on #2?
20:13:19 <djx> okay, yes. So we should create a new project to deal with IfIPhost?
20:13:22 <colindixon> djx: you were working on that right now?
20:13:29 <colindixon> djx: not new project, but new bundle
20:13:32 <colindixon> that would be my take
20:13:34 <djx> #2 is done, I believe
20:13:46 <djx> only messing the docs
20:13:50 <djx> missing*
20:14:26 <colindixon> #info there’s two things we want to work on beyond the model: (1) providing the legacy APIs, e.g., IfIptoHost and (2) writing the actual code which translates Addresses from the address-tracker to HostNodes in the topology
20:14:33 <colindixon> #info djx says #2 is done
20:15:01 <colindixon> #action colindixon to look over the current Addresses => HostNode code later today
20:15:44 <djx> thank you I was about to asking you that
20:15:44 <colindixon> so, out of curiosity, we do the right thing and create a Node and a HostNode and populate both the Node’s termination points and the HostNode’s attachment points, right?
20:16:08 <djx> ah right that was one of the things I ask you on the email
20:16:19 <evanz> colindixon: the example json is on the wiki page, that might answer your question
20:16:23 <djx> https://wiki.opendaylight.org/view/L2_Switch:HostTracker
20:16:38 * colindixon looks
20:16:39 <evanz> do you mean that there should be a node and a hostnode as two seperate entities?
20:17:27 <colindixon> evanz: no, not in json
20:17:32 <djx> yes, that was one of the things I didn't understood. right now there is a hostnode augment from topology.Node
20:17:50 <evanz> right currently there is only one "put" for the HostNode
20:18:29 <colindixon> so, yeah
20:18:41 <colindixon> you need to also createa  Node using NodeBuilder and put it
20:19:03 <colindixon> how is “node-id” being populated?
20:19:18 * colindixon goes to look at the code
20:19:22 <djx> roger, I wasn't sure about that. evanz then you just need to un-comment every lines from writeHosttoMDSAL method
20:19:50 <colindixon> the other thing is that we should populate the termination points on the Node
20:19:55 <colindixon> and also fill in links I guess
20:20:15 <colindixon> so that people can use them to compute paths on the topology for instance
20:20:25 <djx> hmm that sounds interesting
20:20:40 <evanz> I agree with that
20:20:48 <colindixon> #action djx and/or evanz to enahnce the current code to push a Node (with the right termination points) and approprate links in addition to the HostNode
20:21:35 <colindixon> #info to be clear, the thing you pass to NodeBuilder.setTerminationPoints() shold be *exactly* the same as the thing you pass to HostNodeBuilder.setAttachmentPoints()
20:22:34 <djx> when you mean *exactly* you mean the same ID, right?
20:22:59 <evanz> I will send a follow-up email to the thread that we *will* be putting a Link for the host in the topology
20:23:01 <colindixon> djx: no, I mean, that the… let me look
20:23:07 <colindixon> evanz: thanks!
20:23:28 <djx> colindixon what happens if a hostnode is removed from a node? we need to remove the links from mdsal? is not enough to remove the attachment points?
20:23:58 <evanz> colindixon: that shouldn't require any change to the model right?
20:24:43 <colindixon> evanz: that’s right
20:24:46 <colindixon> none of this changes the model
20:24:54 <colindixon> it’s just changes to our behavior
20:25:10 <colindixon> djx: so, on line 128 of HostTrackerImpl.java
20:25:23 <colindixon> you create List<AttachmentPoints> attachmentPoints
20:25:34 <djx> yep
20:25:46 <colindixon> and then call host.setAttachmentPoints(attachmentPoints) on line 130
20:25:56 <colindixon> what I’m saying is that you could could do this:
20:26:03 <colindixon> NodeBuilder nb = …
20:26:14 <colindixon> nb.setTerminationPoitns(attachmentPoints)
20:26:18 <colindixon> with the same array
20:26:58 <colindixon> #info djx asks what happens when a node (that has the HostNode agumentation) is removed
20:27:10 <djx> wait a second
20:27:17 <colindixon> djx: sure
20:27:19 <djx> when you say NodeBuilder
20:27:25 <djx> you are talking about which one?
20:27:31 <djx> topology or inventory?
20:27:42 <evanz> topology I believe
20:27:54 <evanz> it's not clear to me why you need to put a node and a hostnode
20:27:58 <evanz> maybe colindixon can clarify
20:28:06 <colindixon> topology
20:28:06 <colindixon> yes
20:28:24 <colindixon> I was going to give you the whole pacakge name, but yes, the topology node
20:28:25 <djx> right me neither because the lines that are comment on writetomdsal method are from inventory node
20:28:53 <colindixon> evanz: so you need to create a Node to populate it’s termination points
20:29:04 <colindixon> if you look at the JSON on the wiki page above
20:29:16 <colindixon> you can see that the node doesn’t have any termination points
20:29:49 <colindixon> whereas the nodes corresponding to OpenFlow switches will
20:32:23 <evanz> ok
20:32:33 <colindixon> does that make sense?
20:32:37 <djx> okay, which id should we write to them?
20:32:48 <colindixon> well, we need to come up with one
20:33:03 <colindixon> but it seems like it’s already being populated
20:33:14 <colindixon> or is this JSON not actually generated and just sample
20:33:21 <colindixon> https://wiki.opendaylight.org/view/L2_Switch:HostTracker
20:33:29 <evanz> it is generated
20:33:32 <evanz> I believe
20:33:32 <colindixon> {
20:33:33 <colindixon> "node-id": "host:00:00:00:00:00:01",
20:33:34 <colindixon> "host-tracker-service:id": "00:00:00:00:00:01",
20:33:35 <colindixon> that’s right
20:33:41 <colindixon> which is that we want to have our ID be opaque
20:33:52 <colindixon> and then have the nodeID be host:<ourID>
20:34:10 <colindixon> so, for now, host-node.id = “<MAC>”
20:34:24 <colindixon> and node.node-id = “host:<MAC>”
20:34:44 <djx> okay :
20:34:48 <djx> :-)
20:34:55 <djx> sounds perfect
20:35:12 <colindixon> if you have the InstanceIdentifier (IID) for the HostNode, let’s call it hnIID
20:35:39 <colindixon> then you should be able to get the IID for the Node by doing hnIID.firstInstanceOf(Node.class)
20:35:50 <colindixon> and then you can write there
20:36:32 <djx> I'll take a look right after the meeting
20:37:05 <djx> about this I am clear
20:38:00 <colindixon> so did this at least make sense?
20:38:15 <djx> yep
20:38:41 <djx> what about ifiphost?
20:39:30 <colindixon> #topic IfIptoHost
20:39:46 <djx> how can we create two bundles with one project?
20:40:06 <colindixon> #info my take is that we write a second bundle which implements IfIptoHost independently of our hosttracker
20:40:15 <colindixon> djx: that’s easy
20:40:21 <colindixon> you just make another directory under hosttracker
20:40:26 <colindixon> and then put a pom.xml file there
20:40:34 <djx> lol that is really easy
20:40:45 <colindixon> and add it do the modules in the main hosttracker pom.xml
20:41:01 <colindixon> you can really just copy the HostTrackerConsumer
20:41:15 <evanz> :D
20:42:21 <djx> so, every time somebody uses the newIfIptoHost (we should came up with a new name for this) we will just digest what we saw on MDSal written by hosttracker and perform some magic to give the information asked?
20:42:44 <colindixon> #info to do this, we are going to basically make a copy of the HostTrackerConsumer calling it HostTrackerAdaptor or something
20:43:19 <colindixon> #info whenever anyone calls one of the IfIptoHost methods on it, we’ll try to look up the information they want in the MD-SAL directly
20:43:53 <colindixon> #info we can have some of the methods throw UnsupportedOperationExceptions unti we get them implemented or decide that we won’t support them
20:44:03 <colindixon> djx: exactly
20:44:55 <djx> we will exactly implement the IfIpHost interface?
20:45:00 <colindixon> #info as djx points out, it might be a good time to come up with blank interface called IHostTrackerService or HostTrackerService that extends IfIptoHost so that we arent’ stuck with that horrible name
20:45:05 <colindixon> djx: yeah
20:45:10 <colindixon> that’s the point
20:45:24 <colindixon> so that way old code written to use that interface will still work
20:45:36 <djx> okay
20:46:49 <djx> so, I believe is everything discussed?
20:46:56 <colindixon> yeah
20:47:01 <djx> when should we meet with the other guys?
20:47:07 <colindixon> #topic stretch goals
20:47:30 <colindixon> #info we could actually wire up Addresses to the hosttracker_new code to handle some corner cases (like overlapping address spaces) better
20:47:34 <colindixon> #info but this isn’t needed
20:47:35 <djx> Christopher Price
20:47:36 <evanz> djx: we should shoot an email to those guys looking for a demo
20:47:40 <evanz> yeah
20:47:52 <colindixon> evanz and djx: sure, so that’s up to you guys
20:48:06 <colindixon> whenever you feel ready go ahead and set it up
20:48:12 <colindixon> or you can wait for them to come back to you
20:48:28 <djx> tomorrow or wednesday I believe it is good for me
20:48:28 <colindixon> presumably we want to do a quick demo for the dLux guys too so that this gets into the UI
20:48:41 <colindixon> #topic demos and future meetings
20:49:01 <colindixon> so, evan or djx do you want to set that meeting up or do you want me to?
20:49:29 <djx> it is better to be you since you are the contact point of both entities
20:49:46 <colindixon> #info we should probably give a demo to both the people who already asked (Abhijit and Chris Price) as well as the dLux people
20:49:47 <evanz> either way
20:49:49 <evanz> I can reply
20:50:12 <colindixon> #action colindixon to reach out to Abhijit and Chris Price and propose our normal meeting time if it works for them on Tuesday or Wednesday
20:50:22 <colindixon> #action colindixon to reach out to the dLux people to ask if they want a demo
20:50:47 <colindixon> so, do you guys want to meet on Thursday?
20:50:48 <colindixon> or sooner
20:50:55 <colindixon> I’m always around via e-mail (or try to be)
20:51:05 <djx> Wednesday sounds more doable to me
20:51:17 <colindixon> for our meeting?
20:51:19 <colindixon> or for the demo?
20:51:23 <djx> both?
20:51:34 <djx> meeting thursday then
20:51:41 <djx> and demo wednesday
20:51:52 <djx> I'm talking for me, we need to check with evanz
20:51:58 <colindixon> yeah
20:52:02 <evanz> I'm available
20:52:03 <evanz> all times
20:52:04 <evanz> :)
20:52:07 <colindixon> ok
20:52:11 <colindixon> that makes it easy
20:52:20 <colindixon> I’ll prefer wednesday for things and follow up if we move stuff
20:52:31 <colindixon> anything else I can help with?
20:52:46 <evanz> colindixon: as far as getting djx as committer on l2switch
20:52:46 <colindixon> (and as always, I’m around on IRC and e-mail pretty much constantly)
20:52:50 <evanz> how much would that take?
20:52:58 <colindixon> evanz: that’s up to the current committers
20:53:03 <colindixon> you could ask
20:53:05 <evanz> I am comitter on it and djx has written more code than I
20:53:19 <colindixon> it just takes a majority vote fo the current committers
20:53:33 <colindixon> so if you and Amit say yes, then I think it’s more or less a done deal
20:53:44 <evanz> okay I will send an email
20:53:58 <colindixon> normally, you’d send a mail to l2switch-dev saying “Hey, I think André should be a comitter because he’s…”
20:54:02 <djx> colindion just out of curiosity, why is here so much  formality with a commiter?
20:54:04 <colindixon> and then people will reply
20:54:15 <colindixon> djx: it’s power
20:54:36 <colindixon> “with great power comes great responsiblity” :p
20:54:38 <djx> I know but isn't the code from evanz reviewed by amit for example?
20:54:41 <colindixon> or something like that
20:54:45 <colindixon> no
20:54:49 <colindixon> well, it us
20:54:56 <colindixon> but it evanz could merge it if he wanted to
20:54:58 <colindixon> that’s the point
20:55:10 <colindixon> they want to have at least some vetting of people
20:55:18 <djx> ah I thought it was double checked since I read that history of heartbleed
20:55:33 <colindixon> no, no, there’s no technial reason why evan can’t merge his own code
20:55:51 <colindixon> it’s just a formailty we usually go by
20:56:04 <djx> sure ;)
20:56:31 <colindixon> although technically, I don’t think that l2switch has ever made that official
20:56:45 <colindixon> in controller, the official policy is that you are not allowed to merge your own code
20:56:56 <djx> ah that I understand
20:56:57 <colindixon> anyway
20:57:10 <colindixon> much more about the sausage making than you wanted to hear
20:57:17 <djx> lol
20:57:33 <colindixon> evanz or djx if you want me to help write the e-mail nominating djx or just want me to read it, I’d be happy to
20:58:51 <djx> colindixon one last formality thing, shouldn't we put a header with a license on our code?
20:59:00 <colindixon> yeah
20:59:17 <colindixon> and it should say “André Martin and others”
20:59:26 <colindixon> or Evan Zeller and others
20:59:30 <colindixon> depending on who did it
20:59:36 <djx> which one? EPL?
20:59:42 <colindixon> yes
20:59:45 <colindixon> same as the other files
20:59:47 <colindixon> everything in ODL is EPL
21:00:02 <djx> most of the stuff from openflowplugin has cisco
21:00:07 <colindixon> djx: yeah
21:00:21 <colindixon> that’s because most of the stuff in openflowplugin was written by Cisco employees
21:00:37 <djx> okay
21:01:19 <colindixon> #link https://wiki.opendaylight.org/view/Developer_Best_Practices#New_Files this is the answer to djx’s question about copyright/license headers
21:01:47 <colindixon> ok, I’m going to run
21:01:52 <colindixon> but thanks for all the hard work
21:02:00 <colindixon> this is really shaping into something cool
21:02:02 <colindixon> #endmeeting