diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix index 9eeb42b0b8c4..cecbc6fd1d26 100644 --- a/pkgs/development/python-modules/keystoneauth1/default.nix +++ b/pkgs/development/python-modules/keystoneauth1/default.nix @@ -24,11 +24,11 @@ buildPythonPackage rec { pname = "keystoneauth1"; - version = "4.3.1"; + version = "4.4.0"; src = fetchPypi { inherit pname version; - sha256 = "93605430a6d1424f31659bc5685e9dc1be9a6254e88c99f00cffc0a60c648a64"; + sha256 = "34662a6be67ab29424aabe6f99a8d7eb6b88d293109a07e60fea123ebffb314f"; }; postPatch = '' diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix index 5e7442ebc5f0..ec45fd8d09b8 100644 --- a/pkgs/development/python-modules/openstacksdk/default.nix +++ b/pkgs/development/python-modules/openstacksdk/default.nix @@ -1,26 +1,20 @@ { lib , buildPythonPackage +, callPackage , fetchPypi , appdirs , cryptography -, ddt , dogpile_cache -, hacking , jmespath , jsonpatch -, jsonschema , keystoneauth1 , munch , netifaces , os-service-types -, oslo-config -, oslotest , pbr -, prometheus-client -, requests-mock +, pyyaml , requestsexceptions -, stestr -, testscenarios +, stdenv }: buildPythonPackage rec { @@ -44,35 +38,15 @@ buildPythonPackage rec { os-service-types pbr requestsexceptions + pyyaml ]; - checkInputs = [ - ddt - hacking - jsonschema - oslo-config - oslotest - prometheus-client - requests-mock - stestr - testscenarios - ]; + # Checks moved to 'passthru.tests' to workaround slowness + doCheck = false; - checkPhase = '' - stestr run -e <(echo " - openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task - openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396 - openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait - openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails - openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute - openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match - openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none - openstack.tests.unit.test_stats.TestStats.test_list_projects - openstack.tests.unit.test_stats.TestStats.test_projects - openstack.tests.unit.test_stats.TestStats.test_servers - openstack.tests.unit.test_stats.TestStats.test_servers_no_detail - ") - ''; + passthru.tests = { + tests = callPackage ./tests.nix { }; + }; pythonImportsCheck = [ "openstack" ]; diff --git a/pkgs/development/python-modules/openstacksdk/tests.nix b/pkgs/development/python-modules/openstacksdk/tests.nix new file mode 100644 index 000000000000..7a379d3a019e --- /dev/null +++ b/pkgs/development/python-modules/openstacksdk/tests.nix @@ -0,0 +1,65 @@ +{ buildPythonPackage +, ddt +, hacking +, jsonschema +, lib +, openstacksdk +, oslo-config +, oslotest +, prometheus-client +, requests-mock +, stdenv +, stestr +, testscenarios +}: + +buildPythonPackage rec { + pname = "openstacksdk-tests"; + inherit (openstacksdk) version; + + src = openstacksdk.src; + + dontBuild = true; + dontInstall = true; + + checkInputs = [ + ddt + hacking + jsonschema + openstacksdk + oslo-config + oslotest + prometheus-client + requests-mock + stestr + testscenarios + ]; + + checkPhase = + let aarch64TestsExcluded = lib.optionalString stdenv.hostPlatform.isAarch64 '' + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries + openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists + openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force + openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second + openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found + ''; in + '' + stestr run -e <(echo "${aarch64TestsExcluded} + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait + openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait + openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task + openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396 + openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match + openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none + openstack.tests.unit.test_stats.TestStats.test_list_projects + openstack.tests.unit.test_stats.TestStats.test_projects + openstack.tests.unit.test_stats.TestStats.test_servers + openstack.tests.unit.test_stats.TestStats.test_servers_no_detail + ") + ''; +} diff --git a/pkgs/development/python-modules/osc-lib/default.nix b/pkgs/development/python-modules/osc-lib/default.nix index 8d0f9d51fb00..560c8869b00f 100644 --- a/pkgs/development/python-modules/osc-lib/default.nix +++ b/pkgs/development/python-modules/osc-lib/default.nix @@ -13,11 +13,11 @@ buildPythonPackage rec { pname = "osc-lib"; - version = "2.4.1"; + version = "2.4.2"; src = fetchPypi { inherit pname version; - sha256 = "1ianpk32vwdllpbk4zhfifqb5b064cbmia2hm02lcrh2m76z0zi5"; + sha256 = "d6b530e3e50646840a6a5ef134e00f285cc4a04232c163f28585226ed40cc968"; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix new file mode 100644 index 000000000000..754bac51ea68 --- /dev/null +++ b/pkgs/development/python-modules/python-glanceclient/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonApplication +, fetchPypi +, coreutils +, pbr +, prettytable +, keystoneauth1 +, requests +, warlock +, oslo-utils +, oslo-i18n +, wrapt +, pyopenssl +, stestr +, testscenarios +, ddt +, requests-mock +}: + +buildPythonApplication rec { + pname = "python-glanceclient"; + version = "3.5.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "417b9d814b43e62df4351f26a0d5569b801e9f99f7758bd8c82ef994c3629356"; + }; + + postPatch = '' + substituteInPlace glanceclient/tests/unit/v1/test_shell.py \ + --replace "/bin/echo" "${coreutils}/bin/echo" + ''; + + propagatedBuildInputs = [ + pbr + prettytable + keystoneauth1 + requests + warlock + oslo-utils + oslo-i18n + wrapt + pyopenssl + ]; + + checkInputs = [ + stestr + testscenarios + ddt + requests-mock + ]; + + checkPhase = '' + stestr run + ''; + + pythonImportsCheck = [ "glanceclient" ]; + + meta = with lib; { + description = "Python bindings for the OpenStack Images API"; + homepage = "https://github.com/openstack/python-glanceclient/"; + license = licenses.asl20; + maintainers = teams.openstack.members; + }; +} diff --git a/pkgs/development/python-modules/python-heatclient/default.nix b/pkgs/development/python-modules/python-heatclient/default.nix new file mode 100644 index 000000000000..cab28ef016d9 --- /dev/null +++ b/pkgs/development/python-modules/python-heatclient/default.nix @@ -0,0 +1,69 @@ +{ lib +, buildPythonApplication +, fetchPypi +, pbr +, Babel +, cliff +, iso8601 +, osc-lib +, prettytable +, oslo-i18n +, oslo-serialization +, oslo-utils +, keystoneauth1 +, python-swiftclient +, pyyaml +, requests +, six +, stestr +, testscenarios +, requests-mock +}: + +buildPythonApplication rec { + pname = "python-heatclient"; + version = "2.4.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "b53529eb73f08c384181a580efaa42293cc35e0e1ecc4b0bc14a5c7b202019bb"; + }; + + propagatedBuildInputs = [ + pbr + Babel + cliff + iso8601 + osc-lib + prettytable + oslo-i18n + oslo-serialization + oslo-utils + keystoneauth1 + python-swiftclient + pyyaml + requests + six + ]; + + checkInputs = [ + stestr + testscenarios + requests-mock + ]; + + checkPhase = '' + stestr run -e <(echo " + heatclient.tests.unit.test_common_http.HttpClientTest.test_get_system_ca_file + ") + ''; + + pythonImportsCheck = [ "heatclient" ]; + + meta = with lib; { + description = "A client library for Heat built on the Heat orchestration API"; + homepage = "https://github.com/openstack/python-heatclient"; + license = licenses.asl20; + maintainers = teams.openstack.members; + }; +} diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix new file mode 100644 index 000000000000..a09a65a2b4d0 --- /dev/null +++ b/pkgs/development/python-modules/python-ironicclient/default.nix @@ -0,0 +1,63 @@ +{ lib +, buildPythonApplication +, fetchPypi +, pbr +, appdirs +, cliff +, dogpile_cache +, jsonschema +, keystoneauth1 +, openstacksdk +, osc-lib +, oslo-utils +, pyyaml +, requests +, stevedore +, stestr +, requests-mock +, oslotest +}: + +buildPythonApplication rec { + pname = "python-ironicclient"; + version = "4.8.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "b55516a72b995f92fb434619cbc1e2effa604c7fcaa6ac4afb8f5af1ea8193a4"; + }; + + propagatedBuildInputs = [ + pbr + appdirs + cliff + dogpile_cache + jsonschema + keystoneauth1 + openstacksdk + osc-lib + oslo-utils + pyyaml + requests + stevedore + ]; + + checkInputs = [ + stestr + requests-mock + oslotest + ]; + + checkPhase = '' + stestr run + ''; + + pythonImportsCheck = [ "ironicclient" ]; + + meta = with lib; { + description = "A client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal)."; + homepage = "https://github.com/openstack/python-ironicclient"; + license = licenses.asl20; + maintainers = teams.openstack.members; + }; +} diff --git a/pkgs/development/python-modules/python-keystoneclient/default.nix b/pkgs/development/python-modules/python-keystoneclient/default.nix index d91a3a9d3139..8bf7ac5619a4 100644 --- a/pkgs/development/python-modules/python-keystoneclient/default.nix +++ b/pkgs/development/python-modules/python-keystoneclient/default.nix @@ -14,11 +14,11 @@ buildPythonPackage rec { pname = "python-keystoneclient"; - version = "4.2.0"; + version = "4.3.0"; src = fetchPypi { inherit pname version; - sha256 = "12jsiw82x2zcn8sf78xisf85kr28gl3jqj46a0wxx59v91p44j02"; + sha256 = "fd09b7790ce53c20dc94318ec4d76e1cf71908aed59baeb4c7a61c17afd3aad5"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix new file mode 100644 index 000000000000..5ffe1a1ea730 --- /dev/null +++ b/pkgs/development/python-modules/python-manilaclient/default.nix @@ -0,0 +1,58 @@ +{ lib +, buildPythonApplication +, fetchPypi +, pbr +, oslo-config +, oslo-log +, oslo-serialization +, oslo-utils +, prettytable +, requests +, simplejson +, Babel +, osc-lib +, python-keystoneclient +, debtcollector +, callPackage +}: + +buildPythonApplication rec { + pname = "python-manilaclient"; + version = "3.0.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "2d90af35c5beccc53fa6b0f5a3c4b330a065e86924c33c42b017f18943ab2b05"; + }; + + propagatedBuildInputs = [ + pbr + oslo-config + oslo-log + oslo-serialization + oslo-utils + prettytable + requests + simplejson + Babel + osc-lib + python-keystoneclient + debtcollector + ]; + + # Checks moved to 'passthru.tests' to workaround infinite recursion + doCheck = false; + + passthru.tests = { + tests = callPackage ./tests.nix { }; + }; + + pythonImportsCheck = [ "manilaclient" ]; + + meta = with lib; { + description = "Client library for OpenStack Manila API"; + homepage = "https://github.com/openstack/python-manilaclient"; + license = licenses.asl20; + maintainers = teams.openstack.members; + }; +} diff --git a/pkgs/development/python-modules/python-manilaclient/tests.nix b/pkgs/development/python-modules/python-manilaclient/tests.nix new file mode 100644 index 000000000000..61615456225a --- /dev/null +++ b/pkgs/development/python-modules/python-manilaclient/tests.nix @@ -0,0 +1,31 @@ +{ buildPythonPackage +, python-manilaclient +, stestr +, ddt +, tempest +, mock +, python-openstackclient +}: + +buildPythonPackage rec { + pname = "python-manilaclient-tests"; + inherit (python-manilaclient) version; + + src = python-manilaclient.src; + + dontBuild = true; + dontInstall = true; + + checkInputs = [ + python-manilaclient + stestr + ddt + tempest + mock + python-openstackclient + ]; + + checkPhase = '' + stestr run + ''; +} diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix index c38431f1c788..aebc5d75988c 100644 --- a/pkgs/development/python-modules/python-swiftclient/default.nix +++ b/pkgs/development/python-modules/python-swiftclient/default.nix @@ -29,6 +29,8 @@ buildPythonApplication rec { stestr run ''; + pythonImportsCheck = [ "swiftclient" ]; + meta = with lib; { homepage = "https://github.com/openstack/python-swiftclient"; description = "Python bindings to the OpenStack Object Storage API"; diff --git a/pkgs/development/python-modules/tempest/default.nix b/pkgs/development/python-modules/tempest/default.nix new file mode 100644 index 000000000000..760c9fd5e3d2 --- /dev/null +++ b/pkgs/development/python-modules/tempest/default.nix @@ -0,0 +1,89 @@ +{ lib +, buildPythonApplication +, fetchPypi +, pbr +, cliff +, jsonschema +, testtools +, paramiko +, netaddr +, oslo-concurrency +, oslo-config +, oslo-log +, stestr +, oslo-serialization +, oslo-utils +, fixtures +, pyyaml +, subunit +, stevedore +, prettytable +, urllib3 +, debtcollector +, unittest2 +, hacking +, oslotest +, bash +, python3 +}: + +buildPythonApplication rec { + pname = "tempest"; + version = "28.0.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "24fcc0baa2044454b17b6b4aa2b1b19682cf95eb92ca38a2f289d3cbc488b170"; + }; + + propagatedBuildInputs = [ + pbr + cliff + jsonschema + testtools + paramiko + netaddr + oslo-concurrency + oslo-config + oslo-log + stestr + oslo-serialization + oslo-utils + fixtures + pyyaml + subunit + stevedore + prettytable + urllib3 + debtcollector + unittest2 + ]; + + checkInputs = [ + stestr + hacking + oslotest + ]; + + checkPhase = '' + # Tests expect these applications available as such. + mkdir -p bin + export PATH="$PWD/bin:$PATH" + printf '#!${bash}/bin/bash\nexec ${python3.interpreter} -m tempest.cmd.main "$@"\n' > bin/tempest + printf '#!${bash}/bin/bash\nexec ${python3.interpreter} -m tempest.cmd.subunit_describe_calls "$@"\n' > bin/subunit-describe-calls + chmod +x bin/* + + stestr --test-path tempest/tests run -e <(echo " + tempest.tests.lib.cli.test_execute.TestExecute.test_execute_with_prefix + ") + ''; + + pythonImportsCheck = [ "tempest" ]; + + meta = with lib; { + description = "An OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment"; + homepage = "https://github.com/openstack/tempest"; + license = licenses.asl20; + maintainers = teams.openstack.members; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 05693a9a4f48..05773824fccb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5562,8 +5562,14 @@ in { python-ecobee-api = callPackage ../development/python-modules/python-ecobee-api { }; + python-glanceclient = callPackage ../development/python-modules/python-glanceclient { }; + + python-heatclient = callPackage ../development/python-modules/python-heatclient { }; + python-ipmi = callPackage ../development/python-modules/python-ipmi { }; + python-ironicclient = callPackage ../development/python-modules/python-ironicclient { }; + python-izone = callPackage ../development/python-modules/python-izone { }; python-juicenet = callPackage ../development/python-modules/python-juicenet { }; @@ -7276,6 +7282,8 @@ in { python_magic = callPackage ../development/python-modules/python-magic { }; + python-manilaclient = callPackage ../development/python-modules/python-manilaclient { }; + python-mapnik = let boost = pkgs.boost.override { enablePython = true; @@ -8766,6 +8774,8 @@ in { telfhash = callPackage ../development/python-modules/telfhash { }; + tempest = callPackage ../development/python-modules/tempest { }; + tempita = callPackage ../development/python-modules/tempita { }; tempora = callPackage ../development/python-modules/tempora { };