00:00:05 #startmeeting Windows Working Group 00:00:05 Meeting started Tue Apr 11 00:00:05 2017 UTC. The chair is nitzmahone. Information about MeetBot at http://wiki.debian.org/MeetBot. 00:00:05 Useful Commands: #action #agreed #halp #info #idea #link #topic. 00:00:05 The meeting name has been set to 'windows_working_group' 00:00:14 o/ 00:00:24 Howdy! 00:00:43 Morning/Evening all 00:01:02 #info agenda at https://github.com/ansible/community/issues/153 00:01:38 #chair dag jborean93 00:01:38 Current chairs: dag jborean93 nitzmahone 00:03:04 Shall we get started? 00:03:17 yes, 2AM here now thanks to DST :-/ 00:03:48 Y'know, that's why I do the Monday/Friday ones- to make it so one or the other works in your TZ. :) 00:03:59 :-) 00:04:08 dag is just super keen :) 00:04:17 #topic 2.3 Status 00:04:18 I mist last episodes... 00:04:20 We 00:04:41 We're at RC6 for 2.3, *hoping* it's the last one before release (and for once, the RC churn is *not* my fault ;) ) 00:05:17 hehe 00:05:20 Unless anything's majorly on fire, I believe we're cutting 2.3.0 final this week. 00:05:40 sounds good, I know I have some work for my next iteration to add support for 2.3 in our roles 00:05:58 (cleaning up deprecated syntax stuff?) 00:06:24 yep and using new modules and features like the symlink deletion now working in win_file and all the win_service stuff 00:06:46 #topic https://github.com/ansible/community/issues/153#issuecomment-291019646 00:07:26 I have mixed feelings about this one- I'm loathe to impose formatting standards that can't be enforced programmatically (ala pep8). 00:07:43 The existing codebase is kinda all over the place (which I agree is frustrating) 00:08:32 Microsoft's static analyzer for PS is coming along, but I haven't played with it lately. I don't think it has much in the way of syntax enforcement at the moment. 00:08:49 I agree having something that will enforce the formatting is ideal but it doesn't look like that is possible with PS yet 00:08:58 There were a couple of OSS projects that sorta did formatting, but not pep8-style warnings. 00:09:40 ... I really don't want to spend my limited review time being "style police"- would rather focus on the copious backlog and writing new features. :) 00:10:25 That said, I'm also not opposed to setting down some *limited* big-picture style guidelines that can be enforced by the community at-large if enough folks want to do it. 00:11:20 I personally think we should have some sort of standard which can be limited for now 00:11:23 Basically, if I see anything egregious that's against what we've laid down, I might hold a PR for fixes, but it'd mostly be up to self-enforcement (slash "people with too much time on their hands" ;) ) to enforce. 00:12:32 Maybe we should have a look at PSScriptAnalyzer to see what it offers 00:12:45 From time to time I hint to my preferred format if someone is not being consistent ;-) 00:12:50 Last I checked, the syntax enforcement was very limited in that tool 00:13:18 Does anyone want to take a stab at a minimal strawman formatting doc? 00:13:38 Then we can discuss on a PR and/or here later 00:13:45 I trust jborean93's choices :) 00:14:17 thanks dag, I thought you would want to do this. I'll try and take a stab and see what comes out 00:14:22 :) 00:14:35 jborean93: no time :-/ 00:14:37 IMO, brevity is key if we want it enforced by humans. Pick your battles- what are the most egregious things 00:14:47 braces :) 00:14:55 I get confused with the C# style :) 00:14:56 I have my OCD under control these days 00:14:58 :) 00:15:30 #action jborean93 to create strawman PS formatting guidelines 00:16:06 jborean93: when you've got something, feel free to just PR it into the docsite dir (plaintext is fine initially if you don't feel like doing RST) 00:16:29 no worries 00:16:31 We can discuss and markup there, then either do the RST stuff or turn it over to one of our docs folks once everything is settled 00:16:51 Anything else on that? 00:17:32 I'm at peace 00:17:38 #topic https://github.com/ansible/community/issues/153#issuecomment-293093639 00:17:47 "supported" is a loaded word around here. ;) 00:18:06 Sure, but what is WSL other than Linux ? 00:18:11 I've been using WSL for all my dev work and it works a treat 00:18:44 Yeah, I've used it a bit too with no issues. It "works" under cygwin too, but will fall down pretty hard at scale. 00:19:19 We have to thread the needle with "this might work for dev purposes, YMMV, FFS, don't do it in production" or something. 00:19:41 The problems are likely around the network stack and filesystem virtualization. 00:19:45 Yep, even microsoft says WSL shouldn't be used in production and is for dev purposes 00:20:09 We indeed do not have to specifically state it is supported, but we could indicate it is known to work but may have specific issues. 00:20:18 There aren't any special instructions beyond how you'd do it under Ubuntu 16.04, since that's all the supplied WSL image is. 00:20:41 And how to set up WSL is already documented elsewhere (so we link) and the installation is identical to other Linux 00:21:03 So I'd be OK documenting that it works under Win10/WSL "for dev/test purposes only", *not supported*. 00:21:39 ok 00:21:52 I can adapt my WIP documentation 00:21:58 Saying that it's "supported" has all sorts of implications, especially if/when we start selling core support outside Tower subs. 00:22:08 obviously 00:22:19 So we want to avoid that word and its synonyms. :) 00:23:09 The goal should be that people try it out, but also can report specific issues with it 00:23:26 and we get more Windows admins by lowering the bar 00:23:38 There shouldn't be any (at least that are correctable) 00:23:46 *by us 00:24:00 (the current wording is more to scare of anyone trespassing...) 00:24:05 definitely, I've gotten some Windows people converted to Ansible by installing Cygwin locally. Definitely lowered the bar for them to try it out 00:24:07 M$ does not support the subsystem .. not sure we can mark 'supported' on top fo that 00:24:37 bcoca: good point, maybe we should specifically mention Microsoft not supporting it 00:24:44 bcoca: That's why we're avoiding that word and putting plenty of caution tape around it, but no sense in making people come to the ML/IRC over and over to get the same answer. 00:24:57 ^ we can have guides for cyginw/wsl jsut make sure that this is WELL marked as unsupported 00:25:09 yep 00:25:12 +1 00:26:59 #action dag to propose Win10/WSL installation verbiage that avoids "supported" and includes lots of caution tape 00:27:22 We can deal with cygwin later - I haven't tried that since 2.0.x 00:27:41 #topic https://github.com/ansible/community/issues/153#issuecomment-293095963 00:27:43 I think WSL is the easier approach 00:27:56 dag: agreed 00:28:15 "in the box" is pretty compelling (well, except for the Ubuntu image, but still) 00:28:32 CIDR prefix or netmask? 00:28:45 Honestly, this seems like a good case for "do both" 00:29:27 from the vmware_guest discussions, ultimately it was decided to do only one thing, and not complicate matters 00:29:31 Once I have the module_utils loader plugged in for 2.4, "network utils" would be a good classification of stuff that could convert between CIDR/netmask as necessary 00:29:54 for usability, being liberal to what we accept seems best 00:30:00 Problem is, if we do that, we have to have the ability to convert, because not everything does netmask 00:30:18 A lot of newer cloud stuff is CIDR only 00:30:34 * dag prefers CIDR too 00:30:55 I've got a lot of plane travel coming up in the next few weeks 00:31:10 That's easy stuff to hack on a plane w/o internet connectivity 00:31:21 I don't mind to make that the default (e.g. for Windows modules) 00:31:39 the other related question is, parameter naming 00:31:47 we could do much better in that regard :-P 00:31:52 I'd vote for "CIDR unless there's a compelling reason to do otherwise" 00:32:18 Arg naming in general, or on the win_route PR specifically? 00:32:19 fyi, cygwin will have more issues than wsl as the forking/memory management is distinctly diff 00:32:24 ayup 00:32:27 maybe this is something we could do project-wide as well (add to the dev guidelines) 00:32:43 +1 for getting IP 'handling' normalized 00:32:53 nitzmahone: in this case network-related, but the comment was in general 00:32:54 CIDR just sounds like common sense to me 00:33:12 bcoca: I'm guessing you'd vote for CIDR too? Or do you prefer the "take everything and convert as necessary" approach? 00:33:25 ip, ipaddress, destination_ip, destination_ipaddress, or simply destip 00:34:01 nitzmahone: depends, but we should normalize the interface, either take verything everywhere or cidr or etc, but not 1/2 done in some, only cidr in others, etc 00:34:05 I think we've been trying to cut down on abbreviations (eg, "ansible_password" instead of "ansible_ssh_pass") 00:34:37 in this case destination_ip is a bit awkward too, because usually it is a network address 00:35:37 The tricky bit with netmask is that some modules have more than one thing that take it IIRC, so it'd be "subnet" + "subnet_netmask" or something like that. On the Azure modules, I specifically named them subnet_cidr etc so it's clear without docs what we want. 00:36:58 nitzmahone: I am not so concerned unclarity without docs, because people know it's "subnet_cidr" by looking at the documentation 00:37:13 nitzmahone: and the module will complain and explain if the format is incorrect 00:37:55 (especially if we can make CIDR the default format project-wide) 00:38:01 * nitzmahone is used to designing APIs for consumption by things with Intellisense 00:38:11 :-) 00:38:24 * nitzmahone rarely reads docs when working in that env 00:39:38 How about this: anything new needs to support CIDR, netmask is bonus. 00:40:01 we can make an 'type=ip' field 00:40:11 Yeah, that'd be good too. 00:40:15 ^ my only issue there is .. should it always be a 'list of ips'? 00:40:39 hmm, why a list of ips ? 00:40:58 I still haven't played with subspec, but we probably need some better way of handling "list of X" in declarative argspec than we have today 00:41:18 Would subspec handle that cleanly? 00:41:22 pretty much 00:41:24 (if a little verbosely) 00:41:39 aha, that's already possibly in python now ? 00:41:50 bcoca's subspec stuff got merged for 2.4 00:41:51 its in devel 00:42:00 ^ needs testing/usage 00:42:26 I'm going to convert the azure stuff over to use it (eg, azure_rm_virtualmachine/securitygroup) 00:43:05 Have some lingering stuff that I'd like to get done for 2.3.1 though (persist/ANSIBLE_KEEP_REMOTE_FILES/debug support is the biggest) 00:43:30 So no, I don't think type=ip should assume a list 00:43:51 And we probably need more than just ip, like "subnet" 00:44:12 right, for win_route it could be both 00:44:15 and "netmask", if we're doing that (eg, validator does the bit math to limit to valid subnets) 00:44:30 rather than the nasty list hack that's in the win_route PR right now 00:44:33 so I would prefer parameter "subnet" over "destination_ip" 00:45:01 * nitzmahone has only glanced at the win_route PR, if that's what you're talking about 00:45:19 hmm man route calls it target or destination 00:45:45 Yeah, agreed that name could be something better 00:48:01 I like trying to standardize IP handling, less convinced on trying to standardize names across the platform like that (at least not without undertaking an extensive review of the modules that currently do it) 00:48:29 Provide tools to make IP handling easier, then convert existing modules as necessary to use those tools. 00:49:08 s/tools/module_utils 00:49:59 jborean93: did you already do this? https://github.com/ansible/community/issues/153#issuecomment-286400853 00:50:37 It's all a blur- can't remember if I merged something with that already or not 00:51:26 https://github.com/ansible/ansible/pull/23119 00:51:30 yep the PR was raised https://github.com/ansible/ansible/pull/23119 00:51:39 Was awaiting feedback and merge if nothing needed to change 00:51:50 We have about 10 new PRs during the past 14 days 00:51:55 Was quite a big change as well during the Tests 00:52:10 OK cool, I've added myself as a reviewer 00:52:12 (since last meeting actually) 00:52:27 Will zap that agenda item and look it over 00:52:51 There are quite a few older issues we should try and close off if not valid or fix them as well 00:53:33 jborean93: yeah, the issues are expanding a lot faster... 00:53:47 Yeah, I keep planning to do a "lock myself in a room and start at the oldest" pass, but keep getting sidetracked/roped into other thing 00:53:59 There's a lot of noise and bogus stuff back there 00:54:05 (same on pywinrm, actually) 00:54:20 yea pywinrm is building up a lot (my fault there as well) 00:54:41 Maybe we should do a block on all PRs in Ansible when 2.3 is finished and focus on the Issues 00:55:05 I've been meaning to get to the NTLM encryption changes but the Kerberos CBT side has taken a lot of my time 00:55:08 I need to be more ruthless on the "stop asking usage questions in issues" stuff, but pywinrm doesn't have a forum that I can point people at (and I'd say 90% of the users are Ansible folks anyway) 00:56:28 A lot are also older issues that just were never closed 00:56:35 like Domain credential support and the like 00:56:40 Do we want to take any action on the network standardization for now? Or just use that as a direction for the win_route stuff (and future things) 00:57:28 I think we're kinda blocked on module_utils until I get that plugged into devel. I'm doing kerberos encryption stuff first, because $customers will be grouchy if that's not in by 2.4. 00:58:26 Hoping that will be done this week, but I'm spending a little extra time trying to get xplat debugging with VS/gdb working (since that will require new stuff in pykerb) 00:59:08 PS- jborean93: did you see my note about the pykerb vs Apple kerberos thing? I think the pykerberos fork is mostly dead. 00:59:47 That project got forked off because Apple had been ignoring stuff on theirs for a long time, then they came back from the dead and pykerberos kinda seems to have died. 00:59:55 nitzmahone: Yes I did, was wondering if I should just create a PR in the Apple one instead and jsut get requests-kerberos to change across 01:00:10 It's just like NTLM all over again :( 01:00:14 That's kinda where I was leaning as well. :( 01:00:33 I know the requests maintainers though, so that shouldn't be a big deal 01:00:56 (and requests-kerberos auth stuff, same guys) 01:01:13 yep will raise a PR onto the Apple one and hopefully get some feedback there 01:01:17 We should see what else is busted before doing that though 01:01:26 Honestly no idea if I've broken and design changes with my changes but we will see 01:01:31 (eg, locally switch back to "kerberos") 01:01:49 nitzmahone: I will report back to win_route maintainer 01:02:02 If there are other blockers to switching back to Apple kerberos, I want to know that early and get those corrected first 01:02:03 nitzmahone: and will propose something for core meeting 01:02:29 dag: sounds good- I think we have a decent direction overall, but not sure we want to take on more code requirements in general right now 01:03:22 I'll try it out using apple kerberos with the various python versions but unfortunately I probably won't catch them all 01:03:54 jborean93: I'm less worried about that, more so that things like collection-type ccache lookup works (it didn't, at one point) 01:05:07 Also, there's some IOV stuff that's been merged into the fork that isn't in the Apple stuff- I was initially hoping that'd be usable for the message encryption, but alas, it's not. I'll have to do my own simple wrap/unwrap methods for that and expose them via requests-kerb to pywinrm. 01:05:38 I'm honestly not sure what that stuff in the fork is for- I haven't spent the time to track it down yet 01:05:52 I thought it was Python 3 compatibility changes 01:06:05 Hrm, I thought Apple had done that 01:06:07 I remember reading somewhere that the original apple kerberos didn't have that 01:06:14 I think they've since done it 01:06:22 ok 01:06:32 We have other py3 issues that need love anyway (both pywinrm and the winrm CP) 01:06:46 I had it all working at one point, but it's been broken again 01:06:54 I'm hoping the PSRP stuff fixes the WinRM Python 3 issues 01:06:58 noice 01:07:04 #topic open floor 01:07:07 The tests all seem to pass on that version but who knows 01:07:35 We're a little over time, and I've got dinner guests coming soon- anything else pressing? 01:08:32 #action nitzmahone to update agenda with notes from today 01:08:32 nope, have fun entertaining 01:08:38 always good to chat to you all 01:08:41 Closing up in 5 01:08:45 4 01:08:48 3 01:08:51 2 01:08:54 1 01:09:01 Thanks all! 01:09:04 #endmeeting