Commit Graph

44 Commits (c51b73d8007da00ec13c7f579d3b4ef975aa1c75)

Author SHA1 Message Date
Dag Wieers 5553b20828 Collated PEP8 fixes (#25293)
- Make PEP8 compliant
2017-06-02 12:14:11 +01:00
Nathaniel Case 830f19d444 nxos_bgp updates (#24270)
* Remove invoke from nxos_bgp
* Try to simplify get_existing
* Streamline state_present
* More testing, squash & compact get_value & get_custom_value
* Streamline main
* nxapi has problems reading CustomNetworkConfig directly
2017-05-08 11:38:50 -04:00
Daniel bbb9f3164c Nxos vxlan vtep vni netcfg fix (#23620)
* Code cleanup
Removed 'add' method from CustomNetworkConfig.  It is identical
to the one inherited from NetworkConfig

* Removed unused CustomNetworkConfig import

* Replaced
```
def get_existing(module, args):
    existing = {}
    netcfg = get_config(module)
    config = netcfg.get_section(parents)
```
with
```
netcfg = CustomNetworkConfig(indent=2, contents=get_config(module))
```
get_config returns a string, not an object in 2.3.

* Removed non-functioning get_object method in CustomNetworkConfig in favor of the
inherited method.

Added child_objs property so that expand_selection would work.  The original
verion never worked correctly as it compared NetworkConfig obj's and str's.

* Removed ShellError method in favor or new load_config method.

* Removed ShellError method in favor or new load_config method.
fixes #20260

* nxos requires a "no" statement to change mcase group.  Corrected.
Corrected changed logic.

* Corrected deleted CustomNetworkConfig import
2017-04-17 12:40:13 -04:00
Peter Sprygada 3169cbd493 roll up of fixes for sros modules (#22972)
* fixes action handlers for sros
* fixes sros_config module execution to use AnsibleModule
* fixes sros_command module to use socket connection
* adds sros to constants
2017-03-25 10:35:15 -04:00
Peter Sprygada 21d993a4b8 refactors nxos module to use persistent connections (#21470)
This completes the refactor of the nxos modules to use the persistent
connection.  It also updates all of the nxos modules to use the
new connection module and preserves use of nxapi as well.
2017-02-15 11:43:09 -05:00
Peter Sprygada 47141b8426 fixes minor issue with strict diff of network config (#21436)
strips leading and trailing spaces for line comparision to prevent
fails positiives
2017-02-14 20:12:49 -05:00
Peter Sprygada 8495b6323a fixes minor issue in get_block_config() (#20544)
passed an invalid argument to dumps() to return the config block
2017-01-22 00:47:41 -05:00
Peter Sprygada a3cc24efb2 adds get_block_config() method to NetworkConfig
new method that will return the config block string for the
specified config path
2017-01-11 07:51:00 -05:00
Peter Sprygada 5bbab91452 fixes add() method in netcfg (#20041)
The add() method was not properly setting childen and parents objects
on instances of ConfigLine.  This only applied to the add method.  This
change fixes the problem by adding child and parent to the right
attribute.
2017-01-09 10:01:13 -05:00
Peter Sprygada cba66dfedc update the _ios_template module to use the network_cli plugin (#19933)
* updates the deprecated ios_template module to use network_cli
* adds unit test cases for ios_template
* adds check for provider argument and displays warning message
2017-01-06 20:22:17 -05:00
Peter Sprygada d182b271db updates netcfg and refactors Config class (#19920)
* refactors Config into network module
* fixes minor bugs with netcfg
2017-01-04 23:23:08 -05:00
Peter Sprygada 6b7742fd75 Revert "cleans up the netcfg implementation" (#19917) 2017-01-04 22:55:16 -05:00
Peter Sprygada fdb24bb5d7 cleans up the netcfg implementation (#19847)
* moves parse() into the instance
* removes old Config instance and supporting code
* adds net_common shared module
* minor tweaks to NetworkConfig class for parsing config files
2017-01-04 21:52:25 -05:00
Peter Sprygada 433a0e1e40 allow netcfg to pass kwargs from __call__ to configure() (#17653)
This minor fix allows kwargs to pass from Config __call__ to the underlying
transport instance.
2016-09-19 22:27:31 -04:00
Nathaniel Case 8b3ae1e806 Cleanup netcfg.py (#17531)
Closes #17412
2016-09-13 13:40:32 -04:00
Peter Sprygada e9f804614d removes unneeded message in netcfg
removes old warning message in netcfg that is no longer used
2016-09-11 23:38:44 -04:00
Peter Sprygada 457a6ca03e fixes issue with netcfg not working with match=line and path
The difference() method now checks this condition and doesn't filter
the path when match=line
2016-09-08 15:19:12 -04:00
Peter Sprygada 08eeb1518a adds context to diff functions based on config path
* difference() now accepts a path keyword to specify comparision domain
2016-09-07 19:40:47 -04:00
Nathaniel Case 972dc3fc97 Network module cleanup (#17334)
* Clean up EOS, IOS, IOS-XR, Junos, NX-OS, and OpenSwitch

* Cleanup net* files

* Re-add NetworkModule import to network module_utils files

This will trick modules into importing code from module_utils code, thus
including it in the final Ansiballz zipfile.

* Give asa a look over, too
2016-09-06 13:49:48 -04:00
Peter Sprygada 24e8e3b03f initial add of shared modules for supporting Nokia SROS devices
This adds a cli transport, netcfg, and netcli implementations for working
with devices running Nokia SROS.  There is also an update to netcfg
to support the sros config file format.
2016-08-25 11:47:00 -04:00
Toshio Kuratomi 51ec35378d xrange and izip_longest aren't available in vanilla python3 (#17226)
Fixes for these are either rewriting to get rid of the need for the
functions or using six.moves to get equivalent functions for both
python2 and python3
2016-08-24 12:28:02 -07:00
Peter Sprygada 2a61fa0e79 Merge pull request #17200 from privateip/netcfg
removes invoke method from Config class
2016-08-23 17:08:29 -04:00
Toshio Kuratomi a22909c226 Migrate basestring to a python3 compatible type (#17199) 2016-08-23 13:13:44 -07:00
Peter Sprygada af05a13854 removes invoke method from Config class
this removes the invoke method which was lingering from before
we separated netcfg into its own module
2016-08-23 15:35:01 -04:00
Peter Sprygada 112f14866a pull Config object out of network and into netcfg
This moves the Config class from network and into netcfg module with
no added features.  This is simply a reorganization of code.
2016-08-19 11:15:01 -04:00
Nathaniel Case cada4fb8d1 Relicense netcfg.py to BSD (#17110)
As with #17025. The caveat regarding machilde's (now obsoleted) commit has been addressed, so netcfg.py is able to be easily relicensed.
2016-08-16 16:32:02 -04:00
Peter Sprygada ab3c5a0a17 minor update to the default comment tokens in netcfg
* adds checkout /* and */ as comment delimiters
* now raises exception if invalid output keyword value is used
2016-07-15 16:13:41 -04:00
Peter Sprygada 80ab80b6fd adds additional capabilities to diff of network configs
* diff functions now split out for easier troubleshooting
* added dumps() function to serialize config objects to strings
* difference() can now expand all blocks instead of just singluar blocks
2016-07-09 14:53:39 -04:00
Peter Sprygada 3002965af0 minor bug fixes found in netcfg
* fixes issue with converting config to lines
* fixes issue with returning text config with single line
2016-07-05 20:25:53 -04:00
Peter Sprygada 2866c7a9fb updates netcfg to remove dependency on collections module
This fixes the netcfg shared lib to be compatable with python versions
prior to 2.7.
2016-07-04 22:25:39 -04:00
Peter Sprygada 6b8c24e0f8 bug fix in netcfg replace method to handle whitespace argument 2016-07-04 22:24:02 -04:00
Nathaniel Case 5dccff29bf Network Module: EOS (#16158)
* add new module network

* move EOS to NetworkModule

* shell.py Python 3.x compatibility

* implements the Command class through the connection for eos

This implements a new Command class that specifies the cli command
and output format.  This removes the need to batch commands through
the connection

* initial add of netcmd module
2016-06-20 12:11:48 -04:00
Peter Sprygada d197407306 Merge pull request #15743 from mattchilders/multi-parent-netcfg-difference
Fixed issue with parents havings depth of 3+ on add method of Network…
2016-05-18 09:30:57 -04:00
Peter Sprygada 83d0a15588 bugfix for issue with trying to eval contains with non-string
fixes ansible/ansible-modules-core#3502
2016-05-16 14:54:26 -04:00
machilde 97c6389d62 Fixed issue with parents havings depth of 3+ on add method of NetworkConfig 2016-05-05 00:36:22 -05:00
Peter Sprygada c43ea83275 fixes #15496
changed to using OrderedDict to preserve order of lines
2016-04-27 14:41:00 -04:00
Peter Sprygada 32329b493d adds support for netconf to junos shared module
Netconf support is provided using the junos-eznc library and the shared
module depends on junos-eznc to be installed on the local Ansible host.  This
commit also adds changes to the netcfg library to handle receiving messages
over netconf.

To use netconf, specify transport=netconf for junos module.  Be sure that
netconf has been enabled on the remote device.
2016-04-22 15:28:53 -04:00
Peter Sprygada b97c8ce8e7 bugfix netcfg return config as str
fixes issue where netcfg would return out of order configuration
2016-04-05 22:53:44 -04:00
Toshio Kuratomi 4b0aa1214c Ziploader
* Ziploader proof of concept (jimi-c)

* Cleanups to proof of concept ziploader branch:

* python3 compatible base64 encoding
* zipfile compression (still need to enable toggling this off for
  systems without zlib support in python)
* Allow non-wildcard imports (still need to make this recusrsive so that
  we can have module_utils code that imports other module_utils code.)
* Better tracebacks: module filename is kept and module_utils directory
  is kept so that tracebacks show the real filenames that the errors
  appear in.

* Make sure we import modules that are used into the module_utils files that they are used in.

* Set ansible version in a more pythonic way for ziploader than we were doing in module replacer

* Make it possible to set the module compression as an inventory var

This may be necessary on systems where python has been compiled without
zlib compression.

* Refactoring of module_common code:

* module replacer only replaces values that make sense for that type of
  file (example: don't attempt to replace python imports if we're in
  a powershell module).
* Implement configurable shebang support for ziploader wrapper
* Implement client-side constants (for SELINUX_SPECIAL_FS and SYSLOG)
  via environment variable.
* Remove strip_comments param as we're never going to use it (ruins line
  numbering)

* Don't repeat ourselves about detecting REPLACER

* Add an easy way to debug

* Port test-module to the ziploader-aware modify_module()

* strip comments and blank lines from the wrapper so we send less over the wire.

* Comments cleanup

* Remember to output write the module line itself in powershell modules

* for line in lines strips the newlines so we have to add them back in
2016-04-05 11:06:17 -07:00
Peter Sprygada 4e497b10b0 bugfix in netcfg to handle multilevel commands
this fixes a bug where netcfg would not properly find a statement that was
more than one level deep
2016-04-04 08:11:32 -04:00
Peter Sprygada c0230e6f12 refactors netcfg to pull common functions into shared library
The network config and template modules share a set of common functions that
have been pulled into the netcfg shared module.  This is backwards compatible
with the current implemention in the modules.
2016-04-02 21:48:03 -04:00
Peter Sprygada 5bb876b0e2 fixes issue with getting value with . (dot) in key in netcfg
This commit addresses a problem when attempting to retrieve a value from
the result that includes a dict key using . (dot).
2016-03-23 02:36:48 -04:00
chouseknecht 5a45ca8bb1 Move Conditional class to netcfg. Added error handling for connect and execute methods.
Fix comments
2016-02-11 00:19:25 -05:00
Peter Sprygada 01bf3940e3 adds network config file parser to shared modules
This commit adds a new shared module that parses network device configuration
files.  It is used to build modules that work with the various supported
network device operating systems
2016-01-10 10:47:28 -05:00