From b5fc3a09e191b7401d52b4226fc8ebce8dd7051e Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Sat, 27 Jul 2024 19:40:07 +0200 Subject: [PATCH] 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;