1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 ddt,
6 iso8601,
7 keystoneauth1,
8 openssl,
9 openstackdocstheme,
10 oslo-i18n,
11 oslo-serialization,
12 pbr,
13 prettytable,
14 pythonOlder,
15 requests-mock,
16 setuptools,
17 sphinxcontrib-apidoc,
18 sphinxHook,
19 stestr,
20 testscenarios,
21}:
22
23buildPythonPackage rec {
24 pname = "python-novaclient";
25 version = "18.11.0";
26 pyproject = true;
27
28 disabled = pythonOlder "3.9";
29
30 src = fetchPypi {
31 pname = "python_novaclient";
32 inherit version;
33 hash = "sha256-CjGuIHedTNFxuynB/k5rIrnH2Xx5Zw21FJu9+sA/V9w=";
34 };
35
36 nativeBuildInputs = [
37 openstackdocstheme
38 sphinxcontrib-apidoc
39 sphinxHook
40 ];
41
42 sphinxBuilders = [ "man" ];
43
44 build-system = [ setuptools ];
45
46 dependencies = [
47 iso8601
48 keystoneauth1
49 oslo-i18n
50 oslo-serialization
51 pbr
52 prettytable
53 ];
54
55 nativeCheckInputs = [
56 ddt
57 openssl
58 requests-mock
59 stestr
60 testscenarios
61 ];
62
63 checkPhase = ''
64 runHook preCheck
65 stestr run -e <(echo "
66 novaclient.tests.unit.test_shell.ParserTest.test_ambiguous_option
67 novaclient.tests.unit.test_shell.ParserTest.test_not_really_ambiguous_option
68 novaclient.tests.unit.test_shell.ShellTest.test_osprofiler
69 novaclient.tests.unit.test_shell.ShellTestKeystoneV3.test_osprofiler
70 ")
71 runHook postCheck
72 '';
73
74 pythonImportsCheck = [ "novaclient" ];
75
76 meta = with lib; {
77 description = "Client library for OpenStack Compute API";
78 mainProgram = "nova";
79 homepage = "https://github.com/openstack/python-novaclient";
80 license = licenses.asl20;
81 teams = [ teams.openstack ];
82 };
83}