1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 cliff,
6 dogpile-cache,
7 jsonschema,
8 keystoneauth1,
9 openstackdocstheme,
10 openstacksdk,
11 osc-lib,
12 oslo-utils,
13 oslotest,
14 pbr,
15 platformdirs,
16 pyyaml,
17 requests,
18 requests-mock,
19 setuptools,
20 sphinxcontrib-apidoc,
21 sphinxHook,
22 stestr,
23 stevedore,
24}:
25
26buildPythonPackage rec {
27 pname = "python-ironicclient";
28 version = "5.7.0";
29 pyproject = true;
30
31 src = fetchPypi {
32 inherit pname version;
33 hash = "sha256-Blx0pr73uZA8eHd2iZ9WY+aozBFWsQhWpxoQKtjtJSk=";
34 };
35
36 build-system = [
37 openstackdocstheme
38 setuptools
39 sphinxcontrib-apidoc
40 sphinxHook
41 ];
42
43 sphinxBuilders = [ "man" ];
44
45 dependencies = [
46 cliff
47 dogpile-cache
48 jsonschema
49 keystoneauth1
50 openstacksdk
51 osc-lib
52 oslo-utils
53 pbr
54 platformdirs
55 pyyaml
56 requests
57 stevedore
58 ];
59
60 nativeCheckInputs = [
61 stestr
62 requests-mock
63 oslotest
64 ];
65
66 checkPhase = ''
67 runHook preCheck
68 stestr run
69 runHook postCheck
70 '';
71
72 pythonImportsCheck = [ "ironicclient" ];
73
74 meta = with lib; {
75 description = "Client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal)";
76 mainProgram = "baremetal";
77 homepage = "https://github.com/openstack/python-ironicclient";
78 license = licenses.asl20;
79 maintainers = teams.openstack.members;
80 };
81}