16:02:59 <gundalow> #startmeeting Network Working Group 16:02:59 <zodbot> Meeting started Wed Jun 14 16:02:59 2017 UTC. The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:02:59 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:02:59 <zodbot> The meeting name has been set to 'network_working_group' 16:03:13 <gundalow> #cahir funzo trishnag caphrim007 Qalthos rcarrillocruz 16:03:20 <gundalow> #chair funzo trishnag caphrim007 Qalthos rcarrillocruz 16:03:20 <zodbot> Current chairs: Qalthos caphrim007 funzo gundalow rcarrillocruz trishnag 16:03:23 * Qalthos waves 16:03:50 <gundalow> #info Agenda: https://github.com/ansible/community/issues/110#issuecomment-307207911 16:04:10 <gundalow> #topic bigip_* PRs 16:04:14 <caphrim007> i believe i have a number of open prs :-P 16:04:24 <gundalow> #info https://github.com/ansible/community/issues/110#issuecomment-307207911 16:04:32 <gundalow> caphrim007: Just a few, you've been busy 16:04:59 <caphrim007> i panicked when i saw your timeline announcement 16:05:16 <gundalow> Excellent, so it worked :) 16:05:23 <caphrim007> -.- 16:05:54 <gundalow> In previous years we get a mass rush of new modules the week before the deadline 16:05:58 <itdependsnetwork> for those not as familiar, can you provide timeline again? 16:06:04 <gundalow> not just networkin that's across the board 16:06:12 <gundalow> #chair itdependsnetwork 16:06:12 <zodbot> Current chairs: Qalthos caphrim007 funzo gundalow itdependsnetwork rcarrillocruz trishnag 16:06:14 <caphrim007> gundalow: understood 16:06:33 <gundalow> #info 2.4 deadlines https://github.com/ansible/community/issues/110#issuecomment-306850073 16:06:37 <gundalow> itdependsnetwork: https://github.com/ansible/community/issues/110#issuecomment-306850073 16:06:57 <gundalow> mwiebe: Hi :) 16:07:05 <mwiebe> Hi 16:07:50 <akasurde> o/ 16:08:26 <gundalow> #chair mwiebe akasurde 16:08:26 <zodbot> Current chairs: Qalthos akasurde caphrim007 funzo gundalow itdependsnetwork mwiebe rcarrillocruz trishnag 16:08:36 <gundalow> caphrim007: From a few quick look the new modules look OK 16:08:44 <caphrim007> k 16:09:08 <gundalow> in F5: Adds a reconnect method 16:09:15 <gundalow> where does reconnect get called from? 16:09:30 <gundalow> oh, that's in module_utils 16:09:34 <caphrim007> from inside the sdk's management root 16:09:38 <gundalow> cool 16:09:53 <gundalow> merged reconnect 16:09:58 <caphrim007> thx 16:11:32 <gundalow> #action Networking Team to review and merge the remaining bigip_* new module PRs 16:12:10 <gundalow> #topic asa_config #25319 #25680 16:12:24 <gundalow> #link https://github.com/ansible/ansible/pull/25680 https://github.com/ansible/ansible/issues/25319 16:12:39 <gundalow> From ogenstad: 16:12:45 <gundalow> > I've submitted PR #25680 which would solve parts of this. However I think it would be best to have some discussion and a plan for the shared module_utils and perhaps a coordinated effort to try to avoid these types of things in the future. 16:12:51 <gundalow> > The PR won't solve all of the config issues but will make sure the base feature work. It should be cleaned up after the discussion and perhaps changed altogether (so that the module var doesn't have to be passed around everywhere) 16:13:07 <gundalow> trishnag: Qalthos What do you think? 16:14:51 <gundalow> #chair bdlamprecht 16:14:51 <zodbot> Current chairs: Qalthos akasurde bdlamprecht caphrim007 funzo gundalow itdependsnetwork mwiebe rcarrillocruz trishnag 16:15:54 <gundalow> #chair dkasberg 16:15:54 <zodbot> Current chairs: Qalthos akasurde bdlamprecht caphrim007 dkasberg funzo gundalow itdependsnetwork mwiebe rcarrillocruz trishnag 16:16:15 <Yasser> join 16:16:22 <trishnag> gundalow: checking. can we have ogenstad here? 16:17:00 <akasurde> Does anyother module uses shell.py ? 16:17:06 <akasurde> Just asking ... 16:17:07 <gundalow> trishnag: I've pinged him, though I don't think he's online at the moment 16:18:23 <Qalthos> akasurde: cloudengine, f5_cli, openswitch 16:18:45 <trishnag> gundalow: If this solves the issue for now without affecting other modules, then we can have it for now. But I am +1 to have specific things for asa in module_utils/asa perhaps. 16:19:09 <trishnag> I can coordinate with ogenstad tomorrow. 16:19:33 <itdependsnetwork> I think there are some overall concerns about the shared utils, without knowing the full impact 16:19:43 * akasurde thinking about side-effects of shell.py 16:19:53 <Qalthos> It looks like those should be broken anyway... 16:22:00 <caphrim007> f5_cli is not used 16:22:05 <caphrim007> i intend to remove it for 2.4 16:22:31 <Anil_> join 16:23:32 <Qalthos> caphrim007: Ah. I just put what I found in devel 16:23:34 <gundalow> trishnag: He can't join the meeting at the moment, we can maybe follow up later in #ansible-devel 16:23:40 <trishnag> +1 16:23:43 <caphrim007> Qalthos: yep, np 16:24:12 <trishnag> maybe we should have a look at module_utils/network_common 16:24:46 <itdependsnetwork> +1 16:27:02 <gundalow> I need to step out for a bit, can someone please continue the meeting and #topic onto the next item as needed, thanks 16:28:33 <itdependsnetwork> was hoping to get a final vote on: https://github.com/ansible/ansible/pull/23526 16:29:31 <itdependsnetwork> Seems reasonable to me to follow RFC and fix the issue. Backwards functionality is not followed in many many cases, and it does not work as one would expect to begin with. 16:32:44 <itdependsnetwork> for the record, silence counts as affirmation 16:34:45 * bdlamprecht agrees with itdependsnetwork 16:39:20 <gundalow> back 16:39:59 <gundalow> #info Will follow up with ogenstad in #ansible-devel when he's around 16:40:08 <gundalow> #topic Network support for /32 16:40:18 <gundalow> #link https://github.com/ansible/ansible/pull/23526 16:40:35 <gundalow> funzo: ^ 16:40:49 <gundalow> So the question seems to be, do we 16:40:55 <gundalow> A) We are ok with proposal - Please proceed 16:41:01 <gundalow> B) We are not ok with proposal - Please use kwargs for backwards compatibility 16:41:39 <gundalow> [17:32] < itdependsnetwork> for the record, silence counts as affirmation 16:41:42 <gundalow> Nice try :) 16:41:56 <itdependsnetwork> haha, I read it on the internet, must be true :) 16:42:17 <gundalow> oh, on Wikipedia? 16:42:41 <gundalow> My only view on this stuff as 16:42:43 <funzo> the feedback from privateip was it's fine to introduce to make the change but it should be backwards compatible 16:42:51 <gundalow> ah, OK 16:43:16 <itdependsnetwork> no good for me :( 16:43:20 <itdependsnetwork> you can close the PR then 16:43:46 <gundalow> *confused* I though funzo comment was a vote for (A) 16:44:25 <itdependsnetwork> nothing else is kept backwards compatible in the name of forward progress/it was not intended that way 16:44:33 <funzo> perhaps my grammar on the PR was incorrect. I intended to communicate privateip's feedback 16:44:55 <itdependsnetwork> no, it's added complexity for the fringe use case that is not as per RFC 16:45:01 <gundalow> funzo: I'm trying to page back into memory the discussions we had 16:45:27 <gundalow> If the current implementation is obviously broken, does that imply that no one is using it and therefore it's OK to change the functionality? 16:46:09 <itdependsnetwork> I get you have other concerns. I just can't see spending time making it non-RFC compliant by default. would not want my name on that code 16:47:09 <gundalow> Personally I'm OK with fixing something so it's RFC compliant, we just need to know how to document that 16:47:31 <gundalow> Which may be a mix of CHANGELOG.md and the new porting_2.4 guide (yet to be written) 16:49:10 <gundalow> #cahir ogenstad 16:49:12 <ogenstad> Hi 16:49:13 <gundalow> ffs 16:49:16 <gundalow> #chair ogenstad 16:49:16 <zodbot> Current chairs: Qalthos akasurde bdlamprecht caphrim007 dkasberg funzo gundalow itdependsnetwork mwiebe ogenstad rcarrillocruz trishnag 16:49:25 <gundalow> typing is dificult :( 16:50:41 <gundalow> privateip: Hi :) 16:50:46 <privateip> hi all 16:50:50 <gundalow> privateip: We are talking about https://github.com/ansible/ansible/pull/23526 16:50:53 * privateip party crasher 16:50:55 <gundalow> #chair privateip 16:50:55 <zodbot> Current chairs: Qalthos akasurde bdlamprecht caphrim007 dkasberg funzo gundalow itdependsnetwork mwiebe ogenstad privateip rcarrillocruz trishnag 16:51:13 <gundalow> Personally I'm OK with fixing something so it's RFC compliant, we just need to know how to document that 16:51:18 <itdependsnetwork> ain't no party like an ansible-meeting party :) 16:51:19 <gundalow> Which may be a mix of CHANGELOG.md and the new porting_2.4 guide (yet to be written) 16:51:55 * privateip reading 16:52:00 <gundalow> :) 16:52:52 <privateip> so is there a concern about making the requested update? 16:53:02 <privateip> or whats the issue / concern to get this merged? 16:54:21 <itdependsnetwork> from me? 16:54:27 <privateip> is there a concern moving to using kwargs for backwards compat? 16:54:44 <itdependsnetwork> yea, it's added complexity to do something wrong 16:55:02 <privateip> understood but be cannot break backwards compat 16:55:23 <itdependsnetwork> tell that to ogenstad: :) 16:55:39 <privateip> is he here? 16:55:49 <ogenstad> What did I do? :) 16:55:52 <itdependsnetwork> haha 16:55:54 <privateip> lol 16:56:02 <itdependsnetwork> I'm just stirring the pot :) 16:56:04 <ogenstad> Yes I was summoned :) 16:56:11 <akasurde> hehehe 16:56:24 <privateip> trying to understand what is holding up 23526 changes to get merged 16:56:49 <privateip> the current PR will break playbooks 16:57:08 <privateip> we cant do that so i suggested moving the added feature to a kwarg in the filter 16:57:26 <itdependsnetwork> anyway. Like I said before, ansible is a bigproject, but many things have been not backwards compatiable. setup.py, use of nested library, and the answer is always, not intended/or in need of forward progress 16:58:05 <privateip> just because it was wrong before isn't a valid reason to repeat the same 16:58:23 <itdependsnetwork> ok, you win, i'll close the PR 16:58:35 <privateip> its not win or lose ... the PR is valid 16:59:02 <privateip> im trying to understand why using a kwarg seems to be the sticking point here 16:59:30 <itdependsnetwork> I feel like I am going to be rude just re-typing what I have said, and it's not my intention 16:59:47 * privateip is easy going 16:59:53 <itdependsnetwork> lol 17:00:00 <itdependsnetwork> I know 17:00:02 <privateip> its not rude, its opinion which is healthy 17:00:45 <itdependsnetwork> so. Just that it add's complexity, and puts my name on something that is knowingly incorrect. 17:00:46 <bcoca> normally we frown at kwargs as it is a bad pattern, makes it easy to misplace/misinterpet paramters 17:01:04 <bcoca> calling the function x2 in try/except for old/new version is also acceptable 17:01:11 <privateip> bcoca: agreed, but this change to the filter will break existing playbooks 17:01:28 <bcoca> hence my use of 'normally' 17:02:35 <itdependsnetwork> I'm good with it. I have just learned to use custom filters. Trying to give back in a logical way, but I understand the needs of such a large project. 17:03:01 <itdependsnetwork> again, I made my case, and am ok with the outcome 17:03:38 <privateip> so, just to be clear here, you dont want to change it to being kwarg based simply because you dont want your named tagged to it? 17:04:02 <privateip> due to you feel its a wrong implementation? 17:04:05 <itdependsnetwork> @bcoca, would be more interested in that gather_facts.py PR get put in :) 17:04:28 <itdependsnetwork> yes, it's wrong in implementation 17:06:33 <privateip> ok 17:06:36 <itdependsnetwork> and if you look at original issue: https://github.com/ansible/ansible/issues/23517 17:06:47 <itdependsnetwork> going to have this same question 7 times 17:07:21 <bcoca> itdependsnetwork: doesnt look like it will go in anytime soon 17:07:31 <itdependsnetwork> this is not right -> cidr 192.168.0.10/23, how do you make that backwards compatible? 17:07:39 <itdependsnetwork> @bcoca, why? 17:07:50 <bcoca> itdependsnetwork: lack of consensus 17:07:58 <privateip> nobody is questioning the fact that the implementation currently is wrong 17:08:03 <itdependsnetwork> it really causes a lot of headaches for non core modules 17:08:17 <privateip> its about how to move foward without breaking potentially 100s (or more) of existing playbooks 17:08:49 <itdependsnetwork> I would be more interested in leaving them alone and creating new methods that do what they intended to 17:08:50 <bcoca> itdependsnetwork: 'resolution' of that 'bad cidr' can emit a 'warning: this is wrong, doing this instead' 17:08:54 <bcoca> ^ for backwards compat 17:09:04 <bcoca> and havea strict_cidr=no|yes option 17:11:02 <itdependsnetwork> actually that is a bad example :) 17:11:12 <itdependsnetwork> I literally don't know what some of these were intended to do 17:11:44 <itdependsnetwork> well anyway, enough yammering on from me 17:12:28 <itdependsnetwork> I'll spend my time in -devel trying to understand why setup.py was not made backwards compat, 17:14:19 <Qalthos> Okay, moving on then? 17:14:34 <itdependsnetwork> yes 17:15:06 <privateip> wait 17:15:11 <privateip> what are we doing with the PR 17:15:34 <itdependsnetwork> I'll close it 17:16:06 <itdependsnetwork> welcome to modify and move on. But I can't justify spending more time talk about it then I did to create tests 17:17:47 <ogenstad> What's left on the agenda? 17:18:08 <ogenstad> I guess you talked about the ASA issues before I showed up? 17:19:01 <Qalthos> Yes we did, trishnag was hoping to have a conversation about that 17:19:13 <mwiebe> I would like to discuss a list of open issues impacting NX-OS modules. I added the list to the meeting agenda 17:20:04 <ogenstad> Did you start the conversation? 17:20:57 <ogenstad> Or where there any questions? 17:22:27 <ogenstad> As I've written elsewhere I think we really should try to avoid changing the module_utils if modules which are using them are impacted without any tests to see potential errors that are introduced. 17:23:11 <ogenstad> While changing the shell.py one I just wanted to avoid to impact any of the other modules. But I don't think that PR should be merged as it is now. 17:25:42 <Qalthos> My only contribution is that keeping the version of ComplexDict without module seems unnecessary... any code calling that is already broken by virtue of calling ComplexDict incorrectly as you have found 17:25:47 <gundalow> #topic ASA 17:25:47 * bdlamprecht needs to leave, if there is an opportunity to review my issues which I've put on the agenda that would be great. 17:26:34 <ogenstad> @Qalthos, yes I guess that's true. 17:27:22 <ogenstad> Aside from that I don't like the way the module has to be passed around everywhere between functions just to be there to there to be send to ComplexDict. 17:27:54 <ogenstad> A solution would perhaps instead be to store it in a class property? 17:29:17 <privateip> ogenstad: i'm not sure i follow your concern re: passing around arguments? 17:29:20 <ogenstad> The same code from shell.py is also used from cloudengine, f5_cli and openswitch. I don't know how the modules using those work and if there are other modules which fail in the same way as asa_config now does. 17:29:41 <Qalthos> I don't know how useful it is, but https://github.com/ansible/ansible/commit/b0c01bbb820802bca53cd7274ef161ff64335b1f is the change to ComplexDict, which shows how it is used elsewhere 17:31:11 <ogenstad> privateip: Not really a concern, more that the code feels more bloated: https://github.com/ansible/ansible/pull/25680/files 17:32:18 <ogenstad> I.e. a "lot" of different places where the module is just passed around. If it was stored as self.module somewhere we could just access it from where it's needed. 17:33:52 <privateip> sure its dev pref, i get it .... no reason certain modules couldn't be refactored in that structure 17:35:14 <ogenstad> But I'm not sure I should decide which changes make it into module_utils/shell.py as it could also impact other modules. So perhaps it should be a coordinated effort? 17:36:10 <ogenstad> So something like what I submitted could perhaps be merged after removing the code as per Qalthos comments if there's a new release of 2.3 coming out soon. 17:36:58 <ogenstad> Or do you have any thoughts about which way to go? 17:40:31 <gundalow> privateip: Qalthos trishnag I think that's a question for you 17:41:07 <privateip> oops 17:41:51 <privateip> is there already a PR for the proposed changes? 17:42:21 <privateip> i would rather see ASA move towards using persistent connections and away from shell.py 17:42:32 <Qalthos> privateip: https://github.com/ansible/ansible/pull/25680 17:42:37 <privateip> the code base is much more stable 17:42:40 <Qalthos> is what we're talking about 17:42:48 <privateip> ah 17:43:28 * privateip looking 17:43:54 <ogenstad> I can agree that it would make more sense to have it more in line with the other modules and also use persistent connections. I'm also guessing that this is one of the problems now that some parts were changed but then never tested. 17:44:20 <privateip> yeah that could be the case 17:44:37 <ogenstad> And it would really be good if the tests were able to reach a virtual ASA. 17:44:56 <privateip> working on that part ;) 17:45:34 <ogenstad> :) 17:47:00 <privateip> by the time we digest this change we could have the persistent connection work done for asa 17:47:07 <ogenstad> My only comment regarding persistent connections as it relates to the ASA is that the ASA supports multiple contexts and there might be playbooks which use different contexts on different plays. 17:47:17 <privateip> ah 17:47:20 <privateip> good point 17:47:55 <ogenstad> That could be solved with some documentation, but it might also cause some unexpected issues. 17:47:57 <privateip> we could not use persistent and simply use the current connection per task as it is today 17:48:10 <privateip> but drop shell.py in favor of network_cli.py in the connection plugin 17:48:34 <privateip> what triggers the context change 17:48:40 <privateip> ogenstad: ^ 17:48:54 <privateip> is it an arg in the module? 17:49:09 <ogenstad> Yes an arg. 17:50:06 <privateip> ok im going to propose we table this for the moment ... lets look at moving asa to the connection plugin 17:50:15 <privateip> i think you will be much much happier that way 17:50:30 <ogenstad> So the problem might be if someone targets a context and then on the next task the context arg would be left out. With persistent connections changes could be made to the first context. 17:50:49 <privateip> right we can use network_cli without persistent connections 17:51:01 <privateip> so it will operate same as it works today by creating a connection per task 17:51:17 <ogenstad> Ok 17:51:20 <privateip> but instead of shell.py it will use the network_cli connection plugin which is significantly more stable 17:51:43 <privateip> we can then figure out a good long term soluton to the context changes 17:51:56 <privateip> i have some ideas but want to think about them some more and document the thoughts 17:52:10 <ogenstad> Sounds good. 17:52:51 <privateip> Qalthos: go ahead and add an action to me to provide more feedback on this issue 17:52:56 <ogenstad> The context issue should only impact a small portion of the users and could perhaps be avoided if the context arg were to be specified on all tasks. 17:53:33 <Qalthos> #action privateip provide more feedback about moving asa to network_cli 17:53:34 <privateip> yeah with the changes going to into 2.4 we have quite a bit more flexibility to deal with these situations 17:53:45 <Qalthos> #chair privateip 17:53:45 <zodbot> Current chairs: Qalthos akasurde bdlamprecht caphrim007 dkasberg funzo gundalow itdependsnetwork mwiebe ogenstad privateip rcarrillocruz trishnag 17:53:57 <privateip> any chance you are coming to Fest next week ogenstad? 17:54:40 <ogenstad> Would like to but I'm vacationing in Greece with the family. 17:54:48 <privateip> and that is more fun ??? 17:54:49 <privateip> :) 17:55:19 <ogenstad> Well, it will be more fun the week afterwards when I meet the wife again ;) 17:55:25 <privateip> lol 17:56:27 <privateip> ok i think we are good to move on 17:56:27 <ogenstad> I haven't looked at that part of the code though. 17:57:01 <ogenstad> Are there any other modules which use network_cli without persistent connections? 17:57:06 <privateip> no 17:57:14 <privateip> at least not in devel 17:57:52 <gundalow> We good to move on? 17:58:07 <privateip> yep 17:58:13 <gundalow> #topic nxos issues 17:58:24 <gundalow> #link https://github.com/ansible/community/issues/110#issuecomment-308473891 17:58:35 <gundalow> mwiebe: Thanks for the bug reports 17:58:41 <ogenstad> Yeah I'm good. Have to get some dinner now. Bye! 17:58:48 <privateip> thx ogenstad 17:58:56 <ogenstad> thanks 17:58:56 <gundalow> ogenstad: Thanks :) 17:58:59 <mwiebe> gundlow: Sure thing. 17:59:38 <gundalow> Qalthos: This may be one for you 17:59:50 <mwiebe> Just looking for feasibility of getting them resolved before the July 15th deadline. 18:00:13 <Qalthos> mwiebe: So there's a lot here, are there any in particular you want to bring attention to? 18:01:20 <mwiebe> Qualthos: vxlan issues are the highest priority, followed by pim , then acl 18:02:05 <mwiebe> These are all (with the exception of AAA) in the P1 bucket I sent to Qalthos a while back. 18:03:05 <Qalthos> That's what I thought, just wanted to make sure there wasn't anything P0 for you or something 18:03:22 <Qalthos> And again, thank you so much for all these issues 18:04:45 <Qalthos> We'll get through them as quickly as we can, this is probably going to be on my plate, and I'll try to keep you up to date on all these getting through 18:04:52 <mwiebe> Qualthos: NP. If you can give me an idea of how many in this list you can get to before the deadline my team can chip in on others. 18:08:07 <Qalthos> Honestly, the more you can turn into PRs on your own, the quicker this is all going to go through 18:10:22 <mwiebe> Qualthos: We are primarily focused on certifying all of the nxos modules against the various targets (nxos platforms/releases) + beefing up the IT tests. 18:11:27 <mwiebe> We plan to contribute the IT tests via PRs once they are ready so we don't have a lot of resources to fix the modules that are erroring out in advance of the deadline but will as much as possible. 18:11:39 <Qalthos> mwiebe: Yeah, I didn't think it'd be that easy d: 18:11:52 <mwiebe> :) 18:12:19 <gundalow> Qalthos: Nice try :) 18:12:30 <gundalow> Yay for tests though :) 18:16:00 <mwiebe> Qualthos and gundalow: We really need to get the issues fixed ahead of the deadline so let us know which of these you can commit to and we will try and fix the others. 18:16:46 <gundalow> mwiebe: We will discuss that internally and get back to you 18:17:04 <gundalow> Thanks again for raising the issues 18:17:11 <mwiebe> Thanks! 18:17:14 <gundalow> :) 18:17:30 <gundalow> hum, well that's 2h10 of meeting 18:18:01 <gundalow> #action Networking team to work out which issues they can fix and report back to mwiebe 18:18:06 <gundalow> #end meeting 18:18:08 <gundalow> #endmeeting