1{
2 lib,
3 buildPythonPackage,
4 docker,
5 fetchFromGitHub,
6 keystoneauth1,
7 openstackdocstheme,
8 osc-lib,
9 oslo-i18n,
10 oslo-log,
11 oslo-utils,
12 pbr,
13 prettytable,
14 pythonOlder,
15 setuptools,
16 sphinxHook,
17 stestr,
18 websocket-client,
19}:
20
21buildPythonPackage rec {
22 pname = "python-zunclient";
23 version = "5.3.0";
24 pyproject = true;
25
26 disabled = pythonOlder "3.8";
27
28 src = fetchFromGitHub {
29 owner = "openstack";
30 repo = "python-zunclient";
31 tag = version;
32 hash = "sha256-qBpsahkVZEQwsVcNJFtRSJvvxGITauAJ6Zv8p+70hh0=";
33 };
34
35 env.PBR_VERSION = version;
36
37 build-system = [
38 pbr
39 setuptools
40 ];
41
42 nativeBuildInputs = [
43 openstackdocstheme
44 sphinxHook
45 ];
46
47 sphinxBuilders = [ "man" ];
48
49 # python-openstackclient is unused upstream
50 # and will cause infinite recursion in openstackclient-full package.
51 pythonRemoveDeps = [ "python-openstackclient" ];
52
53 dependencies = [
54 docker
55 keystoneauth1
56 osc-lib
57 oslo-i18n
58 oslo-log
59 oslo-utils
60 prettytable
61 websocket-client
62 ];
63
64 nativeCheckInputs = [ stestr ];
65
66 checkPhase = ''
67 runHook preCheck
68 stestr run -e <(echo "
69 zunclient.tests.unit.test_shell.ShellTest.test_main_endpoint_internal
70 zunclient.tests.unit.test_shell.ShellTest.test_main_endpoint_public
71 zunclient.tests.unit.test_shell.ShellTest.test_main_env_region
72 zunclient.tests.unit.test_shell.ShellTest.test_main_no_region
73 zunclient.tests.unit.test_shell.ShellTest.test_main_option_region
74 zunclient.tests.unit.test_shell.ShellTestKeystoneV3.test_main_endpoint_internal
75 zunclient.tests.unit.test_shell.ShellTestKeystoneV3.test_main_endpoint_public
76 zunclient.tests.unit.test_shell.ShellTestKeystoneV3.test_main_env_region
77 zunclient.tests.unit.test_shell.ShellTestKeystoneV3.test_main_no_region
78 zunclient.tests.unit.test_shell.ShellTestKeystoneV3.test_main_option_region
79 ")
80 runHook postCheck
81 '';
82
83 pythonImportsCheck = [ "zunclient" ];
84
85 meta = {
86 homepage = "https://github.com/openstack/python-zunclient";
87 description = "Client library for OpenStack Zun API";
88 license = lib.licenses.asl20;
89 mainProgram = "zun";
90 teams = [ lib.teams.openstack ];
91 };
92}