diff --git a/.tool-versions b/.tool-versions index 5877b89..93c96b1 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1 @@ just 1.25.2 -lefthook 1.4.6 diff --git a/dev/Dockerfile b/dev/Dockerfile index 6e3ec88..6c3099a 100644 --- a/dev/Dockerfile +++ b/dev/Dockerfile @@ -3,4 +3,4 @@ FROM lscr.io/linuxserver/netbox:3.7.6 RUN pip install -U \ wheel \ setuptools \ - netbox-plugin-dns + netbox-plugin-dns==0.22.8 diff --git a/dev/sync2.yml b/dev/sync2.yml new file mode 100644 index 0000000..74e3eb5 --- /dev/null +++ b/dev/sync2.yml @@ -0,0 +1,43 @@ +manager: + max_workers: 1 + plan_outputs: + html: + class: octodns.provider.plan.PlanMarkdown +processors: + spf: + class: octodns_spf.SpfDnsLookupProcessor + no-root-ns: + class: octodns.processor.filter.IgnoreRootNsFilter + min-max-ttl: + class: octodns.processor.restrict.TtlRestrictionFilter + allowed_ttls: + - 60 + - 300 + - 600 + - 900 + - 1800 + - 3600 + - 7200 + - 10800 +providers: + config: + class: octodns.provider.yaml.YamlProvider + directory: ./zones + default_ttl: 3600 + enforce_order: true + populate_should_replace: false + netbox: + class: octodns_netbox_dns.NetBoxDNSProvider + url: http://localhost:8000 + token: 1ca8f8de1d651b0859052dc5e6a0858fd1e43e3d # change token for netbox + view: false + replace_duplicates: false + make_absolute: true +zones: + "*": + sources: + - config + processors: + - spf + targets: + - netbox diff --git a/justfile b/justfile index 9263d3e..e7012c9 100644 --- a/justfile +++ b/justfile @@ -77,5 +77,8 @@ sync *args: dump *args: hatch -v run default:dump {{ args }} +dump2 *args: + hatch -v run default:dump2 {{ args }} + validate *args: hatch -v run default:validate {{ args }} diff --git a/lefthook.yml b/lefthook.yml deleted file mode 100644 index 7981015..0000000 --- a/lefthook.yml +++ /dev/null @@ -1,14 +0,0 @@ -colors: true -no_tty: false - -pre-commit: - commands: - 01_ruff_check: - stage_fixed: true - glob: "*.py" - run: ruff check --fix-only --exit-zero --silent {all_files} - - 02_ruff_format: - stage_fixed: true - glob: "*.py" - run: ruff format {all_files} diff --git a/pyproject.toml b/pyproject.toml index 0f7d302..a430d38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["hatchling>=1.18", "hatch-regex-commit>=0.0.3"] +requires = ["hatchling>=1.24", "hatch-regex-commit>=0.0.3"] build-backend = "hatchling.build" [project] @@ -11,7 +11,7 @@ requires-python = ">=3.11" dynamic = ["version"] authors = [ { name = "Jeffrey C. Ollie", email = "" }, - { name = "Ivan Schaller", email = "ivan@schaller.sh" } + { name = "Ivan Schaller", email = "ivan@schaller.sh" }, ] classifiers = [ "License :: OSI Approved :: MIT License", @@ -19,10 +19,7 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3.11", ] -dependencies = [ - "pynetbox>=7.2.0", - "dnspython>=2.4.2", -] +dependencies = ["pynetbox>=7.2.0", "dnspython>=2.4.2"] [project.urls] Homepage = "https://github.com/olofvndrhr/octodns-netbox-dns" @@ -48,9 +45,9 @@ packages = ["src/octodns_netbox_dns"] [tool.hatch.envs.default] python = "3.11" dependencies = [ - "pytest==7.4.4", - "coverage==7.4.2", - "octodns==1.7.0", + "pytest==8.2.2", + "coverage==7.5.3", + "octodns==1.9.1", "octodns-spf==0.0.2", ] @@ -61,28 +58,23 @@ cov-report = ["- coverage combine", "coverage report", "coverage xml"] cov = ["test-cov", "cov-report"] sync = ["cd dev && octodns-sync --debug --config-file sync.yml --force {args}"] -dump = ["cd dev && octodns-dump --debug --config-file sync.yml --output-dir output {args} '*' netbox"] +dump = [ + "cd dev && octodns-dump --debug --config-file sync.yml --output-dir output {args} '*' netbox", +] +dump2 = [ + "cd dev && octodns-dump --debug --config-file sync2.yml --output-dir output {args} '*' netbox", +] validate = ["cd dev && octodns-validate --debug --config-file sync.yml {args}"] [tool.hatch.envs.lint] python = "3.11" detached = true -dependencies = [ - "mypy==1.8.0", - "ruff==0.2.2", -] +dependencies = ["mypy==1.10.0", "ruff==0.4.8"] [tool.hatch.envs.lint.scripts] typing = "mypy --non-interactive --install-types {args:src/octodns_netbox_dns}" -style = [ - "ruff check --diff {args:.}", - "ruff format --check --diff {args:.}" -] -fmt = [ - "ruff check --fix {args:.}", - "ruff format {args:.}", - "style" -] +style = ["ruff check --diff {args:.}", "ruff format --check --diff {args:.}"] +fmt = ["ruff check --fix {args:.}", "ruff format {args:.}", "style"] all = ["style", "typing"] ### @@ -112,7 +104,7 @@ exclude = [ "dist", "node_modules", "venv", - "dev" + "dev", ] [tool.ruff.lint] @@ -143,8 +135,18 @@ select = [ "W", "YTT", ] -ignore-init-module-imports = true -ignore = ["E501", "D103", "D100", "D102", "PLR2004", "D403", "ISC001", "FBT001", "FBT002", "FBT003"] +ignore = [ + "E501", + "D103", + "D100", + "D102", + "PLR2004", + "D403", + "ISC001", + "FBT001", + "FBT002", + "FBT003", +] unfixable = ["F401"] [tool.ruff.format] @@ -231,7 +233,10 @@ parallel = true omit = ["src/octodns_netbox_dns/__about__.py"] [tool.coverage.paths] -octodns_netbox_dns = ["src/octodns_netbox_dns", "*/octodns-netbox-dns/src/octodns_netbox_dns"] +octodns_netbox_dns = [ + "src/octodns_netbox_dns", + "*/octodns-netbox-dns/src/octodns_netbox_dns", +] tests = ["tests", "*/octodns-netbox-dns/tests"] [tool.coverage.report]