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-openstackclient,
22 python-watcherclient,
23 python-zaqarclient,
24 python-zunclient,
25 requests-mock,
26 requests,
27 setuptools,
28 sphinxHook,
29 sphinxcontrib-apidoc,
30 stestr,
31 testers,
32}:
33
34buildPythonPackage rec {
35 pname = "python-openstackclient";
36 version = "8.2.0";
37 pyproject = true;
38
39 src = fetchPypi {
40 pname = "python_openstackclient";
41 inherit version;
42 hash = "sha256-1hKvGN/GbMjzHmzpZpC2wnOt6KJA7EC39INaiJb7vgE=";
43 };
44
45 build-system = [
46 openstackdocstheme
47 setuptools
48 sphinxHook
49 sphinxcontrib-apidoc
50 ];
51
52 sphinxBuilders = [ "man" ];
53
54 dependencies = [
55 osc-lib
56 pbr
57 python-cinderclient
58 python-keystoneclient
59 requests
60 ]
61 # to support proxy envs like ALL_PROXY in requests
62 ++ requests.optional-dependencies.socks;
63
64 nativeCheckInputs = [
65 ddt
66 requests-mock
67 stestr
68 ];
69
70 checkPhase = ''
71 runHook preCheck
72 stestr run -E \
73 "openstackclient.tests.unit.network.v2.test_security_group_network.(TestCreateSecurityGroupNetwork.(test_create_with_tags|test_create_with_no_tag|test_create_min_options|test_create_all_options)|TestShowSecurityGroupNetwork.test_show_all_options)"
74 runHook postCheck
75 '';
76
77 pythonImportsCheck = [ "openstackclient" ];
78
79 optional-dependencies = {
80 # See https://github.com/openstack/python-openstackclient/blob/master/doc/source/contributor/plugins.rst
81 cli-plugins = [
82 osc-placement
83 python-aodhclient
84 python-barbicanclient
85 python-designateclient
86 python-heatclient
87 python-ironicclient
88 python-magnumclient
89 python-manilaclient
90 python-mistralclient
91 python-neutronclient
92 python-watcherclient
93 python-zaqarclient
94 python-zunclient
95 ];
96 };
97
98 passthru = {
99 tests.version = testers.testVersion {
100 package = python-openstackclient;
101 command = "openstack --version";
102 };
103 };
104
105 meta = with lib; {
106 description = "OpenStack Command-line Client";
107 mainProgram = "openstack";
108 homepage = "https://github.com/openstack/python-openstackclient";
109 license = licenses.asl20;
110 teams = [ teams.openstack ];
111 };
112}