about summary refs log tree commit diff
path: root/pkgs/tools/admin/awslimitchecker
diff options
context:
space:
mode:
authorZak B. Elep <zakame@zakame.net>2021-10-13 22:44:04 +0800
committerZak B. Elep <zakame@zakame.net>2021-10-17 15:12:42 +0800
commitac117c51694b41972226572be41bdee7c27882cf (patch)
tree52c23c8b91b5c1a82bc4c4b68c65591a0c202aea /pkgs/tools/admin/awslimitchecker
parent923342dc6125c9771d1b22af6754c934188601fa (diff)
downloadnixlib-ac117c51694b41972226572be41bdee7c27882cf.tar
nixlib-ac117c51694b41972226572be41bdee7c27882cf.tar.gz
nixlib-ac117c51694b41972226572be41bdee7c27882cf.tar.bz2
nixlib-ac117c51694b41972226572be41bdee7c27882cf.tar.lz
nixlib-ac117c51694b41972226572be41bdee7c27882cf.tar.xz
nixlib-ac117c51694b41972226572be41bdee7c27882cf.tar.zst
nixlib-ac117c51694b41972226572be41bdee7c27882cf.zip
awslimitchecker: init at 12.0.0
Diffstat (limited to 'pkgs/tools/admin/awslimitchecker')
-rw-r--r--pkgs/tools/admin/awslimitchecker/default.nix58
-rw-r--r--pkgs/tools/admin/awslimitchecker/version.patch35
2 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/tools/admin/awslimitchecker/default.nix b/pkgs/tools/admin/awslimitchecker/default.nix
new file mode 100644
index 000000000000..54cf59942233
--- /dev/null
+++ b/pkgs/tools/admin/awslimitchecker/default.nix
@@ -0,0 +1,58 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "awslimitchecker";
+  version = "12.0.0";
+
+  src = fetchFromGitHub {
+    owner = "jantman";
+    repo = "awslimitchecker";
+    rev = version;
+    sha256 = "1p6n4kziyl6sfq7vgga9v88ddwh3sgnfb1m1cx6q25n0wyl7phgv";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    boto3
+    botocore
+    pytz
+    termcolor
+    versionfinder
+  ];
+
+  checkInputs = with python3Packages; [
+    freezegun
+    onetimepass
+    pytestCheckHook
+    pyotp
+    testfixtures
+  ];
+
+  patches = [
+    # Fix the version lookup to use only the hardcoded version in the source package
+    ./version.patch
+  ];
+
+  pytestFlagsArray = [
+    "awslimitchecker/tests"
+  ];
+
+  disabledTestPaths = [
+    # AWS tests that use the network
+    "awslimitchecker/tests/services"
+    "awslimitchecker/tests/test_checker.py"
+    "awslimitchecker/tests/test_runner.py"
+
+    # the version lookup tests as patched above
+    "awslimitchecker/tests/test_version.py"
+  ];
+
+  pythonImportsCheck = [ "awslimitchecker.checker" ];
+
+  meta = with lib; {
+    homepage = "http://awslimitchecker.readthedocs.org";
+    changelog = "https://github.com/jantman/awslimitchecker/blob/${version}/CHANGES.rst";
+    description = "A script and python package to check your AWS service limits and usage via boto3";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ zakame ];
+  };
+}
diff --git a/pkgs/tools/admin/awslimitchecker/version.patch b/pkgs/tools/admin/awslimitchecker/version.patch
new file mode 100644
index 000000000000..6556fb39a5f2
--- /dev/null
+++ b/pkgs/tools/admin/awslimitchecker/version.patch
@@ -0,0 +1,35 @@
+--- a/awslimitchecker/version.py
++++ b/awslimitchecker/version.py
+@@ -111,32 +106,5 @@ def _get_version_info():
+     :returns: awslimitchecker version
+     :rtype: str
+     """
+-    if os.environ.get('VERSIONCHECK_DEBUG', '') != 'true':
+-        for lname in ['versionfinder', 'pip', 'git']:
+-            l = logging.getLogger(lname)
+-            l.setLevel(logging.CRITICAL)
+-            l.propagate = True
+-    try:
+-        vinfo = find_version('awslimitchecker')
+-        dirty = ''
+-        if vinfo.git_is_dirty:
+-            dirty = '*'
+-        tag = vinfo.git_tag
+-        if tag is not None:
+-            tag += dirty
+-        commit = vinfo.git_commit
+-        if commit is not None:
+-            if len(commit) > 7:
+-                commit = commit[:8]
+-            commit += dirty
+-        return AWSLimitCheckerVersion(
+-            vinfo.version,
+-            vinfo.url,
+-            tag=tag,
+-            commit=commit
+-        )
+-    except Exception:
+-        logger.exception("Error checking installed version; this installation "
+-                         "may not be in compliance with the AGPLv3 license:")
+     # fall back to returning just the hard-coded release information
+     return AWSLimitCheckerVersion(_VERSION, _PROJECT_URL)