nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 ddt,
6 openstackdocstheme,
7 osc-lib,
8 osc-placement,
9 pbr,
10 python-aodhclient,
11 python-barbicanclient,
12 python-cinderclient,
13 python-designateclient,
14 python-heatclient,
15 python-ironicclient,
16 python-keystoneclient,
17 python-magnumclient,
18 python-manilaclient,
19 python-mistralclient,
20 python-neutronclient,
21 python-octaviaclient,
22 python-openstackclient,
23 python-watcherclient,
24 python-zaqarclient,
25 python-zunclient,
26 requests-mock,
27 requests,
28 setuptools,
29 sphinxHook,
30 sphinxcontrib-apidoc,
31 stestr,
32 testers,
33}:
34
35buildPythonPackage rec {
36 pname = "python-openstackclient";
37 version = "8.3.0";
38 pyproject = true;
39
40 src = fetchPypi {
41 pname = "python_openstackclient";
42 inherit version;
43 hash = "sha256-zHsy5F8Lju2SFeAhiuoCUmYZpeewaCsngXaRNK/Xb/g=";
44 };
45
46 build-system = [
47 openstackdocstheme
48 setuptools
49 sphinxHook
50 sphinxcontrib-apidoc
51 ];
52
53 sphinxBuilders = [ "man" ];
54
55 dependencies = [
56 osc-lib
57 pbr
58 python-cinderclient
59 python-keystoneclient
60 requests
61 ]
62 # to support proxy envs like ALL_PROXY in requests
63 ++ requests.optional-dependencies.socks;
64
65 nativeCheckInputs = [
66 ddt
67 requests-mock
68 stestr
69 ];
70
71 checkPhase = ''
72 runHook preCheck
73 stestr run -E \
74 "openstackclient.tests.unit.volume.v3.test_volume.(TestVolumeCreate|TestVolumeShow)"
75 runHook postCheck
76 '';
77
78 pythonImportsCheck = [ "openstackclient" ];
79
80 optional-dependencies = {
81 # See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst
82 cli-plugins = [
83 osc-placement
84 python-aodhclient
85 python-barbicanclient
86 python-designateclient
87 python-heatclient
88 python-ironicclient
89 python-magnumclient
90 python-manilaclient
91 python-mistralclient
92 python-neutronclient
93 python-octaviaclient
94 python-watcherclient
95 python-zaqarclient
96 python-zunclient
97 ];
98 };
99
100 passthru = {
101 tests.version = testers.testVersion {
102 package = python-openstackclient;
103 command = "openstack --version";
104 };
105 };
106
107 meta = {
108 description = "OpenStack Command-line Client";
109 mainProgram = "openstack";
110 homepage = "https://github.com/openstack/python-openstackclient";
111 license = lib.licenses.asl20;
112 teams = [ lib.teams.openstack ];
113 };
114}