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.7.0";
26 pyproject = true;
27
28 disabled = pythonOlder "3.8";
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-lMrQ8PTBYc7VKl7NhdE0/Wc7mX2nGUoDHAymk0Q0Cw0=";
33 };
34
35 nativeBuildInputs = [
36 openstackdocstheme
37 sphinxcontrib-apidoc
38 sphinxHook
39 ];
40
41 sphinxBuilders = [ "man" ];
42
43 build-system = [ setuptools ];
44
45 dependencies = [
46 iso8601
47 keystoneauth1
48 oslo-i18n
49 oslo-serialization
50 pbr
51 prettytable
52 ];
53
54 nativeCheckInputs = [
55 ddt
56 openssl
57 requests-mock
58 stestr
59 testscenarios
60 ];
61
62 checkPhase = ''
63 runHook preCheck
64 stestr run -e <(echo "
65 novaclient.tests.unit.test_shell.ParserTest.test_ambiguous_option
66 novaclient.tests.unit.test_shell.ParserTest.test_not_really_ambiguous_option
67 novaclient.tests.unit.test_shell.ShellTest.test_osprofiler
68 novaclient.tests.unit.test_shell.ShellTestKeystoneV3.test_osprofiler
69 ")
70 runHook postCheck
71 '';
72
73 pythonImportsCheck = [ "novaclient" ];
74
75 meta = with lib; {
76 description = "Client library for OpenStack Compute API";
77 mainProgram = "nova";
78 homepage = "https://github.com/openstack/python-novaclient";
79 license = licenses.asl20;
80 maintainers = teams.openstack.members;
81 };
82}