Permalink
Commits on Mar 8, 2017
Commits on Dec 15, 2016
Commits on Dec 13, 2016
  1. Fixed a bug in Cumulus Linux prompt patterns.

    - Also disabled execution of `sudo vtysh` by default on Cumulus. It
      will now be left up to operators to do this for themselves.
    - Updated the changelog to include a mention of the new support for
      Cumulus Linux.
    jathanism committed Dec 13, 2016
Commits on Dec 1, 2016
Commits on Oct 10, 2016
  1. Updated XMLRPC service to work w/ Twisted 16.4.0+ and SSH bugfix. (#303)

    - XMLRPC service includes new options for generation and storage of the
      SSH host key for the SSH manhole
    - Bugfix in `trigger.twister` preventing SSH connections to devices
      running Cisco Nexus with FIPS mode disabled. This also addresses the
      case in which a device sends any other text prior to sending the
      SSH version banner.
    - Enhancement to `trigger.utils.network.test_ssh` to support extra SSH
      banners in the event that a Cisco Nexus w/ FIPS mode disabled is
      encountered that would otherwise cause an SSH connection test to fail.
    jathanism committed on GitHub Oct 10, 2016
Commits on Sep 28, 2016
  1. NetDevices loader plugins can now customize behavior of NetDevices me…

    …thods. (#301)
    
    - A new `NetDevices.add_device()` method has been added to provide a
      cleaner interface to adding new NetDevice objects to a NetDevices
      instance.
    - A new `NetDevices.reload()` method has been added to quickly and
      easily reset the state of a NetDevices instance.
    - The `BaseLoader` plugin instance is now stored on the NetDevices
      instance so that it can provide the overloaded behaviors.
    - `NetDevices.set_loader()` is used to attach the BaseLoader object
    - On population, if an incoming object is already a NetDevice, the
      processing phase is skipped (implying that because you passed in a
      NetDevice you're declaring the object's state).
    - The following `NetDevices` methods can now be customized by
      `BaseLoader` plugins:
      - `NetDevices.find()` to customize single device lookup
      - `NetDevices.match()` to customize keyword-argument lookup of devices
        - If `skip_loader=True` is passed, the built-in method will be
          called instead.
      - `NetDevices.all()` to customize retrieval of all device objects
      - `NetDevices._dict` to deeply customize the behavior of how NetDevice
        objects are stored internally.
    
    Not included (yet):
    
    - Unit tests for pluggable behavior.
    - Documentation
    jathanism committed with tcuthbert Sep 28, 2016
Commits on Sep 21, 2016
  1. Bugfix in trigger.twister2 causing default credentials to not be used. (

    #300)
    
    - Bugfix in NetDevice.connected never returning the correct connection
      status when using the twister2 .open() and .close() methods.
    - Bumped requirements to allow any version of Twisted 16.x
    jathanism committed on GitHub Sep 21, 2016
Commits on Sep 20, 2016
  1. Enhancements/bug fixes to implement support for Cumulus Linux (#299)

    - Implemented initial support for devices running Cumulus Linux with a
      few caveats:
      1. It is expected that the user logs into a bash shell
      2. `sudo vtysh` is immediately executed
      3. The driver is categorized as IOS-like to facilitate ease of
         interaction with the `vtysh` session.
    - Added a device identity check for Cumulus:
      `trigger.netdevices.NetDevice.is_cumulus()`
    - Fixed a bug in which `trigger.cmds.Commando` instances would never
      stop running because of changes made to support persistent channels
      using crochet.
    - Added a `stop_reactor` argument that defaults to `True` to
      `trigger.cmds.Commando` so that it will stop the reactory loop by
      default. Setting `stop_reactor=False` will make `Commando` instances
      now behave like `ReactorlessCommando` instances.
    - Fixed a bug in which enable prompt would sometimes be erroneously
      detected on Cumulus devices in `vtysh` output because of lines ending
      in ">\n".
    - Moved startup command definitions into a new setting called
      `settings.STARTUP_COMMANDS_MAP`. This is not quite complete but is an
      interim step to moving hard-coded device identification logic out of
      `trigger.netdevices` and into drivers.
      - Vendor platforms with differing startup commands based on their
        device type are now mapped with an underscore separation (e.g.
        'Cisco ASA' becomes 'cisco_asa').
    - Added "Celestica" as a known white-label vendor for the purpose of
      mapping to the vendor "cumulus" for driver selection.
    - The setting SUPPORTED_VENDORS is now derived from SUPPORTED_PLATFORMS
      as a step to unify the two settings. This is because platforms (dict)
      has the same keys as vendors (list).
    jathanism committed with tcuthbert Sep 20, 2016
Commits on Apr 28, 2016
Commits on Apr 24, 2016
  1. Updated usage examples.

    jathanism committed Apr 24, 2016
Commits on Apr 23, 2016
  1. NetDevice.adminStatus now defaults to PRODUCTION (#288)

    - New setting: DEFAULT_ADMIN_STATUS which defaults to "PRODUCTION"
    - All new NetDevice objects will receive adminStatus="PRODUCTION" if the
      field is not provided
    - Clarified documentation for minium required fields to include
      adminStatus.
    - Added a section to NetDevices guide about additional fields (make,
      model) required to support certain platforms, such as the Cisco Nexus.
    - Removed deprecated documentation for NETDEVICES_FILE and NETDEVICES_FORMAT
      (these were deprecated in Trigger 1.3)
    - Moved the sample configs from `conf` at the project root to `configs`
      and retconned all the documentation to reference it.
    jathanism committed Apr 23, 2016
Commits on Apr 21, 2016
  1. A couple bug fixes for trigger.cmds.NetACLInfo used by gnng

    - Fixed a typo in Arista command used for retrieving access-list names
      on interfaces.
    - Update the IOS-like interface parser to support `ip address
      negotiated`
    - Also fixed a typo in development docs.
    jathanism committed Apr 21, 2016
Commits on Apr 20, 2016
Commits on Apr 19, 2016
  1. Fix unit tests for Trigger 1.6pre w/ ACLS disabled by default

    - Also include new docs I forgot to commit.
    jathanism committed Apr 19, 2016
  2. ACL support is now globally disabled by default.

    - Overhauled the layout of the documentation to be more organized
    - Updated places where ACL support is required to callout that WITH_ACLS
      defaults to False now and also that Redis is required.
    jathanism committed Apr 19, 2016
Commits on Apr 18, 2016
  1. Release 1.5.10 (#281)

    Bug Fixes
    ---------
    
    - Extended prompt detection for IOS-like devices to include interstitial
      space (`\s`) or carriage return (`\r`) characters which is sometimes
      seen on Arista EOS devices, and would cause asynchronous execution to
      sometimes hang and result in a `~trigger.exceptions.CommandTimeout`
      error.
    - Bugfix in `bin/load_acl` that prevents `queue.complete()` from being
      called when using the `--no-db` flag.  Previously, an `AttributeError`
      attribute error was raised due to attempting to call `complete` on
      `queue`, which is set to `None` when passing `--no-db`.
    - Cleaned up network.utils.ping, removed hostname validation code
    - Bugfix in `~trigger.utils.network.ping()` where a file descriptor
      wasn't closed cleanly.
    - Bugfix in `bin/gnng` that printed device names before any tables,
      resulting in potentially confusing results.  Devices names are now
      printed with the corresponding table.
    - Bugfix in `bin/gnng` that allows the `--filter-on-type` to function as
      expected.
    - Update documentation of `gnng`'s `-N`/`--nonprod` flag.
    - Bugfix in `bin/gnng` that allows `gnng` to fail gracefully when a
      device isn't found.
    - Bugfix in `bin/gnng --all` that was causing many device vendors to be
      skipped entirely because the filter was too specific. This vendor
      filter has been removed and will now fallback to
      `~trigger.cmds.NetACLInfo()` internal knowledge of supported
      platforms.
    jathanism committed Apr 18, 2016
  2. Bugfix in `bin/gnng --all` that was too specific with vendor filters. (

    …#277)
    
    - This was causing vendors like Arista (for example) to be skipped
      entirely under `--all`
    jathanism committed Apr 18, 2016
Commits on Apr 6, 2016
  1. Adjust IOS-like prompt pattern to handle `\s\r` *inside* of prompts.

    - This apparently happens sometimes with Arista switches.
    - Unit tests updated.
    jathanism committed Apr 6, 2016
Commits on Apr 1, 2016
  1. Release 1.5.9

    Bug Fixes
    ---------
    
    + Bugfix in `~trigger.gorc` where init commands would be sent
      before a prompt was even available on the remote device.
    + Bugfix in `~trigger.utils.core.pretty_time()` where `pytz` was
      being referenced but not imported.
    + Extended prompt detection for IOS-like devices to include backspace
      characters (`\b` or `\x08`) which is sometimes seen on Cisco NX-OS
      devices, and would cause asynchronous execution to sometimes hang and
      result in a `~trigger.exceptions.CommandTimeout` error.
    * Improved the internal grouping logic for `load_acl` to be more
      permissive and if grouping fails it will just not group devices.
    * Fixed a bug that would prevent ACL staging from working when using
      default global settings.
    * Fixed bugs in the default global callables for `get_current_oncall()`
      and `create_tm_ticket()` that would prevent `lod_acl` from working.
      They now default to a disabled state that does not require
      customization just to utilize core load_acl functionality.
    * Updated the sample `settings.py` (`conf/trigger_settings.py`) to
      utilize the updated default callables.
    * Fixed a bug in default global callable for `get_tftp_source()` to
      properly perform lookup of `settings.VIPS`
    * Fixed a bug in default global callable for `stage_acls()` to
      properly perform lookup of `settings.FIREWALL_DIR` and
      `settings.TFTPROOT_DIR`.
    jathanism committed Apr 1, 2016
  2. Usability bug fixes to load_acl and its related settings.

    - Improved the internal grouping logic for `load_acl` to be more
      permissive and if grouping fails it will just not group devices.
    - Fixed a bug that would prevent ACL staging from working when using
      default global settings.
    - Fixed bugs in the default global callables for `get_current_oncall()`
      and `create_tm_ticket()` that would prevent `lod_acl` from working.
      They now default to a disabled state that does not require
      customization just to utilize core load_acl functionality.
    - Updated the sample `settings.py` (`conf/trigger_settings.py`) to
      utilize the updated default callables.
    - Fixed a bug in default global callable for `get_tftp_source()` to
      properly perform lookup of `settings.VIPS`
    - Fixed a bug in default global callable for `stage_acls()` to
      properly perform lookup of `settings.FIREWALL_DIR` and
      `settings.TFTPROOT_DIR`.
    jathanism committed Apr 1, 2016
  3. Fixes #258 - Bugfix in .gorc commands would be sent too soon.

    - The init commands will now only be sent once a prompt has been
      detected.
    jathanism committed Apr 1, 2016
Commits on Mar 29, 2016
  1. Bugfix for Cisco NX-OS devices where async execution would sometimes …

    …hang.
    
    + Extended prompt detection for IOS-like devices to include backspace
      characters ('\b' or '\x08') which is sometimes seen on Cisco NX-OS
      devices, and would cause asynchronous execution to sometimes hang and result
      in a `~trigger.exceptions.CommandTimeout` error.
    jathanism committed Mar 29, 2016
Commits on Mar 28, 2016
  1. Fixes #259 - Fixed ImportError in trigger.utils.cli.pretty_time()

    - Also switched unit tests to start using py.test
    jathanism committed Mar 28, 2016
Commits on Mar 24, 2016
  1. Add support for handling ascii backspaces on some IOS-like devices.

    - Which probably means it's a Cisco Nexus device.
    jathanism committed Mar 24, 2016
Commits on Mar 16, 2016
  1. Merge pull request #256 from tcuthbert/tfsm-doco

    Added textfsm doco
    jathanism committed Mar 16, 2016
Commits on Mar 12, 2016
Commits on Mar 9, 2016
  1. Release 1.5.8

    Bug Fixes
    ---------
    
    + Bugfix in `~trigger.cmds.Commando` related to the addition of TextFSM
      support for parsing unstructured CLI output.
    jathanism committed Mar 9, 2016