Skip to content

Commit 3961d05

Browse files
authored
Merge branch 'develop' into loose_matching
2 parents 73430a7 + 1204138 commit 3961d05

File tree

83 files changed

+15287
-801
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+15287
-801
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @leoparente @ltucker @mfiedorowicz
1+
* @jajeffries @leoparente @ltucker @mfiedorowicz @MicahParks

.github/workflows/lint-tests.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
strategy:
2727
matrix:
2828
python: [ "3.10" ]
29+
netbox: [ "", "v4.2.3" ]
2930
steps:
3031
- name: Checkout
3132
uses: actions/checkout@v4
@@ -40,15 +41,25 @@ jobs:
4041
pip install .[dev]
4142
pip install .[test]
4243
- name: Lint with Ruff
44+
id: lint
4345
run: |
4446
ruff check --output-format=github netbox_diode_plugin/
4547
continue-on-error: true
4648
- name: Test
49+
id: test
4750
run: |
48-
make docker-compose-netbox-plugin-test-cover
51+
make NETBOX_VERSION=${{ matrix.netbox }} docker-compose-netbox-plugin-test-cover
52+
continue-on-error: true
53+
- name: Check results
54+
if: always()
55+
run: |
56+
if [[ "${{ steps.lint.outcome }}" == "failure" || "${{ steps.test.outcome }}" == "failure" ]]; then
57+
echo "Either linting or tests failed"
58+
exit 1
59+
fi
4960
- name: Coverage comment
5061
uses: orgoro/coverage@3f13a558c5af7376496aa4848bf0224aead366ac # v3.2
51-
if: github.event.pull_request.head.repo.full_name == github.repository
62+
if: github.event.pull_request.head.repo.full_name == github.repository && matrix.netbox == ''
5263
with:
5364
coverageFile: ./docker/coverage/report.xml
5465
token: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@ dist/
2929
# Docker
3030
docker/coverage
3131
!docker/netbox/env
32+
!docker/*/netbox/env
3233
docker/oauth2/secrets/*
3334
!docker/oauth2/secrets/.gitkeep

Makefile

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,48 @@ else
44
DOCKER_COMPOSE := docker-compose
55
endif
66

7+
NETBOX_VERSION ?=
8+
ifneq ($(NETBOX_VERSION),)
9+
DOCKER_PATH := docker/$(NETBOX_VERSION)
10+
TEST_SELECTOR := "/opt/netbox/netbox/netbox_diode_plugin/tests/$(NETBOX_VERSION)/tests/"
11+
else
12+
DOCKER_PATH := docker
13+
TEST_SELECTOR = netbox_diode_plugin
14+
endif
15+
716
.PHONY: docker-compose-netbox-plugin-up
817
docker-compose-netbox-plugin-up:
9-
@$(DOCKER_COMPOSE) -f docker/docker-compose.yaml up -d --build
18+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml up -d --build
1019

1120
.PHONY: docker-compose-netbox-plugin-down
1221
docker-compose-netbox-plugin-down:
13-
@$(DOCKER_COMPOSE) -f docker/docker-compose.yaml down
22+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml down
1423

1524
.PHONY: docker-compose-netbox-plugin-test
1625
docker-compose-netbox-plugin-test:
17-
-@$(DOCKER_COMPOSE) -f docker/docker-compose.yaml -f docker/docker-compose.test.yaml run -u root --rm netbox ./manage.py test $(TEST_FLAGS) --keepdb netbox_diode_plugin
18-
@$(MAKE) docker-compose-netbox-plugin-down
26+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run -u root --rm netbox ./manage.py test $(TEST_FLAGS) --keepdb $(TEST_SELECTOR); \
27+
EXIT_CODE=$$?; \
28+
$(MAKE) docker-compose-netbox-plugin-down; \
29+
exit $$EXIT_CODE
30+
31+
.PHONY: docker-compose-netbox-plugin-test-lint
32+
docker-compose-netbox-plugin-test-lint:
33+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run -u root --rm netbox ruff check --output-format=github netbox_diode_plugin; \
34+
EXIT_CODE=$$?; \
35+
$(MAKE) docker-compose-netbox-plugin-down; \
36+
exit $$EXIT_CODE
1937

2038
.PHONY: docker-compose-netbox-plugin-test-cover
2139
docker-compose-netbox-plugin-test-cover:
22-
-@$(DOCKER_COMPOSE) -f docker/docker-compose.yaml -f docker/docker-compose.test.yaml run --rm -u root -e COVERAGE_FILE=/opt/netbox/netbox/coverage/.coverage netbox sh -c "coverage run --source=netbox_diode_plugin --omit=*/migrations/* ./manage.py test --keepdb netbox_diode_plugin && coverage xml -o /opt/netbox/netbox/coverage/report.xml && coverage report -m | tee /opt/netbox/netbox/coverage/report.txt"
23-
@$(MAKE) docker-compose-netbox-plugin-down
40+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run --rm -u root -e COVERAGE_FILE=/opt/netbox/netbox/coverage/.coverage netbox sh -c "coverage run --source=netbox_diode_plugin --omit=*/migrations/* ./manage.py test --keepdb $(TEST_SELECTOR) && coverage xml -o /opt/netbox/netbox/coverage/report.xml && coverage report -m | tee /opt/netbox/netbox/coverage/report.txt"; \
41+
EXIT_CODE=$$?; \
42+
$(MAKE) docker-compose-netbox-plugin-down; \
43+
exit $$EXIT_CODE
44+
45+
.PHONY: docker-compose-generate-matching-docs
46+
docker-compose-generate-matching-docs:
47+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run --rm netbox python manage.py generate_matching_docs | awk '/Generating markdown documentation.../{p=1;next} p' > ./docs/matching-criteria-documentation.md
48+
49+
.PHONY: docker-compose-migrate
50+
docker-compose-migrate:
51+
@$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run --rm netbox python manage.py migrate

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ at [https://netboxlabs.com/blog/introducing-diode-streamlining-data-ingestion-in
1717
| >= 3.7.2 | 0.1.0 |
1818
| >= 4.1.0 | 0.4.0 |
1919
| >= 4.2.3 | 1.0.0 |
20+
| >= 4.2.3 | 1.1.0 |
21+
| >= 4.2.3 | 1.2.0 |
22+
| >= 4.4.0 | 1.4.0 |
23+
| >= 4.4.0 | 1.4.1 |
2024

2125
## Installation
2226

@@ -97,6 +101,12 @@ cd /opt/netbox/netbox
97101
make docker-compose-netbox-plugin-test
98102
```
99103

104+
## Generating Documentation
105+
Generates documentation on how diode entities are matched. The generated documentation is output to [here](./docs/matching-criteria-documentation.md).
106+
```shell
107+
make docker-compose-generate-matching-docs
108+
```
109+
100110
## License
101111

102112
Distributed under the NetBox Limited Use License 1.0. See [LICENSE.md](./LICENSE.md) for more information.

docker/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM netboxcommunity/netbox:v4.4.2-3.4.1
2+
3+
COPY ./netbox/configuration/ /etc/netbox/config/
4+
RUN chmod 755 /etc/netbox/config/* && \
5+
chown unit:root /etc/netbox/config/*
6+
7+
COPY ./netbox/local_settings.py /opt/netbox/netbox/netbox/local_settings.py
8+
RUN chmod 755 /opt/netbox/netbox/netbox/local_settings.py && \
9+
chown unit:root /opt/netbox/netbox/netbox/local_settings.py
10+
11+
COPY ./requirements-diode-netbox-plugin.txt /opt/netbox/
12+
ENV VIRTUAL_ENV=/opt/netbox/venv
13+
RUN /usr/local/bin/uv pip install -r /opt/netbox/requirements-diode-netbox-plugin.txt

docker/docker-compose.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: diode-netbox-plugin
22
services:
33
netbox: &netbox
4-
image: netboxcommunity/netbox:v4.2.3-3.1.1-diode-netbox-plugin
4+
image: netboxcommunity/netbox:v4.4.2-3.4.1-diode-netbox-plugin
55
build:
66
context: .
7-
dockerfile: Dockerfile-diode-netbox-plugin
7+
dockerfile: Dockerfile
88
pull: true
99
depends_on:
1010
- netbox-postgres

0 commit comments

Comments
 (0)