git: 0ec5a69f8097 - main - devel/py-fireREST: Add new port

From: Dan Langille <dvl_at_FreeBSD.org>
Date: Thu, 15 Feb 2024 17:46:05 UTC
The branch main has been updated by dvl:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0ec5a69f8097792da685e7428eee2e2068ec1d8f

commit 0ec5a69f8097792da685e7428eee2e2068ec1d8f
Author:     Dan Langille <dvl@FreeBSD.org>
AuthorDate: 2024-02-15 17:40:45 +0000
Commit:     Dan Langille <dvl@FreeBSD.org>
CommitDate: 2024-02-15 17:45:41 +0000

    devel/py-fireREST: Add new port
    
    This port provides an interface to Cisco Firepower Management Center
---
 devel/Makefile                               |  1 +
 devel/py-fireREST/Makefile                   | 31 ++++++++++++++++++++++++++++
 devel/py-fireREST/distinfo                   |  3 +++
 devel/py-fireREST/files/patch-pyproject.toml |  9 ++++++++
 devel/py-fireREST/pkg-descr                  | 19 +++++++++++++++++
 5 files changed, 63 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index a305625d1acf..ee623e27026a 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4681,6 +4681,7 @@
     SUBDIR += py-findlibs
     SUBDIR += py-findpython
     SUBDIR += py-fire
+    SUBDIR += py-fireREST
     SUBDIR += py-first
     SUBDIR += py-fixtures
     SUBDIR += py-flake8
diff --git a/devel/py-fireREST/Makefile b/devel/py-fireREST/Makefile
new file mode 100644
index 000000000000..8894418c1c2c
--- /dev/null
+++ b/devel/py-fireREST/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	fireREST
+PORTVERSION=	1.1.0
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	dvl@FreeBSD.org
+COMMENT=	Interface with Cisco Firepower Management Center
+WWW=		https://github.com/kaisero/fireREST
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pytest-runner>0:devel/py-pytest-runner@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}retry2>0:devel/py-retry2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}simplejson>0:devel/py-simplejson@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3@${PY_FLAVOR}
+
+# Officially: 2.7, 3.5-3.8
+USES=		python:3.7+
+USE_PYTHON=	autoplist concurrent distutils
+
+NO_ARCH=	yes
+
+post-extract:
+	${RM} -rf ${WRKSRC}/test
+
+.include <bsd.port.mk>
diff --git a/devel/py-fireREST/distinfo b/devel/py-fireREST/distinfo
new file mode 100644
index 000000000000..8b0e7fd08003
--- /dev/null
+++ b/devel/py-fireREST/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1706649883
+SHA256 (fireREST-1.1.0.tar.gz) = 24f89b1f3c269933ed33e8a859a29200220d4a3b3b109ea8b9a8f3817a32fb4b
+SIZE (fireREST-1.1.0.tar.gz) = 65795
diff --git a/devel/py-fireREST/files/patch-pyproject.toml b/devel/py-fireREST/files/patch-pyproject.toml
new file mode 100644
index 000000000000..d8e3534bf900
--- /dev/null
+++ b/devel/py-fireREST/files/patch-pyproject.toml
@@ -0,0 +1,9 @@
+--- pyproject.toml.orig	2024-01-30 21:49:37 UTC
++++ pyproject.toml
+@@ -13,5 +13,6 @@ exclude = '''
+   | buck-out
+   | build
+   | dist
++  | test
+ )/
+ '''
diff --git a/devel/py-fireREST/pkg-descr b/devel/py-fireREST/pkg-descr
new file mode 100644
index 000000000000..45fb3b7edf88
--- /dev/null
+++ b/devel/py-fireREST/pkg-descr
@@ -0,0 +1,19 @@
+FireREST is a python library to interface with Cisco Firepower Management Center
+REST API. The goal of FireREST is to provide a simple SDK to programmatically
+interact with FMC.
+
+Features
+
+* Authentication and automatic session refresh / re-authentication
+* Rate-limit detection and automatic backoff and retry behavior
+* Automatic squashing of paginated api payloads
+* Sanitization of api payloads for create and update operations (automatically
+  remove unsupported elements like links, metadata from payload)
+* Detailed logging of api requests and responses
+* API specific error handling using various custom exceptions for typical
+  errors (e.g. ResourceAlreadyExists, UnprocessAbleEntityError, ...)
+* Support for resource lookup by name instead of uuid for all CRUD operations
+
+Import api client
+
+  from fireREST import FMC