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