summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 08:47:14 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 08:47:14 +0000
commit0ed6da430083d65451a9a96bca60928a35974a16 (patch)
tree03fa06ef6f5ce7f9fd0d6d905b3f1fab5b3a39dd
parent8f0ad7b9eecd4256facc5fdfd21d51a95b52112a (diff)
automatic import of python-netbox-plugin-prometheus-sdopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-netbox-plugin-prometheus-sd.spec360
-rw-r--r--sources1
3 files changed, 362 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..480d3e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/netbox_plugin_prometheus_sd-0.6.3.tar.gz
diff --git a/python-netbox-plugin-prometheus-sd.spec b/python-netbox-plugin-prometheus-sd.spec
new file mode 100644
index 0000000..f5bcee4
--- /dev/null
+++ b/python-netbox-plugin-prometheus-sd.spec
@@ -0,0 +1,360 @@
+%global _empty_manifest_terminate_build 0
+Name: python-netbox-plugin-prometheus-sd
+Version: 0.6.3
+Release: 1
+Summary: A Netbox plugin to provide Netbox entires to Prometheus HTTP service discovery
+License: MIT
+URL: https://pypi.org/project/netbox-plugin-prometheus-sd/
+Source0: https://mirrors.aliyun.com/pypi/web/packages/62/56/3fef3480177f1e5a92dc93281ce000ff6ea8024eebc9382b81da73fcc2f1/netbox_plugin_prometheus_sd-0.6.3.tar.gz
+BuildArch: noarch
+
+
+%description
+# netbox-plugin-prometheus-sd
+
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![CI](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/workflows/CI/badge.svg?event=push)](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI)
+[![PyPI](https://img.shields.io/pypi/v/netbox-plugin-prometheus-sd)](https://pypi.org/project/netbox-plugin-prometheus-sd/)
+
+Provide Prometheus http_sd compatible API Endpoint with data from Netbox.
+
+HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files.
+This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus.
+
+## Compatibility
+
+We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions.
+All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets.
+
+## Installation
+
+The plugin is available as a Python package in pypi and can be installed with pip
+
+ pip install netbox-plugin-prometheus-sd
+
+Enable the plugin in /opt/netbox/netbox/netbox/configuration.py:
+
+ PLUGINS = ['netbox_prometheus_sd']
+
+The plugin has not further plugin configuration at the moment.
+
+## Usage
+
+The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation.
+
+### API
+
+The plugin reuses Netbox API view sets with new serializers for Prometheus.
+This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets.
+Paging is disabled because Prometheus does not support paged results.
+
+The plugin also reuses the Netbox authentication and permission model.
+Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox.
+
+```
+GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format
+GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format
+GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format
+```
+
+### Example
+
+A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers.
+
+The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery.
+
+Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`.
+
+Push some example devices and objects to Netbox using the initializers:
+
+```
+docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers
+```
+
+Netbox content should then be available in the service discovery tab.
+
+## Development
+
+We use Poetry for dependency management and invoke as task runner.
+As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers.
+
+All code to run in docker is located under `development`.
+To start a virtual env managed by poetry run `poetry shell`.
+All following commands are started inside this environment.
+
+In order to run tests invoke the test steps
+
+``` bash
+# Execute all tests
+invoke tests
+
+# Execute unit tests only
+invoke unittest
+```
+
+Features should be covered by a unit test, but some times it's easier to develop on an running system.
+
+``` bash
+# Start a local Netbox with docker
+invoke start
+
+# Create an user named `admin`
+invoke create-user
+```
+
+Visit http://localhost:8000 and log in with the new user.
+You can now define Netbox entities and test around.
+
+API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/
+
+
+%package -n python3-netbox-plugin-prometheus-sd
+Summary: A Netbox plugin to provide Netbox entires to Prometheus HTTP service discovery
+Provides: python-netbox-plugin-prometheus-sd
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-netbox-plugin-prometheus-sd
+# netbox-plugin-prometheus-sd
+
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![CI](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/workflows/CI/badge.svg?event=push)](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI)
+[![PyPI](https://img.shields.io/pypi/v/netbox-plugin-prometheus-sd)](https://pypi.org/project/netbox-plugin-prometheus-sd/)
+
+Provide Prometheus http_sd compatible API Endpoint with data from Netbox.
+
+HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files.
+This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus.
+
+## Compatibility
+
+We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions.
+All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets.
+
+## Installation
+
+The plugin is available as a Python package in pypi and can be installed with pip
+
+ pip install netbox-plugin-prometheus-sd
+
+Enable the plugin in /opt/netbox/netbox/netbox/configuration.py:
+
+ PLUGINS = ['netbox_prometheus_sd']
+
+The plugin has not further plugin configuration at the moment.
+
+## Usage
+
+The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation.
+
+### API
+
+The plugin reuses Netbox API view sets with new serializers for Prometheus.
+This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets.
+Paging is disabled because Prometheus does not support paged results.
+
+The plugin also reuses the Netbox authentication and permission model.
+Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox.
+
+```
+GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format
+GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format
+GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format
+```
+
+### Example
+
+A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers.
+
+The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery.
+
+Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`.
+
+Push some example devices and objects to Netbox using the initializers:
+
+```
+docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers
+```
+
+Netbox content should then be available in the service discovery tab.
+
+## Development
+
+We use Poetry for dependency management and invoke as task runner.
+As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers.
+
+All code to run in docker is located under `development`.
+To start a virtual env managed by poetry run `poetry shell`.
+All following commands are started inside this environment.
+
+In order to run tests invoke the test steps
+
+``` bash
+# Execute all tests
+invoke tests
+
+# Execute unit tests only
+invoke unittest
+```
+
+Features should be covered by a unit test, but some times it's easier to develop on an running system.
+
+``` bash
+# Start a local Netbox with docker
+invoke start
+
+# Create an user named `admin`
+invoke create-user
+```
+
+Visit http://localhost:8000 and log in with the new user.
+You can now define Netbox entities and test around.
+
+API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/
+
+
+%package help
+Summary: Development documents and examples for netbox-plugin-prometheus-sd
+Provides: python3-netbox-plugin-prometheus-sd-doc
+%description help
+# netbox-plugin-prometheus-sd
+
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![CI](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/workflows/CI/badge.svg?event=push)](https://github.com/FlxPeters/netbox-plugin-prometheus-sd/actions?query=workflow%3ACI)
+[![PyPI](https://img.shields.io/pypi/v/netbox-plugin-prometheus-sd)](https://pypi.org/project/netbox-plugin-prometheus-sd/)
+
+Provide Prometheus http_sd compatible API Endpoint with data from Netbox.
+
+HTTP SD is a new feature in Prometheus 2.28.0 that allows hosts to be found via a URL instead of just files.
+This plugin implements API endpoints in Netbox to make devices, IPs and virtual machines available to Prometheus.
+
+## Compatibility
+
+We aim to support the latest major versions of Netbox. For now we Support Netbox `2.11`, `3.0`, `3.1`, `3.2` and `3.3` including bugfix versions.
+All relevant target versions are tested in CI. Have a look at the Github Actions definition for the current build targets.
+
+## Installation
+
+The plugin is available as a Python package in pypi and can be installed with pip
+
+ pip install netbox-plugin-prometheus-sd
+
+Enable the plugin in /opt/netbox/netbox/netbox/configuration.py:
+
+ PLUGINS = ['netbox_prometheus_sd']
+
+The plugin has not further plugin configuration at the moment.
+
+## Usage
+
+The plugin only provides a new API endpoint on the Netbox API. There is no further action required after installation.
+
+### API
+
+The plugin reuses Netbox API view sets with new serializers for Prometheus.
+This means that all filters that can be used on the Netbox api can also be used to filter Prometheus targets.
+Paging is disabled because Prometheus does not support paged results.
+
+The plugin also reuses the Netbox authentication and permission model.
+Depending on the Netbox configuration, a token with valid object permissions must be passed to Netbox.
+
+```
+GET /api/plugins/prometheus-sd/devices/ Get a list of devices in a prometheus compatible format
+GET /api/plugins/prometheus-sd/virtual-machines/ Get a list of vms in a prometheus compatible format
+GET /api/plugins/prometheus-sd/ip-addresses/ Get a list of ip in a prometheus compatible format
+```
+
+### Example
+
+A working example on how to use this plugin with Prometheus is located at the `example` folder. Netbox content is created by using Netbox docker initializers.
+
+The demo data doesn't make sense, but they are good enough for demonstrating how to configure Prometheus and get demo data to Prometheus service discovery.
+
+Go to the `example` folder and run `docker-compose up`. Prometheus should get available on `http://localhost:9090`.
+
+Push some example devices and objects to Netbox using the initializers:
+
+```
+docker-compose exec netbox /opt/netbox/netbox/manage.py load_initializer_data --path /opt/netbox/initializers
+```
+
+Netbox content should then be available in the service discovery tab.
+
+## Development
+
+We use Poetry for dependency management and invoke as task runner.
+As Netbox plugins cannot be tested standalone, we need invoke to start all code embedded in Netbox Docker containers.
+
+All code to run in docker is located under `development`.
+To start a virtual env managed by poetry run `poetry shell`.
+All following commands are started inside this environment.
+
+In order to run tests invoke the test steps
+
+``` bash
+# Execute all tests
+invoke tests
+
+# Execute unit tests only
+invoke unittest
+```
+
+Features should be covered by a unit test, but some times it's easier to develop on an running system.
+
+``` bash
+# Start a local Netbox with docker
+invoke start
+
+# Create an user named `admin`
+invoke create-user
+```
+
+Visit http://localhost:8000 and log in with the new user.
+You can now define Netbox entities and test around.
+
+API endpoints for testing can be found at http://localhost:8000/api/plugins/prometheus-sd/
+
+
+%prep
+%autosetup -n netbox_plugin_prometheus_sd-0.6.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-netbox-plugin-prometheus-sd -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..b39e834
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+45927244d0d67db60cf0a59485309210 netbox_plugin_prometheus_sd-0.6.3.tar.gz