15:01:10 #startmeeting cinder-testing 15:01:11 scottda: I think so. 15:01:11 Meeting started Wed Aug 3 15:01:10 2016 UTC and is due to finish in 60 minutes. The chair is scottda. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:01:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:01:14 hey 15:01:15 The meeting name has been set to 'cinder_testing' 15:01:29 <_alastor_> hey 15:02:30 I'd hoped to go through all the patches listed in the etherpad and update stauts, etc.....I'll do that today 15:03:58 I'll propose patches with fake drivers refactoring to remove duplication, devstack integration later this week 15:04:14 We'd discussed some stuff at the mid-cycle. Notes are here: https://etherpad.openstack.org/p/newton-cinder-midcycle-day2 15:04:24 also, I'm going to install only cinder+keystone for the functional job 15:04:30 e0ne: +1 15:04:39 I'm going to send mail to openstack-dev once pathces will be ready for review 15:05:03 keystone for the functional job? 15:05:27 eharney: TBH, I didn't try to run cinder w/o keystone yet 15:05:46 that doesn't sound like it fits with what we defined functional tests as two weeks ago 15:05:50 eharney: it worked few years ago, but we need to check and fix it if needed 15:06:20 eharney: Right 15:06:29 eharney: I agree that usage of 'noauth' will be better for functional tests 15:07:14 at the midcycle, the agreement was that functional tests will work in an environment identical to unit tests today 15:07:18 noauth is totally broken in cinder 15:07:20 e0ne: Is it much work to test 'noauth' before moving on with this? 15:07:44 scottda: I didn't try to test it yet:( 15:07:48 DuncanT: Well that answers my question... 15:07:55 The easiest way forward with that would be to write a fake keystone middleware that just returns constant values 15:08:06 eharney: My understanding as well. Functional should be extended unit tests. 15:08:30 Functional tests will have a real db, right? 15:08:31 smcginnis, eharney: I propose to do it step-by-step 15:08:33 that was already a departure from the previous definition of functional... now it looks like we're drifting elsewhere 15:08:40 DuncanT: +1 15:09:52 eharney: IMO, it's better to have keystone for the beginning and and functional tests with fake drivers rather than fixing noauth or fake middleware few months more 15:10:47 for it to be "better" i think we need to define what these tests are supposed to do... which we did, i thought 15:11:13 Merged openstack/cinder: Size in tintri driver should be converted to integer https://review.openstack.org/325025 15:11:18 We did. And there is no keystone as part of it. 15:11:42 #link https://github.com/openstack/cinder/blob/master/doc/source/devref/testing.rst#functional-tests 15:11:59 That does need to be updated to be more specific. 15:12:21 smcginnis, eharney: what about rabbitmq? 15:12:29 this is where we came up with the idea of "small-scale integration" which is an environment with Cinder+rabbit+db+Keystone and nothing else 15:12:38 This was said in the meeting (etherpad): 15:12:40 The original idea was to just have, cider, rabbit, and mysql 15:12:42 Anything more than that should go into tempest 15:12:52 geguileo: +1 15:13:02 "original" 15:13:46 I'm ok to add Keytone for a little bit as long as it's clear that it should go away 15:14:03 Although I think it would be better to get it right from the start 15:14:11 i don't think it's clear at all at the moment 15:14:40 xyang1, thanks for the review 15:14:47 No keystone. These should basically just be like unit testing, but the scope is to test more than a "unit". 15:14:52 Swanson: np 15:14:56 IMO if we add it in now it's harder to take out later... And more than likely won't happen 15:15:01 If noone has time for the keystone work ATM, it pushes changes to functional tests out. Maybe no next release? 15:15:02 smcginnis: +1 15:15:06 I would even say no mysql and rabbitmq. Those don't make sense in that context. 15:15:18 smcginnis: right 15:15:32 Next time it will be 2000 1 line patches. 15:15:33 I may be getting a little lost here 15:15:41 Then what are we going to test? 15:15:58 Are we going to fake all DB access and messaging? 15:15:59 scottda: I'll take a look on it 15:16:07 the idea was to have unit tests be unit tests and huge run-through-ten-modules tests be in functional tests 15:16:14 scottda: I mean how to run cinder w/o keystone 15:16:15 Anything outside of Cinder should be mocked. 15:16:28 but they are essentially the same test setup, just with different styles of tests 15:16:28 Just like we do for unit testing - anything outside the unit we are testing should be mocked. 15:16:35 smcginnis: are you talking about unit tests? 15:16:38 Swanson: that will bump yiur stats! 15:16:48 e0ne: Functional testing. 15:16:51 smcginnis: So we won't be testing in functional tests anything that goes from API to Scheduler and then to the volume, right? 15:16:59 geguileo: Correct. 15:17:15 Although it can go from the API level through, but not a running deployment. 15:17:18 smcginnis: :( 15:17:19 Just calling the methods. 15:17:44 smcginnis: it makes functional tests not useful, IMO 15:17:55 e0ne: It makes them extremely useful. 15:17:58 smcginnis: it becases the same as unit + DB 15:18:13 And give us a way to get out of the mess that our current unit tests are. 15:18:26 so i posted a question on the etherpad about this issue as well 15:18:33 Unit tests should actually be unit tests - but right now they are not. 15:18:39 i think having the current (midcycle) functional tests be a separate job is problematic 15:18:56 smcginnis: are yu familiar with Traceback in http://54.209.116.144/19/349019/13/check/kaminario-dsvm-tempest-full-iscsi/f871021/logs/screen-c-vol.txt.gz 15:19:00 The next level up will allow us to test interaction between different modules. 15:19:07 i m getting today 15:19:11 eharney: Yeah, the py3 issue makes sense as a problem/blocker 15:19:16 this in iscsi 15:19:20 job 15:19:29 when running 15:19:31 if we're doing this version of functional tests, they should probably be run in the same jobs that run the unit tests 15:19:40 eharney: I don't think so. 15:20:08 smcginnis: there are at least two downsides to having them in a separate job, i'm not sure what the upsides are 15:20:33 any one familiar with Traceback in http://54.209.116.144/19/349019/13/check/kaminario-dsvm-tempest-full-iscsi/f871021/logs/screen-c-vol.txt.gz 15:20:37 It's a different scope of testing. Unit tests should be our basic level of tests run. 15:21:02 Functional expands on that, but is good to separate so they are not run for basic validation. 15:21:07 sure, but to do this right, we need py27 and py3 functional jobs 15:21:15 That's true. 15:21:32 and i'd like to be able to see coverage stats for both combined, but i guess that can be sorted out in tox.ini somehow outside of how we do jobs 15:21:48 nikeshm: looks like privsep stuff :( 15:22:21 so i guess we'll just make a functional-py3 job then? 15:23:16 I'm afraid to ask, but... 15:23:48 if we are so interested in functional-py3 jib, why nobody don't talk about tempest-py3 job? 15:23:56 e0ne: +1 15:24:05 sounds like a good idea to me 15:24:07 Maybe "integration" testing would be a better name for these. Unit testing for units of code, integration for the interaction between these units, functional then defined as run against a running instance, 15:24:14 jgriffith: any solution to avoid that in our CI 15:24:14 e0ne: DOn't we have that already? 15:24:18 nikeshm: I think the problem is that scsi_transport_fc module is not loaded in the system 15:24:32 smcginnis: maybe in an experimental queue only 15:24:53 smcginnis: i think that's backwards from normal terminology which is part of what jgriffith was trying to fix 15:24:54 integration between modules sounds interesting 15:25:05 geguileo: indeed, but I can't figure out if it failed to load because of privsep error or just wasn't included? 15:25:10 but ingetration between different cinder components should be done too 15:25:13 haypo was talking that py3 tempest is another step in his conversion efforts. 15:25:15 smcginnis, integration tests are for testing against a running instance. 15:25:19 jgriffith: True 15:25:40 Swanson: It seems most folks have different definitions of integration vs testing. 15:25:45 * vs functional. 15:25:50 sigh.. here we go again 15:25:50 I won't hollywar ot bukeshed on what is func. testing 15:25:59 e0ne: +1 15:26:03 e0ne: I agree, but maybe those should be integration tests to differentiate them from functional 15:26:08 I'll propose my patches and send links to the mailing list 15:26:18 But I thought we were being consistent with what other projects were calling the types of testing. 15:26:21 Call it other-testing AFAIAC this is rather silly 15:26:32 well... "Tempest - The OpenStack Integration Test Suite" already exists, so let's not redefine it to something else 15:26:37 jgriffith: +a 15:26:39 smcginnis: yes, that was the whole point and the hour long discussion in Ft Collins 15:26:49 e0ne: jgriffith have we decided on the fake driver name yet 15:26:50 As long as we differentiate the type of testing for one vs the other. 15:26:51 smcginnis: which for some reason we've decided we need to talk about and rhash again 15:27:13 jgriffith: I agree. I thought we had it all set. But apparently not. 15:27:26 eharney: Sure, but it also says: "This is a set of integration tests to be run against a live OpenStack cluster." 15:27:29 the jgriffith memorial test suite. 15:27:32 xyang1, jgriffith: AFAIR, we desided to use FakeLoggingDriver and FakeGateDriver names 15:27:45 geguileo: Stale comments in the etherpad I believe. 15:27:48 e0ne: ok 15:28:01 https://www.youtube.com/channel/UCJ8Koy4gsISMy0qW3CWZmaQ 15:28:14 smcginnis: Not really, it's from here http://docs.openstack.org/developer/tempest/overview.html 15:28:15 e.g. python-heatclient funcitonal tests http://logs.openstack.org/79/345379/12/check/gate-heatclient-dsvm-functional/14d3a7e/ 15:28:19 #link http://logs.openstack.org/79/345379/12/check/gate-heatclient-dsvm-functional/14d3a7e/ 15:28:36 eharney: And we are talking about integration tests where we should be able to have an error generator, right? 15:28:40 smcginnis: How about you post a devref patch that states what you/we think are the definitions, we review and, once merged, we take that as the definitions? 15:28:45 I like how Heat team implemented funcitonal tests 15:28:55 scottda: +1 15:28:56 e0ne: what do those tests do? 15:29:03 geguileo: jgriffith: do we need that module in iscsi driver testing 15:29:14 geguileo: OK, then back to the four levels we defined: unit tests, functional tests, integration tests, tempest. 15:29:23 eharney: they setup minimal devstack with heat components only 15:29:29 scottda: I'll post it, but frankly you were there in the meeting and I specifically asked you if you understood and agreed. You did 15:29:30 smcginnis: I'm fine with that 15:29:40 e0ne: this is what i was proposing as "small scale integration" 15:30:05 eharney: then propose that, don't stop progress on something else that somebody has started (ie e0ne ) 15:30:07 jgriffith: It's not about agreement/disagreement, it's about getting it into the devref so we all know what the defs are. 15:30:15 jgriffith: i'm not stopping progress on anything 15:30:20 scottda: fine, devref patch coming up 15:30:26 eharney: ok 15:30:33 eharney: sorry 15:30:39 according to what we defined at the midcycle, the functional test environment is done and just needs tests, not more components added 15:30:49 eharney: +1 15:31:16 eharney: +1 15:31:18 nikeshm: In the logs I see "Fetching connector for FibreChannelConnector get_connector_properties" before the error 15:31:40 and we will have 10 functional, 3 "small scale integration" tests in the end of O release 15:32:09 scottda: can you clarify what's missing from the devref for me? 15:32:20 I don't want to spray attention on too many of test types 15:32:23 nikeshm: http://54.209.116.144/19/349019/13/check/kaminario-dsvm-tempest-full-iscsi/f871021/logs/screen-c-vol.txt.gz#_2016-08-03_14_49_56_929 15:32:42 https://www.irccloud.com/pastebin/4qBAq2bp/ 15:32:54 scottda: http://docs.openstack.org/developer/cinder/devref/testing.html 15:33:01 Do we agree that functional tests run with a database? 15:33:11 That last section should be removed, IMO. 15:33:14 I thought that was contentious? 15:33:24 smcginnis: Ok, so that needs changing 15:33:27 e0ne: do you have any patch that moves the fake driver? or are we all set using the existing LoggingDriver to write the functional tests? 15:33:27 smcginnis: the non-cinder services part? 15:33:35 And we should add Integration Tests with a description of the "small scale integration" work being done now. 15:33:55 jgriffith: The "database present and may start Cinder services to accept requests" I think. 15:33:58 xyang1: I don't know now 15:34:04 ok 15:34:30 And messageQ will run with "small scale integration", right? 15:35:39 We also have nothing in the devref to differentiate between in-tree tempest and upstream 15:35:59 in-tree tempest vs upstream tempest is not a very interesting distinction IMO 15:36:05 e0ne: ok, I'll start with the existing LoggingDriver and will change if needed 15:36:10 they're tests run in the same environments, it's just where the code lives 15:36:38 eharney: So how to people know where the tests should go? 15:36:47 xyang1: ok. I'll ping you if i have any update on fake frivers 15:36:53 scottda: yeah, true, we do need to document that 15:37:05 e0ne: ok, thanks 15:38:07 I don't recall coming to a decision at the mid-cycle around how to decide in-tree vs. out-of-tree for tempest? 15:38:42 my working assumption is that in-tree is for things that we want to test that is outside of the scope of what tempest wants 15:39:02 (what tempest wants as a project etc) 15:39:07 smcginnis: scottda https://gist.github.com/j-griffith/063574aac688d9a383bf6fe4a50f00c9 15:39:17 eharney: Yes, that seems correct. But I think we need to codify that and put that in the devref. 15:39:18 does that work for the Functional section at least? 15:40:15 jgriffith: Doesn't that mean we need messageQ running ? 15:40:25 jgriffith: I would think even less than that. It wouldn't necessarily be all the way from API to driver. Could just be between two modules. 15:42:42 smcginnis: ok, but just to be clear, there's no mechanism in there right now to fake those sorts of things out 15:43:02 smcginnis: it's indeed "functional" in that it uses a client and send REAL API cmds 15:43:12 s/send/sends/ 15:43:33 jgriffith: I think that's why it needs to state a smaller scope. Just unit test style tests that validate code paths between more than just a unit of code. 15:43:38 jgriffith: +1 15:43:50 They almost fit "integration" testing in my definition more than "functional". 15:44:02 I'm no longer interested in trying to drive this to concensus or to try and *force* my opinion or the methodology used in other OpenStack projects 15:44:05 smcginnis: you've just described most of our "unit 15:44:11 " tests 15:44:16 e0ne: which is why we want to move a lot of unit tests to functional tests 15:44:21 e0ne: Right, which is aproblem. 15:44:36 A lot of our unit tests right now are not unit tests. 15:44:38 jgriffith: +1 :( 15:45:07 rather than bike-shed on this why don't people write/propose tests and see how things go? 15:45:26 jgriffith: +1 15:45:29 Because then we'll keep having this conversation... 15:45:36 jgriffith: I think we need at least a general consensus so it's not chaos. But we can try that. 15:45:40 scottda: not if you don't keep bringing it up 15:45:41 mornin 15:45:49 Why not just draw the lines somewhere, write it down (in the devref) and be done with it. 15:46:03 I did and we've done nothing but argue about it :) 15:46:04 scottda: i think we have a good idea of what to propose in the devref now, seems like a good idea 15:46:19 That's why I said, smcginnis put up a patch with the definitions and be done with it. 15:46:28 jgriffith: I can try proposing something to the devref if you'd prefer. Then we can bikeshed on that. :) 15:46:35 Ok 15:46:42 or jgriffith or whomever. I don't care what the defs are, just define them once and for all 15:46:47 smcginnis: as long as we have something to bikeshed about :) 15:46:51 smcginnis: +1 15:47:09 smcginnis: I'll pass the torch to you, because frankly I can't figure out how to appease all of this 15:47:56 ;0 15:48:58 Walter A. Boring IV (hemna) proposed openstack/cinder: CI: Add CI_WIKI_NAME to all drivers https://review.openstack.org/348002 15:49:00 #action smcginnis Will put up a devref patch with definitions for unit, functional, small scale integrations, in-tree vs. out-of-tree tempest 15:49:00 smcginnis: OK? 15:49:10 scottda: +1 15:50:06 Anyone have anything else today? Or shall be break before the Next Exciting Meeting? 15:50:50 #endmeeting