about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2021-11-16 13:55:09 +0100
committerGitHub <noreply@github.com>2021-11-16 13:55:09 +0100
commit8267af946d4708e898bf1083381b81e10e643c40 (patch)
treeb2bd9100bef14a051a54daf8bf63dfdb853d58b0
parentc6b332cb1a452d6acc3d24d5bebc3f24da5bc3aa (diff)
parentac117c51694b41972226572be41bdee7c27882cf (diff)
Merge pull request #141518 from zakame/contrib/awslimitchecker
-rw-r--r--pkgs/tools/admin/awslimitchecker/default.nix58
-rw-r--r--pkgs/tools/admin/awslimitchecker/version.patch35
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 95 insertions, 0 deletions
diff --git a/pkgs/tools/admin/awslimitchecker/default.nix b/pkgs/tools/admin/awslimitchecker/default.nix
new file mode 100644
index 0000000000000..54cf599422334
--- /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 0000000000000..6556fb39a5f2e
--- /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)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7d34a4cbc22c6..0d185b129095f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1343,6 +1343,8 @@ with pkgs;
 
   awsebcli = callPackage ../tools/virtualization/awsebcli {};
 
+  awslimitchecker = callPackage ../tools/admin/awslimitchecker { };
+
   awslogs = callPackage ../tools/admin/awslogs { };
 
   aws-lambda-rie = callPackage ../tools/admin/aws-lambda-runtime-interface-emulator { };