trigger 2.2.4__tar.gz → 2.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. {trigger-2.2.4/trigger.egg-info → trigger-2.2.5}/PKG-INFO +1 -1
  2. {trigger-2.2.4 → trigger-2.2.5}/pyproject.toml +1 -1
  3. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/acl.py +26 -2
  4. {trigger-2.2.4 → trigger-2.2.5/trigger.egg-info}/PKG-INFO +1 -1
  5. {trigger-2.2.4 → trigger-2.2.5}/AUTHORS.md +0 -0
  6. {trigger-2.2.4 → trigger-2.2.5}/LICENSE.md +0 -0
  7. {trigger-2.2.4 → trigger-2.2.5}/README.md +0 -0
  8. {trigger-2.2.4 → trigger-2.2.5}/setup.cfg +0 -0
  9. {trigger-2.2.4 → trigger-2.2.5}/tests/test_acl.py +0 -0
  10. {trigger-2.2.4 → trigger-2.2.5}/tests/test_acl_db.py +0 -0
  11. {trigger-2.2.4 → trigger-2.2.5}/tests/test_acl_queue.py +0 -0
  12. {trigger-2.2.4 → trigger-2.2.5}/tests/test_changemgmt.py +0 -0
  13. {trigger-2.2.4 → trigger-2.2.5}/tests/test_except.py +0 -0
  14. {trigger-2.2.4 → trigger-2.2.5}/tests/test_netdevices.py +0 -0
  15. {trigger-2.2.4 → trigger-2.2.5}/tests/test_scripts.py +0 -0
  16. {trigger-2.2.4 → trigger-2.2.5}/tests/test_tacacsrc.py +0 -0
  17. {trigger-2.2.4 → trigger-2.2.5}/tests/test_templates.py +0 -0
  18. {trigger-2.2.4 → trigger-2.2.5}/tests/test_twister.py +0 -0
  19. {trigger-2.2.4 → trigger-2.2.5}/tests/test_twister2.py +0 -0
  20. {trigger-2.2.4 → trigger-2.2.5}/tests/test_utils.py +0 -0
  21. {trigger-2.2.4 → trigger-2.2.5}/trigger/__init__.py +0 -0
  22. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/__init__.py +0 -0
  23. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/autoacl.py +0 -0
  24. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/db.py +0 -0
  25. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/dicts.py +0 -0
  26. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/grammar.py +0 -0
  27. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/ios.py +0 -0
  28. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/junos.py +0 -0
  29. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/models.py +0 -0
  30. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/parser.py +0 -0
  31. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/queue.py +0 -0
  32. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/support.py +0 -0
  33. {trigger-2.2.4 → trigger-2.2.5}/trigger/acl/tools.py +0 -0
  34. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/__init__.py +0 -0
  35. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/acl_script.py +0 -0
  36. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/aclconv.py +0 -0
  37. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/check_access.py +0 -0
  38. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/check_syntax.py +0 -0
  39. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/fe.py +0 -0
  40. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/find_access.py +0 -0
  41. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/gnng.py +0 -0
  42. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/gong.py +0 -0
  43. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/load_acl.py +0 -0
  44. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/load_config.py +0 -0
  45. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/netdev.py +0 -0
  46. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/optimizer.py +0 -0
  47. {trigger-2.2.4 → trigger-2.2.5}/trigger/bin/run_cmds.py +0 -0
  48. {trigger-2.2.4 → trigger-2.2.5}/trigger/changemgmt/__init__.py +0 -0
  49. {trigger-2.2.4 → trigger-2.2.5}/trigger/changemgmt/bounce.py +0 -0
  50. {trigger-2.2.4 → trigger-2.2.5}/trigger/cmds.py +0 -0
  51. {trigger-2.2.4 → trigger-2.2.5}/trigger/conf/__init__.py +0 -0
  52. {trigger-2.2.4 → trigger-2.2.5}/trigger/conf/global_settings.py +0 -0
  53. {trigger-2.2.4 → trigger-2.2.5}/trigger/contrib/__init__.py +0 -0
  54. {trigger-2.2.4 → trigger-2.2.5}/trigger/exceptions.py +0 -0
  55. {trigger-2.2.4 → trigger-2.2.5}/trigger/gorc.py +0 -0
  56. {trigger-2.2.4 → trigger-2.2.5}/trigger/netdevices/__init__.py +0 -0
  57. {trigger-2.2.4 → trigger-2.2.5}/trigger/netdevices/loader.py +0 -0
  58. {trigger-2.2.4 → trigger-2.2.5}/trigger/netscreen.py +0 -0
  59. {trigger-2.2.4 → trigger-2.2.5}/trigger/packages/__init__.py +0 -0
  60. {trigger-2.2.4 → trigger-2.2.5}/trigger/packages/peewee.py +0 -0
  61. {trigger-2.2.4 → trigger-2.2.5}/trigger/rancid.py +0 -0
  62. {trigger-2.2.4 → trigger-2.2.5}/trigger/tacacsrc.py +0 -0
  63. {trigger-2.2.4 → trigger-2.2.5}/trigger/twister.py +0 -0
  64. {trigger-2.2.4 → trigger-2.2.5}/trigger/twister2.py +0 -0
  65. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/__init__.py +0 -0
  66. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/cli.py +0 -0
  67. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/importlib.py +0 -0
  68. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/network.py +0 -0
  69. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/rcs.py +0 -0
  70. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/templates.py +0 -0
  71. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/url.py +0 -0
  72. {trigger-2.2.4 → trigger-2.2.5}/trigger/utils/xmltodict.py +0 -0
  73. {trigger-2.2.4 → trigger-2.2.5}/trigger.egg-info/SOURCES.txt +0 -0
  74. {trigger-2.2.4 → trigger-2.2.5}/trigger.egg-info/dependency_links.txt +0 -0
  75. {trigger-2.2.4 → trigger-2.2.5}/trigger.egg-info/entry_points.txt +0 -0
  76. {trigger-2.2.4 → trigger-2.2.5}/trigger.egg-info/requires.txt +0 -0
  77. {trigger-2.2.4 → trigger-2.2.5}/trigger.egg-info/top_level.txt +0 -0
  78. {trigger-2.2.4 → trigger-2.2.5}/twisted/plugins/trigger_xmlrpc.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trigger
