13:30:34 <regXboi> #startmeeting md-sal-query
13:30:34 <odl_meetbot> Meeting started Thu Aug  7 13:30:34 2014 UTC.  The chair is regXboi. Information about MeetBot at http://ci.openstack.org/meetbot.html.
13:30:34 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
13:30:34 <odl_meetbot> The meeting name has been set to 'md_sal_query'
13:30:41 <regXboi> #chair devinavery
13:30:41 <odl_meetbot> Current chairs: devinavery regXboi
13:31:44 <regXboi> #info devinavery has comments on how to get to a NormalizedNode via DOMDataBroker
13:31:59 <regXboi> #info code pattern follows in text file
13:32:09 <regXboi> YangInstanceIdentifier build = YangInstanceIdentifier.builder( QName.create( new URI( "http://netconfcentral.org/ns/toaster"; ), Date.valueOf( "2009-11-20" ), "toaster" ) ).build();        CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read2 = readTx2.read( LogicalDatastoreType.OPERATIONAL, build );     NormalizedNode<?, ?> normalizedNode = read2.get().get();
13:32:26 <regXboi> note: .builder( is struck out in above
13:32:55 <regXboi> and then wrapping the normalized node within Neel_B's xpath node interfaces
13:32:59 <regXboi> oops
13:33:07 <regXboi> #info and then wrapping the normalized node within Neel_B's xpath node interfaces
13:34:07 <regXboi> devinavery: is that reasonable?
13:34:41 <devinavery> regXboi: Yup. That is what I was envisioning we could do
13:35:01 <devinavery> I haven't played with the NormalizedNode too much, but I would imagine that we could traverse it.
13:35:40 <regXboi> can we simplify by staying with Composite even though its now deprecated?
13:36:57 <devinavery> My line of thought was that we want to avoid as much conversion as possible. We get composite nodes only after converting a read, so I would rather we use NormalizedNode and thus have to convert less etc.
13:37:25 <regXboi> hmm
13:37:56 * regXboi thinks some
13:38:14 <Neel_B> devinavery: regXboi : ReadTx2
13:38:22 <Neel_B> what is it ?
13:38:29 <devinavery> What is your reasoning for wanting to stay with a composite node?
13:38:59 <devinavery> DOMDataReadOnlyTransaction readTx2 = domBroker.newReadOnlyTransaction();
13:41:08 <regXboi> we have code based on CompositeNode
13:41:39 <regXboi> it will likely take a refactoring to use NormalizedNode
13:41:54 <devinavery> Ok. Perhaps I missed that code. Can you point me to it?
13:43:02 * regXboi thinks some more
13:44:40 <regXboi> ok, n/m
13:44:42 * djx is curious about the conversation
13:44:54 <Neel_B> latest code is now updated
13:45:07 <regXboi> I was confusing the j-unit test code with the actual code
13:45:15 <regXboi> what needs to be refactored is the test code
13:45:55 <Neel_B> newReadOnlyTransaction() is not defined for DomDataBroker
13:49:37 <devinavery> Neel_B: Make sure you have the correct data broker imported. I provided the full path in my e-mail
13:50:21 <devinavery> djx: We talking about providing an xpath query interface on top of MD-SAL
13:50:49 <regXboi> #info full path to DomDataBroker is org.opendaylight.controller.md.sal.dom.api.DOMDataBroker
13:52:21 <djx> cool ;-)
13:52:53 <devinavery> regXboi: so the code that depended on the composite node was just the test code? Ok I see that. So I would suggest then that we try to confer to the normalized node
13:54:20 <devinavery> Since we know what methods are required by the xpath interfaces and how they generally interact I would suggest the next steps be for Neel_B to play around with the NormalizedNode class and experiment with accessing the data  etc in similar recursive patterns etc.
13:55:12 <regXboi> devinavery: for the minutes, we should have a link to the normalizednode javadoc
13:55:27 <devinavery> Looking i tup
13:56:45 <regXboi> #info only dependency in project on CompositeNode is unit test code.
13:57:11 <regXboi> #info devinavery suggests to confer to NormalizedNode
13:58:06 <devinavery> ugh. So the normalized node is defined in the YangTools project
13:58:16 <devinavery> which doesn't seem to publish javadoc to the web. :)
13:58:30 <devinavery> The fully qualified class name is: org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode
13:58:34 <regXboi> oh edwarnicke: you reading this?
14:01:19 <regXboi> the jenkins job doesn't spin anything out as a side effect that I can see
14:02:52 <regXboi> what methods of CompositeNode do we use?
14:03:31 <devinavery> From the test it looks like the CompositeNode is passed into a method that converts it into a document.
14:03:44 <devinavery> We don't call anything explicitly on it.
14:03:47 <Neel_B> i got disconnected
14:03:58 <Neel_B> someone post log please
14:04:11 <devinavery> Neel_B - we are still going. Will send the logs when we get there
14:04:32 <Neel_B> i got both composite node and normalized node bith
14:04:47 <regXboi> https://meetings.opendaylight.org/opendaylight-intern/2014/md_sal_query/opendaylight-intern-md_sal_query.2014-08-07-13.30.log.txt
14:05:01 <regXboi> I'm looking at the two classes side by side and we may have some issues
14:05:52 <regXboi> NormalizedNode only has getNodeType, getIdentifier, and getValue
14:06:39 <regXboi> I don't see how that gets me children
14:06:49 <regXboi> but maybe I'm missing it from the parent
14:06:54 <devinavery> Children would be stored under an "identifier"
14:07:33 <devinavery> So the NormalizedNode (in my understanding) is just a map. So a list of children would have an identifier which pointed to the list (I think) and the value would be the list of children.
14:08:36 <devinavery> What I would suggest Neel_B do is 1) create a simple yang file that has some nested values (or modify the toaster.yang to add a child list etc), and then 2) read those values and just printout what the values are in the normalized node.
14:08:52 <regXboi> that works for me
14:09:01 <regXboi> but we should do this again in 24 hours
14:09:01 <devinavery> Hopefully that will clarify for us how we can use NormalizedNode to achieve what we want.
14:09:22 <devinavery> regXboi: Agree - that shouldn't take too long to do. And then we can meet tomorrow and look at the results.
14:10:13 <devinavery> So to summerize:
14:10:29 <Neel_B> okay
14:10:57 <devinavery> #action Neel_B to create a new yang (or modify the toaster) to have a child list (so our tree has some depth).
14:11:25 <regXboi> devinavery - you available at this time tomorrow? (i.e. 9:30 ET)
14:11:31 <devinavery> #action Neel_B to then query that yang using the generic data broker, and iterate the NormalizedNode values to try and figure out how the nodes are nested etc.
14:12:01 <devinavery> regXboi: I am free all morning. So I can make this time (9:30 EST) or I can make 11:30 EST
14:12:37 <regXboi> Neel_B - does this time work for tomorrow?
14:12:45 <devinavery> #action Neel_B should look at NormalizedNode and the values returned, and start to document how we might map the NormalizedNode to the XPath interfaces that we discovered in earlier tests.
14:13:22 <Neel_B> yeah
14:13:35 <Neel_B> 11:30 et also works
14:13:36 <Neel_B> EST*
14:13:44 <regXboi> let's go this slot
14:13:50 <Neel_B> okay :0
14:13:53 <Neel_B> :)
14:13:53 <regXboi> we get to that later slot and I may get pre-empted :)
14:14:10 <devinavery> Sounds good.
14:14:43 <Neel_B> i will ping ifsomething is required or mail ..
14:14:43 <regXboi> #action we'll meet again at the time in the next link
14:14:47 <regXboi> #link http://www.timeanddate.com/worldclock/meetingdetails.html?year=2014&month=8&day=8&hour=13&min=30&sec=0&p1=24&p2=43&p3=505&p4=283&iv=1800
14:15:07 <devinavery> #info We will meet again Friday Aug 8th, 9:30 EST, 8:30 CST,  7P India
14:15:24 <regXboi> any think else?
14:15:32 <devinavery> regXboi: Awesome. Ok Neel. Do you have anything else or is what we are asking clear to you?
14:15:33 <regXboi> er anything else (gack!)
14:15:58 <Neel_B> yes clear
14:16:20 <devinavery> Great. I think we are done for today then.
14:16:26 <regXboi> yes...
14:16:35 <regXboi> #action regXboi to send mail with minutes and next meeting link
14:16:38 <regXboi> #endmeeting