trigger 2.0.0__py3-none-any.whl

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 (61) hide show
  1. trigger/__init__.py +7 -0
  2. trigger/acl/__init__.py +32 -0
  3. trigger/acl/autoacl.py +70 -0
  4. trigger/acl/db.py +324 -0
  5. trigger/acl/dicts.py +357 -0
  6. trigger/acl/grammar.py +112 -0
  7. trigger/acl/ios.py +222 -0
  8. trigger/acl/junos.py +422 -0
  9. trigger/acl/models.py +118 -0
  10. trigger/acl/parser.py +168 -0
  11. trigger/acl/queue.py +296 -0
  12. trigger/acl/support.py +1431 -0
  13. trigger/acl/tools.py +746 -0
  14. trigger/bin/__init__.py +0 -0
  15. trigger/bin/acl.py +233 -0
  16. trigger/bin/acl_script.py +574 -0
  17. trigger/bin/aclconv.py +82 -0
  18. trigger/bin/check_access.py +93 -0
  19. trigger/bin/check_syntax.py +66 -0
  20. trigger/bin/fe.py +197 -0
  21. trigger/bin/find_access.py +191 -0
  22. trigger/bin/gnng.py +434 -0
  23. trigger/bin/gong.py +86 -0
  24. trigger/bin/load_acl.py +841 -0
  25. trigger/bin/load_config.py +18 -0
  26. trigger/bin/netdev.py +317 -0
  27. trigger/bin/optimizer.py +638 -0
  28. trigger/bin/run_cmds.py +18 -0
  29. trigger/changemgmt/__init__.py +352 -0
  30. trigger/changemgmt/bounce.py +57 -0
  31. trigger/cmds.py +1217 -0
  32. trigger/conf/__init__.py +94 -0
  33. trigger/conf/global_settings.py +674 -0
  34. trigger/contrib/__init__.py +7 -0
  35. trigger/exceptions.py +307 -0
  36. trigger/gorc.py +172 -0
  37. trigger/netdevices/__init__.py +1288 -0
  38. trigger/netdevices/loader.py +174 -0
  39. trigger/netscreen.py +1030 -0
  40. trigger/packages/__init__.py +6 -0
  41. trigger/packages/peewee.py +8084 -0
  42. trigger/rancid.py +463 -0
  43. trigger/tacacsrc.py +584 -0
  44. trigger/twister.py +2203 -0
  45. trigger/twister2.py +745 -0
  46. trigger/utils/__init__.py +88 -0
  47. trigger/utils/cli.py +349 -0
  48. trigger/utils/importlib.py +77 -0
  49. trigger/utils/network.py +157 -0
  50. trigger/utils/rcs.py +178 -0
  51. trigger/utils/templates.py +81 -0
  52. trigger/utils/url.py +78 -0
  53. trigger/utils/xmltodict.py +298 -0
  54. trigger-2.0.0.dist-info/METADATA +146 -0
  55. trigger-2.0.0.dist-info/RECORD +61 -0
  56. trigger-2.0.0.dist-info/WHEEL +5 -0
  57. trigger-2.0.0.dist-info/entry_points.txt +15 -0
  58. trigger-2.0.0.dist-info/licenses/AUTHORS.md +20 -0
  59. trigger-2.0.0.dist-info/licenses/LICENSE.md +28 -0
  60. trigger-2.0.0.dist-info/top_level.txt +2 -0
  61. twisted/plugins/trigger_xmlrpc.py +124 -0
@@ -0,0 +1,94 @@
1
+ """
2
+ Settings and configuration for Trigger.
3
+
4
+ Values will be read from the module specified by the ``TRIGGER_SETTINGS``
5
+ environment variable, and then from trigger.conf.global_settings; see the
6
+ global settings file for a list of all possible variables.
7
+
8
+ If ``TRIGGER_SETTINGS`` is not set, it will attempt to load from
9
+ ``/etc/trigger/settings.py`` and complains if it can't. The primary public
10
+ interface for this module is the ``settings`` variable, which is a module
11
+ object containing the variables found in ``settings.py``.
12
+
13
+ >>> from trigger.conf import settings
14
+ >>> settings.FIREWALL_DIR
15
+ '/data/firewalls'
16
+ >>> settings.REDIS_HOST
17
+ '127.0.0.1'
18
+ """
19
+
20
+ __author__ = "Jathan McCollum"
21
+ __maintainer__ = "Jathan McCollum"
22
+ __email__ = "jathan.mccollum@teamaol.com"
23
+ __copyright__ = "Copyright 2010-2012, AOL Inc."
24
+
25
+ import os
26
+ import warnings
27
+
28
+ from trigger.utils.importlib import import_module_from_path
29
+
30
+ from . import global_settings
31
+
32
+ # Defaults
33
+ DEFAULT_LOCATION = "/etc/trigger/settings.py"
34
+ ENVIRONMENT_VARIABLE = "TRIGGER_SETTINGS"
35
+ SETTINGS_FILE = os.environ.get(ENVIRONMENT_VARIABLE, DEFAULT_LOCATION)
36
+
37
+
38
+ # Exports
39
+ __all__ = ("settings", "DummySettings", "BaseSettings", "Settings")
40
+
41
+
42
+ # Classes
43
+ class DummySettings:
44
+ """Emulates settings and returns empty strings on attribute gets."""
45
+
46
+ def __getattribute__(self, name):
47
+ return ""
48
+
49
+
50
+ # BaseSettings and Settings concepts were lifted from Django's objects of the
51
+ # same name, except our implementation is simplified. (See: django.conf.__init__.py)
52
+ class BaseSettings:
53
+ """
54
+ Common logic for settings whether set by a module or by the user.
55
+ """
56
+
57
+ def __setattr__(self, name, value):
58
+ object.__setattr__(self, name, value)
59
+
60
+
61
+ class Settings(BaseSettings):
62
+ def __init__(self, settings_module):
63
+ # Update this dict from global settings (but only for ALL_CAPS settings)
64
+ for setting in dir(global_settings):
65
+ if setting == setting.upper():
66
+ setattr(self, setting, getattr(global_settings, setting))
67
+
68
+ # Store the settings module in case someone later cares
69
+ self.SETTINGS_MODULE = settings_module
70
+
71
+ mod = import_module_from_path(settings_module, "settings")
72
+
73
+ # Settings that should be converted into tuples if they're mistakenly entered
74
+ # as strings.
75
+ tuple_settings = ("SUPPORTED_VENDORS", "IOSLIKE_VENDORS", "VALID_OWNERS")
76
+
77
+ # Now override anything configured in the custom settings
78
+ for setting in dir(mod):
79
+ if setting == setting.upper():
80
+ setting_value = getattr(mod, setting)
81
+ if setting in tuple_settings and type(setting_value) == str:
82
+ setting_value = (
83
+ setting_value,
84
+ ) # In case the user forgot the comma.
85
+ setattr(self, setting, setting_value)
86
+
87
+
88
+ # This is our settings object
89
+ try:
90
+ settings = Settings(SETTINGS_FILE)
91
+ except ImportError as err:
92
+ # Complain loudly but carry on with defaults
93
+ warnings.warn(str(err) + " Using default global settings.", RuntimeWarning)
94
+ settings = global_settings