3
- Version: 2.2.4
3
+ Version: 2.2.5
4
4
  Summary: Network automation toolkit for managing network devices
5
5
  Author-email: Jathan McCollum <jathan@gmail.com>
6
6
  License-Expression: BSD-3-Clause
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "trigger"
7
- version = "2.2.4"
7
+ version = "2.2.5"
8
8
  description = "Network automation toolkit for managing network devices"
9
9
  readme = "README.md"
10
10
  license = "BSD-3-Clause"
@@ -10,6 +10,7 @@ and to manage the ACL task queue.
10
10
  import optparse
11
11
  import sys
12
12
  from collections import defaultdict
13
+ from pathlib import Path
13
14
  from textwrap import wrap
14
15
 
15
16
  from trigger import __version__, exceptions
@@ -24,7 +25,8 @@ def parse_args(argv, optp): # noqa: D103
24
25
  %prog --display [--exact | --device-name-only] (<acl_name> | <device>)
25
26
  %prog (--add | --remove) <acl_name> [<device> [<device> ...]]
26
27
  %prog (--clear | --inject) [--quiet] [<acl_name> [<acl_name> ...]]
27
- %prog (--list | --listmanual)"""
28
+ %prog (--list | --listmanual)
29
+ %prog --staged"""
28
30
 
29
31
  # Parse arguments.
30
32
  optp.usage = usage
@@ -46,6 +48,14 @@ def parse_args(argv, optp): # noqa: D103
46
48
  const="listmanual",
47
49
  dest="mode",
48
50
  )
51
+ optp.add_option(
52
+ "-s",
53
+ "--staged",
54
+ help="list currently staged ACLs",
55
+ action="store_const",
56
+ const="staged",
57
+ dest="mode",
58
+ )
49
59
  optp.add_option(
50
60
  "-i",
51
61
  "--inject",
@@ -128,7 +138,7 @@ def main(): # noqa: PLR0912, PLR0915
128
138
  # Setup
129
139
  aclsdb = AclsDB()
130
140
  term_width = get_terminal_width() # How wide is your term!
131
- valid_modes = ["list", "listmanual"] # Valid listing modes
141
+ valid_modes = ["list", "listmanual", "staged"] # Valid listing modes
132
142
 
133
143
  optp = optparse.OptionParser()
134
144
  opts, args = parse_args(sys.argv, optp)
@@ -167,6 +177,20 @@ def main(): # noqa: PLR0912, PLR0915
167
177
  if not queue.list(queue="manual"):
168
178
  print("Nothing in the manual queue.")
169
179
 
180
+ elif opts.mode == "staged":
181
+ tftproot = settings.TFTPROOT_DIR
182
+ tftp_path = Path(tftproot)
183
+ if not tftp_path.is_dir():
184
+ print(f"TFTPROOT_DIR directory not found: {tftproot}")
185
+ sys.exit(1)
186
+ staged_files = sorted(p.name for p in tftp_path.iterdir() if p.is_file())
187
+ if staged_files:
188
+ print(f"Access-lists currently staged in {tftproot}:")
189
+ for filename in staged_files:
190
+ print(f" {filename}")
191
+ else:
192
+ print(f"No ACLs currently staged in {tftproot}.")
193
+
170
194
  elif opts.mode == "inject":
171
195
  for arg in args:
172
196
  devs = [dev[0] for dev in get_matching_acls([arg])]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trigger
3
- Version: 2.2.4
3
+ Version: 2.2.5
4
4
  Summary: Network automation toolkit for managing network devices
5
5
  Author-email: Jathan McCollum <jathan@gmail.com>
6
6
  License-Expression: BSD-3-Clause
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes