3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #273562 (add aws-gate package)

This adds aws-gate, an AWS SSM Session manager client and while I'm not
using the program myself, I reviewed the work and did some rudimentary
testing (eg. whether the session-manager-plugin works).

Additionally, it also adds the unix_ar Python package which was used for
the GNU/Linux bootstrap of the aws-gate package but has been patched out
during the review. We decided to keep the unix-ar package nonetheless
since the package seems to be rather low-maintenance and the package
author is willing to keep maintaining the package.

I'm merging this right now because the package is low-impact, meet the
packaging requirements and all builds pass (including the ones for
unix_ar).
This commit is contained in:
aszlig 2023-12-14 23:25:18 +01:00
commit 801d8be719
No known key found for this signature in database
GPG key ID: 684089CE67EBB691
5 changed files with 140 additions and 0 deletions

View file

@ -18441,6 +18441,11 @@
github = "NoneTirex";
githubId = 26038207;
};
tirimia = {
name = "Theodor-Alexandru Irimia";
github = "tirimia";
githubId = 11174371;
};
titanous = {
email = "jonathan@titanous.com";
github = "titanous";

View file

@ -0,0 +1,51 @@
diff --git a/aws_gate/cli.py b/aws_gate/cli.py
index ac37c2f..9743415 100644
--- a/aws_gate/cli.py
+++ b/aws_gate/cli.py
@@ -7,7 +7,6 @@ from marshmallow import ValidationError
from yaml.scanner import ScannerError
from aws_gate import __version__, __description__
-from aws_gate.bootstrap import bootstrap
from aws_gate.config import load_config_from_files
from aws_gate.constants import (
SUPPORTED_KEY_TYPES,
@@ -59,10 +58,14 @@ def get_argument_parser(*args, **kwargs):
# 'bootstrap' subcommand
bootstrap_parser = subparsers.add_parser(
- "bootstrap", help="Download and install session-manager-plugin"
+ "bootstrap",
+ help="Download and install session-manager-plugin (disabled by nix)",
)
bootstrap_parser.add_argument(
- "-f", "--force", action="store_true", help="Forces bootstrap operation"
+ "-f",
+ "--force",
+ action="store_true",
+ help="Forces bootstrap operation (disabled by nix)",
)
# 'exec' subcommand
@@ -268,7 +271,9 @@ def main(args=None, argument_parser=None):
logger.debug('Using AWS profile "%s" in region "%s"', profile, region)
if args.subcommand == "bootstrap":
- bootstrap(force=args.force)
+ print(
+ f"The SSM Plugin will not be downloaded as aws-gate was installed from nixpkgs and the plugin comes pre-bundled. The '--force' flag will not override this behavior."
+ )
elif args.subcommand == "exec":
exec(
config=config,
diff --git a/requirements/requirements.txt b/requirements/requirements.txt
index 50b203e..8c3496f 100644
--- a/requirements/requirements.txt
+++ b/requirements/requirements.txt
@@ -3,5 +3,4 @@ cryptography==39.0.2
marshmallow==3.19.0
packaging==23.0
PyYAML>=5.1,<6.1
-requests==2.28.2
unix-ar==0.2.1
wrapt==1.15.0

View file

@ -0,0 +1,55 @@
{ lib
, fetchFromGitHub
, installShellFiles
, python3Packages
, ssm-session-manager-plugin
}:
python3Packages.buildPythonApplication rec {
pname = "aws-gate";
version = "0.11.3";
pyproject = true;
src = fetchFromGitHub {
owner = "xen0l";
repo = pname;
rev = version;
hash = "sha256-9w2jP4s1HXf1gYiXX05Dt2iXt0bR0U48yc8h9T5M+EQ=";
};
patches = [
./disable-bootstrap.patch
];
postPatch = ''
rm aws_gate/bootstrap.py tests/unit/test_bootstrap.py
'';
nativeBuildInputs = [
python3Packages.setuptools
python3Packages.wheel
installShellFiles
];
propagatedBuildInputs = [ ssm-session-manager-plugin ] ++ builtins.attrValues {
inherit (python3Packages) marshmallow boto3 pyyaml wrapt cryptography;
};
postInstall = ''
installShellCompletion --bash completions/bash/aws-gate
installShellCompletion --zsh completions/zsh/_aws-gate
'';
checkPhase = ''
$out/bin/${pname} --version
'';
meta = with lib; {
description = "Better AWS SSM Session manager CLI client";
homepage = "https://github.com/xen0l/aws-gate";
license = licenses.bsd3;
maintainers = with maintainers; [ tirimia ];
platforms = with platforms; linux ++ darwin;
mainProgram = pname;
};
}

View file

@ -0,0 +1,27 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
}:
buildPythonPackage rec {
pname = "unix-ar";
version = "0.2.1";
format = "wheel";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit format version;
pname = "unix_ar";
hash = "sha256-Kstxi8Ewi/gOW52iYU2CQswv475M2LL9Rxm84Ymq/PE=";
};
meta = with lib; {
description = "AR file handling for Python (including .deb files)";
homepage = "https://github.com/getninjas/unix_ar";
license = licenses.bsd3;
maintainers = with maintainers; [ tirimia ];
platforms = with platforms; linux ++ darwin;
};
}

View file

@ -15519,6 +15519,8 @@ self: super: with self; {
universal-silabs-flasher = callPackage ../development/python-modules/universal-silabs-flasher { };
unix-ar = callPackage ../development/python-modules/unix-ar { };
unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
unrardll = callPackage ../development/python-modules/unrardll { };