1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
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.13.0";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "openstack";
33 repo = "python-ironicclient";
34 tag = version;
35 hash = "sha256-ONQ/xQkpQ/KOECVUsduTi4qshqBZ/dnL/1u9OZZ6y6Y=";
36 };
37
38 build-system = [
39 openstackdocstheme
40 setuptools
41 sphinxcontrib-apidoc
42 sphinxHook
43 ];
44
45 sphinxBuilders = [ "man" ];
46
47 dependencies = [
48 cliff
49 dogpile-cache
50 jsonschema
51 keystoneauth1
52 openstacksdk
53 osc-lib
54 oslo-utils
55 pbr
56 platformdirs
57 pyyaml
58 requests
59 stevedore
60 ];
61
62 nativeCheckInputs = [
63 stestr
64 requests-mock
65 oslotest
66 ];
67
68 env.PBR_VERSION = version;
69
70 checkPhase = ''
71 runHook preCheck
72 stestr run -e <(echo "
73 ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_no_options
74 ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_description
75 ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_extra
76 ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_uuid
77 ironicclient.tests.unit.osc.v1.test_baremetal_conductor.TestBaremetalConductorShow.test_conductor_show
78 ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalCreate
79 ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalShow.test_baremetal_show
80 ironicclient.tests.unit.osc.v1.test_baremetal_node.TestNodeHistoryEventGet.test_baremetal_node_history_list
81 ")
82 runHook postCheck
83 '';
84
85 pythonImportsCheck = [ "ironicclient" ];
86
87 meta = with lib; {
88 description = "Client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal)";
89 mainProgram = "baremetal";
90 homepage = "https://github.com/openstack/python-ironicclient";
91 license = licenses.asl20;
92 teams = [ teams.openstack ];
93 };
94}