18:01:34 #startmeeting new-module-review 18:01:34 Meeting started Wed Apr 27 18:01:34 2016 UTC. The chair is gregdek. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:01:34 Useful Commands: #action #agreed #halp #info #idea #link #topic. 18:01:34 The meeting name has been set to 'new-module-review' 18:01:44 #topic roll call 18:01:46 who's around? 18:01:51 * abadger1999 here 18:01:54 here, representing https://github.com/ansible/ansible-modules-extras/pull/1868 18:03:42 Hello 👋 18:03:59 Hi abadger1999 MichaelBaydoun Qalthos thanks for coming :) 18:04:02 Let's jump right in: 18:04:11 #topic https://github.com/ansible/ansible-modules-extras/pull/1868 18:04:14 * privateip here 18:05:22 has 1 shipit, but no other testers have come forward 18:05:25 Looking, looks like we finally got the shipit from gundalow, so that's one. :) 18:05:50 https://github.com/ansible/ansible-modules-extras/pull/1868/files#diff-1297ea3e587fb67488d90791dcb2badeR131 18:05:56 We've had some other commenters too, so I think the sensible thing is to ping them next... 18:06:24 MichaelBaydoun: that exception still needs to be fixed. 18:06:41 The checks for has boto and has boto3 have been added 18:07:42 want me to ping other commentators seeking a second shipit? 18:08:01 MichaelBaydoun: does that mean that, in your opinion, the botocore fix is not necessary / handled properly? 18:08:34 We should have some of those people here too. Yes, feel free to ping them in the PR for more feedback. I think that makes sense. 18:08:36 Yes, it checks for and fails gracefully if botocore is not present 18:08:59 MichaelBaydoun: different line. 18:09:27 MichaelBaydoun: this one is where the module tries to catch boto.exception[...] but we're importing botocore not boto above. 18:10:14 I understood that botocore is how exceptions were caught and handled when using boto3 18:11:06 Sure.... What I'm saying (and I think gundalow too) is that this: except boto.exception.NoAuthHandlerFound, e: 18:11:19 will say that "boto is undefined". 18:12:25 ok, I'll check the except syntax and make sure to use the botocore exception instead, thanks 18:13:18 Looks like that's a simple fix and all that's left, though, and shouldn't prevent getting a second +1 soon (I hope). Pinged wimnat and thaumos in the PR. 18:13:18 Cool. 18:13:27 Will do 18:14:36 OK. Does anyone else want to advocate for any other new module PRs in extras? 18:14:53 (Because if not, I think we'll probably call this meeting early.) 18:15:06 * gundalow waves 18:15:36 Hi gundalow. Thanks for your help on 1868. :) 18:15:44 #topic open floor 18:16:23 #info weekly new module report is undergoing some changes for full automation, will resume next week 18:17:33 if no other topics, will close at :20 18:17:52 gregdek: no problem 18:18:12 not every module submitter is going to show up here. Shouldn't we review other modules, there are like a 100 waiting for review 18:20:33 that's a worthy idea -- if you have some you'd like to review and test, I can code review it as well. 18:21:27 #chair abadger1999 18:21:27 Current chairs: abadger1999 gregdek 18:21:48 #chair MichaelBaydoun 18:21:49 Current chairs: MichaelBaydoun abadger1999 gregdek 18:22:13 I would volunteer to review 1 or 2 modules per week that are for products we use, aws for example 18:22:39 we do normally review all modules, this meeting is more of an attempt to make the cycle 'live' vs the succession of comments/rebases on tickets 18:22:52 ^ and try to push things through faster 18:23:18 Perhaps the right workflow for now is to use this time to agree on the ones that are best candidates for further review, and get commitments for which ones to discuss next time? That probably is no more than 2-3 per session, but then we all know which ones will be selected. 18:23:36 +1 18:23:37 https://github.com/ansible/ansible-modules-extras/pull/1945 Do people think this is sensible for a new module, or is lineinfile OK. 18:23:49 I've got a few things that are close 18:24:18 lineinfile is not ok! but really dont like seeing more of the same, that said, we did leave 'extras' at for the community at large to decide 18:24:22 ^ also ini_file 18:24:49 ^ replace, blockinfile ... 18:25:53 we manipulate .gitconfig as a template, so personally, would not currently have a use for 1945, but others might 18:26:43 One of the many tricky cases where it probably isn't "the right way" but many folks want the freedom to do things "not the right way". :/ 18:26:57 gregdek: gorrdam people! 18:27:02 LOL 18:27:42 what do you mean i cannot bunjie jump with a noose?!?!? 18:27:57 bcoca: sure you can. It's just the 2nd time that's harder 18:28:13 aaaaaaaaanyways 18:28:14 bcoca: piano wire is better! 18:28:16 Re: git configuration, it's even weirder because it's perhaps even questionable why git has this configuration option in the first place as commands when it's really just touching files anyway. :) 18:28:35 But! git provides the option, so I can see why people would want to use ansible to do it. 18:29:05 So the question then becomes "does it pass the current guidelines?" 18:29:32 I think so 18:29:42 checking 18:29:51 version_added needs update 2.2 now 18:30:28 I continue to dream of an automated JIT process for that :) 18:30:33 I don't see anything wrong with the code. 18:30:51 But I think we sort of agree that if that's the only thing wrong, we'll just fix it ourselves, right? (version_added) 18:31:07 gundalow: Not by any means a blocker but thought I'd mention, module.get_bin_path() has a parameter you can set for it to emit a nice error if the command isn't found. 18:31:08 ^ i will fix after merge, i dont hold back PR just for that 18:31:26 abadger1999: oh, cool. I'll add that as a comment. 18:31:35 ^ and yep, no need for him to deal with get_bin error 18:31:53 gundalow: he deals with it right under your comment 18:31:54 Also does it need git squash 18:32:03 not anymore, github does that now 18:32:04 configuring an application instance (a git repo) seems inline with many modules 18:33:17 sadly ... 18:33:22 So does that sound like a shipit then? 18:33:28 i really hate having a module per config file 18:34:35 ^ some style issues with 20 returns, would be easier to just update the return val and fall through to final return 18:34:45 blocker or no? 18:34:49 but nothing that will block this, from my part 18:34:56 though, i wouldn't mind seeing all those flags/options in the main 'git' module (aside fom overwhelming # of options) 18:35:06 pure hatred of the idea is not a blocker for extras 18:35:16 bcoca: :) 18:35:29 Notably: it is a perfect blocker for core :) 18:35:42 +1 shipit. 18:36:05 ok! I'll add the label and the core team can merge at their discretion. Thanks! 18:36:22 Or it can be merged immediately! 18:36:28 I'll do it! 18:36:29 As bcoca just did LOL 18:36:37 okay, we're both too slow 18:36:45 TOO SLOW ALL OF US 18:36:57 bcoca-bot beats us to the punch once again. 18:37:09 gundalow: any others you'd like to recommend? 18:37:28 ah, sorry, went to merge did not see comments here ... 18:37:46 bcoca: we were all just saying "merge it" anyway. 18:37:55 https://github.com/ansible/ansible-modules-extras/pull/1862 I don't know if this adds value or not. Based on the "its' just a wraper round an API" 18:37:57 <= pull the bandaid kind of guy 18:37:59 So thank you bcoca :) 18:38:33 gundalow: that is threshold for core or 'good modules', otherwise the one i just merged would also have been rejected 18:38:39 as thin wrapper on git config 18:38:50 ah. OK 18:39:06 'extras' threshold is 'correct/functioning', usefulness ... 18:39:09 is not 18:39:30 ^ i remember we rejected a javax one ... 18:39:35 but that was before rules change 18:40:21 hmm... okay. 18:40:37 * bcoca will need shower soon 18:40:42 I thought that the git config added more value than this one. 18:41:00 jboss can't do check, it always fires 18:41:18 but if bcoca is okay with it then I suppose I am too... note that that reopens the java one for consideration as well as one that lightly wraps make, etc. 18:41:46 yeah -- this one says doesn't do check mode, isn't idempotent. a very light wrapper around the cli indeed. 18:42:10 * gundalow votes reject jboss for the reasons abadger1999 states above 18:42:38 What do the current guidelines say? :) 18:43:03 Or perhaps we could defer this one if we're not convinced that the current guidelines give us the right answer here. 18:43:18 sure. Lets not waste too much time on it 18:43:19 abadger1999: yes, this seems less value than gitconfig one .. but that is like saying a hairball tastes better than a dustbunny 18:43:36 :) 18:43:39 LOL 18:44:12 ^ already adding a few issues with docs, will comment on 'check mode' 18:44:22 also, this should return stdout/stderr? 18:44:52 ^ really dislike 'command' ... declarative! 18:45:07 command="/subsystem=ejb3/thread-pool=default:write-attribute(name=max-threads,value=3000)" yeah, module might need rewrite before acceptance 18:45:26 gundalow: note -- api I'm okay with as you can't utilize an api via command. cli is differnt. 18:45:39 * bcoca looks if there is any whiskey left before he can continue reading 18:45:59 Currently, we do say "support check more if you can" and "document if it's not idempotent." That's the minimum, and it looks like it fails on both counts currently, right? 18:46:10 ^ agreed with abadger1999, thin api wrappser are bad, thin cli wrappers are worse 18:46:38 would like to see a way to support wrapper/cli/non-idempotent 'ad hoc' modules and playbook style modules 18:46:54 Though thin CLIs are sometimes the best protection for a rapidly moving API. 18:46:55 gregdek: this does not even seem like 'thin', this is 'atom wide sheet' wrapper 18:47:01 what is a module if not an api wrapper or a cli wrapper? 18:47:17 what does that leave as a possibility? 18:47:21 jtanner: I think it's the "thin" issue. How thin is too thin? 18:47:30 okay, I think the written guidelines are silent on cli wrappers being non grata. 18:47:33 what is "thick" for that matter? 18:47:48 Seems like "please at least say whether it's idempotent or not" and "please support check mode" are decent compromises. 18:47:53 "so complicated we don't dare modify" ? 18:47:58 jtanner: Something like the git module is what I'd say is a thick wrapper. 18:48:02 around a cli tool. 18:48:16 It implements checkmode adn idempotence. 18:48:50 -1 18:48:50 there's a lot of logic that is driving functionality that you can't get just from doing "command: git clone repo" 18:48:52 playbook module (check and idempotence) vs ad hoc module (maybe doesn't explode) 18:48:55 k, i would say 90% of the modules could get deleted then if we implemented "checkcommand" as a param for shell+command 18:49:01 added comment about commands 18:49:10 bcoca: what was your -1 for? 18:49:15 jboss 18:49:23 also this jboss_cli module 18:49:27 ah, in its current form. 18:49:33 jtanner: I don't think a module has to be as thick as the git module is to be okay... but I don't know where to draw the line. 18:49:53 because "doesn't support check mode when it easily could" and "doesn't even bother to say it's not idempotent" right? 18:50:16 abadger1999: for now, we have a line, however imperfect. 18:50:41 also the non declarative use of 'command' <= big flag that its a bad module 18:51:41 OK, I need to break for a bit before the next meeting at :00... I think we agree that the jboss_cli module needs more work. 18:51:56 Any we want to tee up for next week, please #info them so I can send out notes for next week. 18:52:06 * gregdek wanders afk 18:52:18 #chair jtanner bcoca 18:52:18 Current chairs: MichaelBaydoun abadger1999 bcoca gregdek jtanner 18:52:30 #chair gundalow alikins 18:52:30 Current chairs: MichaelBaydoun abadger1999 alikins bcoca gregdek gundalow jtanner 18:52:41 that way any of you guys can also do #endmeeting 18:52:59 nod 18:53:16 anyone else got anything they want looking at? 18:54:18 alikins: I think it's okay to have modules that are for orchestration/adhoc -- but the question is what's the value add vs doing it with command: 18:55:33 I think here (and in the java module referenced earlier) the problem was that there didn't seem to be much added value. 18:55:35 tiny bit of abstraction, but granted, not much for that module as is 18:55:57 Here liquidat is saying that it could be useful for keeping default values but we can already do that like this: 18:56:44 jboss_vars: { '--user': 'foo', '--password': 'bar, '--host: 'host1:port1'} 18:57:06 So if this module were to implement check mode and say "NOT IDEMPOTENT" in glowing orange letters, would that be sufficient? Current guidelines say "yes" 18:57:23 then use filters to format jboss_vars 18:57:32 I think that becomes a yes. 18:57:53 because then there's a value add to using it over just the cli. 18:57:56 perhaps worth noting in the pr 18:58:17 re: using filters, that means to strip out scaries, i assume? 18:58:55 note that what most ansible users mean by idempotence is probably necessary to make a worthwhile check-mode 18:59:19 gregdek: to format, really turn the dictionary of defaults into a string. 19:00:05 for that matter, in something this simple, you can just use a string in the playbook. 19:00:31 (java module had many times this number of options so it needed a dict to stay organized) 19:01:20 ok, it's time to flip to our community working group meeting. 19:01:27 #endmeeting