From b5fc3a09e191b7401d52b4226fc8ebce8dd7051e Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 27 Jul 2024 19:40:07 +0200 Subject: [PATCH 1/2] openstackclient-full: init Goal of this package is to package OpenStack client with all available OpenStack CLI plugins in NixOS. See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst --- .../python-openstackclient/default.nix | 18 +++++++++++++++++- pkgs/top-level/all-packages.nix | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/python-openstackclient/default.nix b/pkgs/development/python-modules/python-openstackclient/default.nix index 50aa590d6b6a..7460aab4dbbc 100644 --- a/pkgs/development/python-modules/python-openstackclient/default.nix +++ b/pkgs/development/python-modules/python-openstackclient/default.nix @@ -6,8 +6,13 @@ openstackdocstheme, osc-lib, pbr, + python-barbicanclient, python-cinderclient, + python-designateclient, + python-heatclient, + python-ironicclient, python-keystoneclient, + python-manilaclient, python-novaclient, requests-mock, setuptools, @@ -45,8 +50,8 @@ buildPythonPackage rec { nativeCheckInputs = [ ddt - stestr requests-mock + stestr ]; checkPhase = '' @@ -57,6 +62,17 @@ buildPythonPackage rec { pythonImportsCheck = [ "openstackclient" ]; + passthru.optional-dependencies = { + # See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst + cli-plugins = [ + python-barbicanclient + python-designateclient + python-heatclient + python-ironicclient + python-manilaclient + ]; + }; + meta = with lib; { description = "OpenStack Command-line Client"; mainProgram = "openstack"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index de8370e44f07..1bcb4eedce44 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23337,6 +23337,9 @@ with pkgs; openslp = callPackage ../development/libraries/openslp { }; openstackclient = with python311Packages; toPythonApplication python-openstackclient; + openstackclient-full = openstackclient.overridePythonAttrs (oldAttrs: { + dependencies = oldAttrs.dependencies ++ oldAttrs.passthru.optional-dependencies.cli-plugins; + }); barbicanclient = with python311Packages; toPythonApplication python-barbicanclient; glanceclient = with python311Packages; toPythonApplication python-glanceclient; heatclient = with python311Packages; toPythonApplication python-heatclient; From a1e38ef32c8f315f143bb7f80c8ecc13eb839b21 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 27 Jul 2024 19:47:49 +0200 Subject: [PATCH 2/2] openstackclient: add passthru.tests.version --- .../python-openstackclient/default.nix | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/python-openstackclient/default.nix b/pkgs/development/python-modules/python-openstackclient/default.nix index 7460aab4dbbc..e3dd953e93b0 100644 --- a/pkgs/development/python-modules/python-openstackclient/default.nix +++ b/pkgs/development/python-modules/python-openstackclient/default.nix @@ -14,11 +14,13 @@ python-keystoneclient, python-manilaclient, python-novaclient, + python-openstackclient, requests-mock, setuptools, sphinxHook, sphinxcontrib-apidoc, stestr, + testers, }: buildPythonPackage rec { @@ -62,15 +64,21 @@ buildPythonPackage rec { pythonImportsCheck = [ "openstackclient" ]; - passthru.optional-dependencies = { - # See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst - cli-plugins = [ - python-barbicanclient - python-designateclient - python-heatclient - python-ironicclient - python-manilaclient - ]; + passthru = { + optional-dependencies = { + # See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst + cli-plugins = [ + python-barbicanclient + python-designateclient + python-heatclient + python-ironicclient + python-manilaclient + ]; + }; + tests.version = testers.testVersion { + package = python-openstackclient; + command = "openstack --version"; + }; }; meta = with lib; {