netbox-config-diff 2.2.0__tar.gz → 2.3.0__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.
- {netbox-config-diff-2.2.0/netbox_config_diff.egg-info → netbox-config-diff-2.3.0}/PKG-INFO +2 -2
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/README.md +1 -1
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/__init__.py +1 -1
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/base.py +1 -1
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/platforms.py +70 -3
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0/netbox_config_diff.egg-info}/PKG-INFO +2 -2
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/tests/test_compliance_utils.py +1 -1
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/LICENSE +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/MANIFEST.in +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/development/configuration.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-diff.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-error.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-list.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-missing-extra.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-ok.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/config-temp-substitute.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-approve-button.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-approved.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-collecting-diff-button.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-completed.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-created.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-diffs-tab.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-job-log.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-schedule-button.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-scheduled.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-unapprove-button.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-unschedule-button.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/navbar.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/platformsetting.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/render-temp-substitute.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/script-list.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/script.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/substitute.png +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/api/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/api/serializers.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/api/urls.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/api/views.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/choices.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/base.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/secrets.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/utils.py +1 -1
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/exceptions.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/factory.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/utils.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/constants.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/filtersets.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/forms.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/graphql.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/jobs.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0001_initial.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0002_add_script.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0003_configcompliance_actual_config_and_more.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0004_update_script.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0005_configcompliance_extra_missing.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0006_substitute.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0007_configurationrequest.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0008_alter_configcompliance_device.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/models/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/models/base.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/models/data_models.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/models/models.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/navigation.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/scripts/config_diff.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/search.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/static/netbox_config_diff/diff2html-ui.min.js +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/static/netbox_config_diff/diff2html.dark.min.css +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/static/netbox_config_diff/diff2html.min.css +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/tables.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configcompliance/config.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configcompliance/data.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configcompliance/missing_extra.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configcompliance.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configurationrequest/base.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configurationrequest/diffs.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/configurationrequest.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/inc/diff.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/inc/job_log.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/platformsetting.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/templates/netbox_config_diff/substitute.html +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/urls.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/__init__.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/base.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/compliance.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/configuration.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/SOURCES.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/dependency_links.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/requires.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/top_level.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/pyproject.toml +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/requirements/base.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/requirements/dev.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/requirements/test.txt +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/setup.cfg +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/tests/conftest.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/tests/factories.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/tests/test_compliance.py +0 -0
- {netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/tests/test_urls.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: netbox-config-diff
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Push rendered device configurations from NetBox to devices and apply them.
|
|
5
5
|
Author: Artem Kotik
|
|
6
6
|
Author-email: miaow2@yandex.ru
|
|
@@ -275,7 +275,7 @@ This is possible thanks to the scrapli_cfg. Read [Scrapli](https://github.com/sc
|
|
|
275
275
|
|
|
276
276
|
| NetBox Version | Plugin Version |
|
|
277
277
|
|----------------|----------------|
|
|
278
|
-
|
|
|
278
|
+
| 3.5, 3.6, 3.7 | =>0.1.0 |
|
|
279
279
|
|
|
280
280
|
<!--install-start-->
|
|
281
281
|
## Installing
|
|
@@ -44,7 +44,7 @@ This is possible thanks to the scrapli_cfg. Read [Scrapli](https://github.com/sc
|
|
|
44
44
|
|
|
45
45
|
| NetBox Version | Plugin Version |
|
|
46
46
|
|----------------|----------------|
|
|
47
|
-
|
|
|
47
|
+
| 3.5, 3.6, 3.7 | =>0.1.0 |
|
|
48
48
|
|
|
49
49
|
<!--install-start-->
|
|
50
50
|
## Installing
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/base.py
RENAMED
|
@@ -126,7 +126,7 @@ class Configurator(SecretsMixin):
|
|
|
126
126
|
)
|
|
127
127
|
device.rendered_config = rendered_config
|
|
128
128
|
else:
|
|
129
|
-
actual_config = await conn.get_config()
|
|
129
|
+
actual_config = await conn.get_config(config_template=device.rendered_config)
|
|
130
130
|
device.actual_config = conn.clean_config(actual_config.result)
|
|
131
131
|
|
|
132
132
|
device.diff = get_unified_diff(device.rendered_config, device.actual_config, device.name)
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/platforms.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import re
|
|
2
|
-
from typing import Pattern
|
|
2
|
+
from typing import Any, Pattern
|
|
3
3
|
|
|
4
4
|
from scrapli_cfg.exceptions import TemplateError
|
|
5
5
|
from scrapli_cfg.platform.core.arista_eos import AsyncScrapliCfgEOS
|
|
@@ -94,13 +94,17 @@ class CustomScrapliCfg:
|
|
|
94
94
|
"""
|
|
95
95
|
self.logger.info("fetching configuration and replacing with provided substitutes")
|
|
96
96
|
|
|
97
|
-
source_config = await self.get_config(source=source)
|
|
97
|
+
source_config = await self.get_config(config_template=config_template, source=source)
|
|
98
98
|
return source_config, self._render_substituted_config(
|
|
99
99
|
config_template=config_template,
|
|
100
100
|
substitutes=substitutes,
|
|
101
101
|
source_config=source_config.result,
|
|
102
102
|
)
|
|
103
103
|
|
|
104
|
+
async def get_config(self, **kwargs) -> ScrapliCfgResponse:
|
|
105
|
+
kwargs.pop("config_template", None)
|
|
106
|
+
return await super().get_config(**kwargs)
|
|
107
|
+
|
|
104
108
|
|
|
105
109
|
class CustomAsyncScrapliCfgEOS(CustomScrapliCfg, AsyncScrapliCfgEOS):
|
|
106
110
|
pass
|
|
@@ -119,4 +123,67 @@ class CustomAsyncScrapliCfgNXOS(CustomScrapliCfg, AsyncScrapliCfgNXOS):
|
|
|
119
123
|
|
|
120
124
|
|
|
121
125
|
class CustomAsyncScrapliCfgJunos(CustomScrapliCfg, AsyncScrapliCfgJunos):
|
|
122
|
-
|
|
126
|
+
is_set_config = False
|
|
127
|
+
|
|
128
|
+
async def get_config(self, config_template: str, source: str = "running") -> ScrapliCfgResponse:
|
|
129
|
+
response = self._pre_get_config(source=source)
|
|
130
|
+
|
|
131
|
+
command = "show configuration"
|
|
132
|
+
if re.findall(r"^set\s+", config_template, flags=re.I | re.M):
|
|
133
|
+
self.is_set_config = True
|
|
134
|
+
command += " | display set"
|
|
135
|
+
|
|
136
|
+
if self._in_configuration_session is True:
|
|
137
|
+
config_result = await self.conn.send_config(config=f"run {command}")
|
|
138
|
+
else:
|
|
139
|
+
config_result = await self.conn.send_command(command=command)
|
|
140
|
+
|
|
141
|
+
return self._post_get_config(
|
|
142
|
+
response=response,
|
|
143
|
+
source=source,
|
|
144
|
+
scrapli_responses=[config_result],
|
|
145
|
+
result=config_result.result,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
async def load_config(self, config: str, replace: bool = False, **kwargs: Any) -> ScrapliCfgResponse:
|
|
149
|
+
"""
|
|
150
|
+
Load configuration to a device
|
|
151
|
+
|
|
152
|
+
Supported kwargs:
|
|
153
|
+
set: bool indicating config is a "set" style config (ignored if replace is True)
|
|
154
|
+
|
|
155
|
+
Args:
|
|
156
|
+
config: string of the configuration to load
|
|
157
|
+
replace: replace the configuration or not, if false configuration will be loaded as a
|
|
158
|
+
merge operation
|
|
159
|
+
kwargs: additional kwargs that the implementing classes may need for their platform,
|
|
160
|
+
see above for junos supported kwargs
|
|
161
|
+
|
|
162
|
+
Returns:
|
|
163
|
+
ScrapliCfgResponse: response object
|
|
164
|
+
|
|
165
|
+
Raises:
|
|
166
|
+
N/A
|
|
167
|
+
|
|
168
|
+
"""
|
|
169
|
+
response = self._pre_load_config(config=config)
|
|
170
|
+
|
|
171
|
+
config = self._prepare_load_config(config=config, replace=replace)
|
|
172
|
+
|
|
173
|
+
config_result = await self.conn.send_config(config=config, privilege_level="root_shell")
|
|
174
|
+
|
|
175
|
+
if self.is_set_config is True:
|
|
176
|
+
load_config = f"load set {self.filesystem}{self.candidate_config_filename}"
|
|
177
|
+
else:
|
|
178
|
+
if self._replace is True:
|
|
179
|
+
load_config = f"load override {self.filesystem}{self.candidate_config_filename}"
|
|
180
|
+
else:
|
|
181
|
+
load_config = f"load merge {self.filesystem}{self.candidate_config_filename}"
|
|
182
|
+
|
|
183
|
+
load_result = await self.conn.send_config(config=load_config)
|
|
184
|
+
self._in_configuration_session = True
|
|
185
|
+
|
|
186
|
+
return self._post_load_config(
|
|
187
|
+
response=response,
|
|
188
|
+
scrapli_responses=[config_result, load_result],
|
|
189
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: netbox-config-diff
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Push rendered device configurations from NetBox to devices and apply them.
|
|
5
5
|
Author: Artem Kotik
|
|
6
6
|
Author-email: miaow2@yandex.ru
|
|
@@ -275,7 +275,7 @@ This is possible thanks to the scrapli_cfg. Read [Scrapli](https://github.com/sc
|
|
|
275
275
|
|
|
276
276
|
| NetBox Version | Plugin Version |
|
|
277
277
|
|----------------|----------------|
|
|
278
|
-
|
|
|
278
|
+
| 3.5, 3.6, 3.7 | =>0.1.0 |
|
|
279
279
|
|
|
280
280
|
<!--install-start-->
|
|
281
281
|
## Installing
|
|
@@ -56,4 +56,4 @@ def test_exclude_lines(regex: str, expected: str) -> None:
|
|
|
56
56
|
ids=["diff", "no diff"],
|
|
57
57
|
)
|
|
58
58
|
def test_get_unified_diff(render: str, actual: str, expected: str) -> None:
|
|
59
|
-
assert get_unified_diff(
|
|
59
|
+
assert get_unified_diff(actual, render, "test-1") == expected
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-diff.png
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-error.png
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-list.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/compliance-ok.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-approve-button.png
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-approved.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-completed.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-diffs-tab.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-schedule-button.png
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-scheduled.png
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/cr-unapprove-button.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/platformsetting.png
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/docs/media/screenshots/script-list.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/secrets.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/compliance/utils.py
RENAMED
|
@@ -30,8 +30,8 @@ class CustomChoiceVar(ScriptVariable):
|
|
|
30
30
|
|
|
31
31
|
def get_unified_diff(rendered_config: str, actual_config: str, device: str) -> str:
|
|
32
32
|
diff = unified_diff(
|
|
33
|
-
rendered_config.strip().splitlines(),
|
|
34
33
|
actual_config.splitlines(),
|
|
34
|
+
rendered_config.strip().splitlines(),
|
|
35
35
|
fromfiledate=device,
|
|
36
36
|
tofiledate=device,
|
|
37
37
|
lineterm="",
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/__init__.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/exceptions.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/factory.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/configurator/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/migrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/models/data_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/scripts/config_diff.py
RENAMED
|
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
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/compliance.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff/views/configuration.py
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/requires.txt
RENAMED
|
File without changes
|
{netbox-config-diff-2.2.0 → netbox-config-diff-2.3.0}/netbox_config_diff.egg-info/top_level.txt
RENAMED
|
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
|