15:59:37 <Qalthos> #startmeeting Ansible Network Working Group 15:59:37 <zodbot> Meeting started Wed Feb 20 15:59:37 2019 UTC. 15:59:37 <zodbot> This meeting is logged and archived in a public location. 15:59:37 <zodbot> The chair is Qalthos. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:59:37 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 15:59:37 <zodbot> The meeting name has been set to 'ansible_network_working_group' 15:59:54 <Qalthos> #chair ganeshrn ikhan privateip trishnag 15:59:54 <zodbot> Current chairs: Qalthos ganeshrn ikhan privateip trishnag 16:00:01 <Qalthos> #topic Core Updates 16:00:33 <Qalthos> #info ios_bgp work completed (ansible/ansible#49121) 16:00:44 <Qalthos> #info eos_bgp work started 16:00:55 <Qalthos> #info Fail validate_role_spec plugin if argument_spec is undefined (ansible-network/network-engine#221) 16:01:04 <Qalthos> #info Fix relative path failure in command_parser (ansible-network/network-engine#222) 16:01:11 <Qalthos> #info Released network engine 2.7.4 and 2.6.10 16:02:01 <Qalthos> #link https://github.com/ansible/community/labels/network is where the agenda is located, as always 16:02:34 <Qalthos> So on to the first item 16:03:11 <Qalthos> #topic Handling literal SYN and ? 16:03:44 <Qalthos> yaplej: What did you want to discuss? 16:11:08 <Qalthos> Right, we can circle back to that if he comes back 16:11:23 <Qalthos> #topic cnos_lldp 16:11:32 <Anil_Lenovo> Hi 16:11:42 <Anil_Lenovo> cnos_lldp programmer is here 16:12:23 <Qalthos> Anil_Lenovo: I don't know how consistent I've been with this in the past, but as a new module, we are unlikely to accept deprecated options in a brand-new module 16:12:30 <Qalthos> (specifically provider) 16:13:20 <Anil_Lenovo> I will remove them, 16:13:31 <Anil_Lenovo> what about connection=local ? 16:15:57 <Qalthos> local still works with ansible_user and ansible_password 16:16:33 <Qalthos> Though we are at the point of heavily discouraging its use, especially with new modules 16:16:47 <Anil_Lenovo> ok 16:18:06 <Qalthos> Other than that, there's not a whole lot to the module, so it seems fine 16:18:06 <Anil_Lenovo> You may put the review comment to remove the provider. Can u point to me module without provider ? 16:18:27 <Anil_Lenovo> great 16:19:09 <Qalthos> Anil_Lenovo: https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/network/edgeos/edgeos_command.py is the first one I can think of 16:19:23 <Anil_Lenovo> sure.. I will look into that 16:20:10 <Anil_Lenovo> I was trying to mimic IOS, hence this issue happend 16:21:29 <Qalthos> You should be able to just remove provider form DOCUMENTATION and remove the reference to cnos_argument_spec in main() 16:21:46 <Qalthos> (and then clean up the tests to match) 16:22:11 <Qalthos> I'll make a review, too 16:22:18 <Anil_Lenovo> sure. Thanks got it 16:22:44 <Qalthos> #action Qalthos review ansible/ansible#52568 16:23:08 <Qalthos> #topic Open Floor 16:23:25 <Qalthos> Anyone with anything else to talk about? 16:23:31 <Qalthos> yaplej: ? 16:28:44 <yaplej> Qalthos: Sorry. 16:29:19 <Qalthos> yaplej: You have two items on the agenda, which do you want to talk aobut first? 16:30:39 <yaplej> The literal SYN used in an ios_config or any Cisco config line. The IOS output represents that as two characters ^V instead of a single char so the play is not idempotent. 16:31:24 <Qalthos> #topic Handle literal SYN and ? 16:34:33 <Qalthos> So, for my understanding, does IOS output the ^V character, or is this something ansible is adding due to bytes decoding or something 16:35:21 <Qalthos> (or am I completely misunderstanding?) 16:36:53 <yaplej> IOS output shows a literal SYN as a string "^V". As far as I know there is not way to represent a literal SYN in ios_config line. 16:37:30 <yaplej> I used hex values for SYN and ? and that worked for input but it does not work for diff correctly. I think there should be some type of token to represent those special chars. 16:41:21 <yaplej> Perhaps its just the diff module needs to recognize ^V output from IOS as a SYN or the HEX value of it? 16:43:30 <Qalthos> So do both SYN and ? come back as "^V", or is there a way to differentiate them from the config IOS returns? 16:44:42 <yaplej> No only SYN comes back as ^V. The ? had to be escaped because its the help menu. 16:45:34 <Qalthos> Okay, so ? isn't an issue anymore? 16:45:40 <yaplej> Using hex value for "?" worked for input. I think its only the SYN/^V issue that might be triggering the line difference. 16:47:09 <yaplej> Im not sure on that. Putting "?" in the ios_config lines does not work. Thats why I resorted to using the hex. Both might need special treatment for input and diff processing. 16:48:06 <Qalthos> Right, because SYN is 0x16, so would be textified as "^V" 16:48:08 <Qalthos> Okay 16:50:54 <Qalthos> We could probably translate non-printing characters into whatever they come back as for the purposes of diff without changing the input actually sent to the device 16:53:05 <Qalthos> I see ganeshrn is assigned, I'll see if I can work with him to figure out where this goes from here 16:53:29 <Qalthos> #action Qalthos ping ganeshrn about handling control chars in ios_config diff 16:53:39 <yaplej> Thanks. I was not sure where to even begin. That seems like a good idea. 16:55:22 <Qalthos> #topic #macro keywords in ios_config 16:58:30 <Qalthos> Last I knew, the plan regarding #macro was to error out if we saw it (https://github.com/ansible/ansible/issues/38591) 16:59:15 <Qalthos> That issue mentions a workaround in https://github.com/ansible/ansible/issues/38420, but I'm not immediately aware of what that was 17:00:36 <yaplej> I actually submitted a patch that allows the command 'macro name' to be executed like a banner. 17:00:46 <yaplej> the 'macro name' command has a sub-command "#macro keywords" with a fixed DEFAULT_COMMENT_TOKENS that command gets ignored. 17:01:56 <yaplej> Seems like DEFAULT_COMMENT_TOKENS should have a method to overwrite/append/remove tokens in specific cases. 17:05:31 <Qalthos> So DEFAULT_COMMENT_TOKENS is, as expected, just a default. I don't know that we override it anywhere presently, but the parse() method takes other comment tokens as a parameter, so it should be fairly straightforward to override it programmatically 17:08:41 <Qalthos> #action Qalthos look into NetworkConfig comment_tokens 17:08:50 <Qalthos> I'll let you know what I find 17:10:01 <Qalthos> We're already a bit over, so I'm just going to close the meeting. Thanks for dropping by! 17:10:07 <yaplej> Thanks. 17:10:07 <Qalthos> #endmeeting