20:00:01 <nitzmahone> #startmeeting Ansible Windows Working Group
20:00:01 <zodbot> Meeting started Tue Nov 20 20:00:01 2018 UTC.
20:00:01 <zodbot> This meeting is logged and archived in a public location.
20:00:01 <zodbot> The chair is nitzmahone. Information about MeetBot at http://wiki.debian.org/MeetBot.
20:00:01 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
20:00:01 <zodbot> The meeting name has been set to 'ansible_windows_working_group'
20:00:06 <nitzmahone> #chair jborean93
20:00:06 <zodbot> Current chairs: jborean93 nitzmahone
20:00:26 <nitzmahone> #chair jhawkesworth_
20:00:26 <zodbot> Current chairs: jborean93 jhawkesworth_ nitzmahone
20:00:30 <jborean93> yo
20:00:32 <jhawkesworth_> hey
20:01:14 <jhawkesworth_> thanks for the win_say merge
20:01:26 <jborean93> no worries
20:01:38 <it-praktyk> hey
20:02:37 <nitzmahone> Hey all
20:02:43 <nitzmahone> Looks like nothing new on the agenda today
20:02:49 <nitzmahone> #topic open floor
20:03:22 <jborean93> probably quick talk about https://github.com/ansible/ansible/pull/48860
20:03:38 <jhawkesworth_> I wanted to ask about the Dict stuff https://github.com/ansible/ansible/pull/25356 but lets do 48860 first
20:03:52 <jborean93> I need to do some more indepth performance testing with large objects but with a win_ping test I cannot find any performance issues
20:04:10 <jborean93> this makes it a lot more forgiving when trying to serialize PSObjects which are numerous in PowerShell code
20:06:16 <jhawkesworth_> facts is probably the largest results of typically used windows modules I suppose
20:07:42 <jborean93> yea I probably just need to do some testing locally to get some more fine grain timing
20:07:58 <jborean93> I just wanting to see if we are ok with the general approach before I go that path
20:08:27 <jhawkesworth_> in my environment perf testing is basically not possible the variation I get is so huge
20:09:08 <jhawkesworth_> trying to think of another approach...
20:09:53 <jhawkesworth_> could try the c# way and catch the circular refs error and fall back to ConvertTo-Json I suppose.
20:10:39 <jborean93> The newtonsoft stuff (PSCore) doesn't fail it just shows the serialized XML string of the object which another problem
20:10:54 <jhawkesworth_> It kind of hard to work around if you are getting back a psobject that you want to return
20:11:15 <jhawkesworth_> that's not good either
20:11:18 <jborean93> yea IMO PSObjects should be avoided for these cases but that won't stop people from doing it
20:11:59 <jhawkesworth_> they are often huge even without the circular refs
20:12:23 * jborean93 things .NET object serializaiton is fun....
20:13:08 <jhawkesworth_> I guess you could make an option so you could select a serialisation method when you create the $module object
20:13:54 <jhawkesworth_> only worth doing if there's a speed advantage to the c# / newtonsoft ways
20:14:10 <jborean93> that's probably opening too much choice a user won't care about really, they just want their objects serialized
20:14:35 <jhawkesworth_> yeah in which case lets just have lowest common denominator which works in most cases - ConvertTo-Json
20:14:59 <jhawkesworth_> only things I recall it choking on are \ at the end of a string
20:15:01 <jborean93> yep, I only have the old code there so it continues to work when debugging C# code in Visual Studio
20:15:28 <jborean93> Ok, I'll do some more perf testing and if it's the same I'll look to merge
20:15:38 <jhawkesworth_> sounds like a plan to me
20:17:26 <jborean93> cool, onto 25356
20:17:59 <jhawkesworth_> having re-read https://github.com/ansible/ansible/pull/25356#issuecomment-439727572 I see you have answered my question, which which really just about the ordering still not being supported (because the other bits of ansible still won't do it)
20:18:31 <jborean93> yea that's dependent on Ansible supporting that and probably more importantly the `ConvertFrom-Json` cmdlet to preserve the ordering
20:18:54 <jborean93> None of which I think is guaranteed and so we shouldn't rely on that behaviour
20:19:20 <jborean93> In reality, I think win_nssm was the one dependent on the ordering and we have decided to move away from supporting args from a dict
20:19:34 <jhawkesworth_> I think you'd need python 3.7 and yaml odicts before checking all the ansible controller code, let alone passing that to powershell
20:19:55 * jhawkesworth_ trying to remember if there was another one
20:20:04 <jborean93> yea there's too many moving parts and version requirements to make it something we will ensure compatibility
20:20:23 <jhawkesworth_> cool its very much 'advanced use' anyway
20:20:40 <jborean93> yep, pretty much use a list if you want to preserve ordering
20:21:17 <jhawkesworth_> fair enough.
20:21:58 <jborean93> anything else we would like to discuss?
20:22:06 * jborean93 checks PRs
20:22:37 <jborean93> quite side note, I changed `win_credential_manager` to `win_credential` based on dag's feedback https://github.com/ansible/ansible/pull/48840
20:22:42 <jhawkesworth_> nothing else from me this week.  Been migrating my playbooks to 2.7 syntax and had a quick play with pypsrp but not been through my testing yet
20:23:06 <dag> still not used to the meeting starting one hour earlier :-/
20:23:07 <jhawkesworth_> Oh yeah thanks for that, that's going to be great module to have
20:23:17 <jhawkesworth_> hey dag
20:23:44 <jborean93> #chair dag
20:23:44 <zodbot> Current chairs: dag jborean93 jhawkesworth_ nitzmahone
20:24:02 <jborean93> #chair it-praktyk
20:24:02 <zodbot> Current chairs: dag it-praktyk jborean93 jhawkesworth_ nitzmahone
20:25:44 <it-praktyk> https://github.com/ansible/ansible/pull/48828
20:25:48 <dag> jhawkesworth_: starting from Python 3.6 dicts will preserve order by default, so you could rely on that if the Windows support would be offering it too
20:26:06 <it-praktyk> I hope that all requests for change to the code are implemented now
20:26:19 <jborean93> but if a module relies on that behaviour then it would only really work for specific controller Python versions which is not something we should be doing
20:26:33 <nitzmahone> Yeah, the hard part is all the other bits in the middle and the fact that we support < 3.6
20:26:47 <Ghu> in 3.7 it is guaranteed
20:26:50 <Ghu> in 3.6 not really
20:26:53 <jborean93> it-praktyk: I'm planning on having a look sometime today
20:27:03 <dag> Ghu: ah, I thought it was 3.6+
20:27:11 <nitzmahone> So in 2030 when 3.7 is our minimum, we can revisit ;)
20:27:23 * jhawkesworth_ looking forward to being able to move everything to any kind of python 3
20:27:46 <jborean93> same here, py2 can burn in hell
20:27:48 <it-praktyk> I'll implement the same requested to win_psmodule soon
20:28:04 <jhawkesworth_> I think I read it was accidentally the case in py 3.6 but documented as being intentional in 3.7
20:28:05 <dag> well, I discussed using odicts by default in Ansible (and using !odict in YAML) very early in the project ;-)
20:28:48 <dag> jborean93: py2 is still an active component in you're employer's products though ;-)
20:28:57 <dag> s/you're/your/
20:29:04 <nitzmahone> Much to our chagrin
20:29:12 <jborean93> I still work with it, doesn't mean I like it
20:29:15 <dag> hehe
20:29:52 <jhawkesworth_> mercurial not quite ready for py3 other wise I think I could switch now
20:30:28 <jborean93> I find it crazy they still don't support it
20:30:30 <nitzmahone> our employer owns cygwin too, but you know how we feel about that ;)
20:31:00 <jhawkesworth_> probably about the same way as I feel about websphere :-)
20:35:09 <jborean93> ok, any last thing to talk about before bringing this to a close?
20:35:44 <jhawkesworth_> not from me (still catching up with windows PRs atm)
20:36:53 <nitzmahone> Cool, closing in 5...
20:36:59 <nitzmahone> 4...
20:37:04 <nitzmahone> 3...
20:37:06 <nitzmahone> 2...
20:37:09 <nitzmahone> 1...
20:37:14 <nitzmahone> #endmeeting