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/README.md b/README.md index 695cc34..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 @@ -44,7 +50,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 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( 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"