From 4b7342c5d7feeac2531654460757df3f74161dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Wed, 19 Feb 2025 13:21:50 +0100 Subject: [PATCH 1/4] Make method private --- pfsense_netbox_sync/__init__.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pfsense_netbox_sync/__init__.py b/pfsense_netbox_sync/__init__.py index cb3bd7b..b518b29 100644 --- a/pfsense_netbox_sync/__init__.py +++ b/pfsense_netbox_sync/__init__.py @@ -14,7 +14,7 @@ import urllib3 from requests.auth import HTTPBasicAuth -def fetch_netbox_host_overrides(nb_api: pynetbox.api) -> dict: +def _fetch_netbox_host_overrides(nb_api: pynetbox.api) -> dict: """ Fetch and build a list of host override from a NetBox instance :param nb_api: the NetBox API client @@ -42,7 +42,7 @@ def fetch_netbox_host_overrides(nb_api: pynetbox.api) -> dict: return nb_host_overrides -def fetch_pfsense_host_overrides() -> dict: +def _fetch_pfsense_host_overrides() -> dict: """ Fetch and build a list of host override from a pfSense instance :return: the list of host overrides mapped by their hostname @@ -70,7 +70,7 @@ def fetch_pfsense_host_overrides() -> dict: return pf_host_overrides -def compute_host_overrides_changes( +def _compute_host_overrides_changes( netbox_host_overrides: dict, pfsense_host_overrides: dict, ) -> (List[dict], List[dict], List[dict]): @@ -120,7 +120,7 @@ def process_new_host_overrides(host_overrides: List[dict]): sys.exit(1) -def process_changed_host_overrides(pf_host_overrides: dict, host_overrides: List[dict]): +def _process_changed_host_overrides(pf_host_overrides: dict, host_overrides: List[dict]): """ Process the changed host overrides. This will update them into the pfSense instance :param pf_host_overrides: the actual host overrides coming from the pfSense instance @@ -149,7 +149,7 @@ def process_changed_host_overrides(pf_host_overrides: dict, host_overrides: List sys.exit(1) -def process_deleted_host_overrides(host_overrides: List[dict]): +def _process_deleted_host_overrides(host_overrides: List[dict]): """ Process the deleted host overrides. This will delete them from the pfSense instance :param host_overrides: the deleted host overrides @@ -182,13 +182,13 @@ def main(): ) # First, built the host overrides using Netbox as source - nb_host_overrides = fetch_netbox_host_overrides(nb_api) + nb_host_overrides = _fetch_netbox_host_overrides(nb_api) # Then fetch the actual host overrides from pfSense API - pf_host_overrides = fetch_pfsense_host_overrides() + pf_host_overrides = _fetch_pfsense_host_overrides() # Compute the changes - (new_host_overrides, changed_host_overrides, deleted_host_overrides) = compute_host_overrides_changes( + (new_host_overrides, changed_host_overrides, deleted_host_overrides) = _compute_host_overrides_changes( nb_host_overrides, pf_host_overrides, ) @@ -207,19 +207,19 @@ def main(): process_new_host_overrides(new_host_overrides) # Then process the changed host overrides - process_changed_host_overrides(pf_host_overrides, changed_host_overrides) + _process_changed_host_overrides(pf_host_overrides, changed_host_overrides) # Once it's done, re-fetch the actual host overrides from pfSense API (because the ID may have changed) - pf_host_overrides = fetch_pfsense_host_overrides() + pf_host_overrides = _fetch_pfsense_host_overrides() # Re-compute the changes (only for the deleted this time) - (_, _, deleted_host_overrides) = compute_host_overrides_changes( + (_, _, deleted_host_overrides) = _compute_host_overrides_changes( nb_host_overrides, pf_host_overrides, ) # Finally process the deleted host overrides - process_deleted_host_overrides(deleted_host_overrides) + _process_deleted_host_overrides(deleted_host_overrides) # Finally restart the DNS resolver r = requests.post( From 99b4c75371380bbb7962f556b92596a9bcf8b608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Wed, 19 Feb 2025 13:30:07 +0100 Subject: [PATCH 2/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 695cc34..77c97b4 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ The following env variables will need to be set: You can then execute the script using the following command: ``` -PF_API_URL=xx PF_API_USER=xx PF_API_PASS=xx NB_API_URL=xx NB_API_TOKEN=xx python3 -m app +PF_API_URL=xx PF_API_USER=xx PF_API_PASS=xx NB_API_URL=xx NB_API_TOKEN=xx python3 -m pfsense_netbox_sync ``` The script will indicate any change made. \ No newline at end of file From 000349be6769c6d73a33fba1a2edb2307d2fcf7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Wed, 19 Feb 2025 18:29:49 +0100 Subject: [PATCH 3/4] Add Changelog.md --- Changelog.md | 7 +++++++ pyproject.toml | 1 + 2 files changed, 8 insertions(+) create mode 100644 Changelog.md diff --git a/Changelog.md b/Changelog.md new file mode 100644 index 0000000..68f778d --- /dev/null +++ b/Changelog.md @@ -0,0 +1,7 @@ +# pfsense-netbox-sync + +## [Unreleased] + +## [0.1.0] + +- Initial release. \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 6b39667..2b9d590 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,7 @@ dependencies = [ [project.urls] Homepage = "https://git.creekorful.cloud/creekorful/pfsense-netbox-sync" Issues = "https://git.creekorful.cloud/creekorful/pfsense-netbox-sync/issues" +Changelog = "https://git.creekorful.cloud/creekorful/pfsense-netbox-sync/src/branch/main/Changelog.md" [project.scripts] pfnbsync = "pfsense_netbox_sync:main" From b3421c11b4bc134e79bb186f7a4b60cd89672a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Mon, 24 Feb 2025 12:10:56 +0100 Subject: [PATCH 4/4] Add PyPi installation instructions --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 77c97b4..645183b 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,12 @@ corresponding DNS entries on pfSense DNS resolver. ## Installation +This package is available on PyPi. You can install it using pip. + +``` +$ pip install pfsense-netbox-sync +``` + ## Configuration ### On NetBox