summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--maintainers/team-list.nix2
-rw-r--r--pkgs/development/python-modules/debtcollector/default.nix31
-rw-r--r--pkgs/development/python-modules/debtcollector/tests.nix30
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix12
-rw-r--r--pkgs/development/python-modules/hacking/default.nix51
-rw-r--r--pkgs/development/python-modules/keystoneauth1/default.nix77
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix85
-rw-r--r--pkgs/development/python-modules/os-service-types/default.nix41
-rw-r--r--pkgs/development/python-modules/os-service-types/tests.nix38
-rw-r--r--pkgs/development/python-modules/osc-lib/default.nix52
-rw-r--r--pkgs/development/python-modules/oslo-concurrency/default.nix70
-rw-r--r--pkgs/development/python-modules/oslo-config/default.nix57
-rw-r--r--pkgs/development/python-modules/oslo-config/tests.nix42
-rw-r--r--pkgs/development/python-modules/oslo-context/default.nix40
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix57
-rw-r--r--pkgs/development/python-modules/oslo-i18n/default.nix46
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix54
-rw-r--r--pkgs/development/python-modules/oslo-serialization/default.nix46
-rw-r--r--pkgs/development/python-modules/oslo-utils/default.nix79
-rw-r--r--pkgs/development/python-modules/oslotest/default.nix41
-rw-r--r--pkgs/development/python-modules/oslotest/tests.nix32
-rw-r--r--pkgs/development/python-modules/python-cinderclient/default.nix57
-rw-r--r--pkgs/development/python-modules/python-keystoneclient/default.nix51
-rw-r--r--pkgs/development/python-modules/python-novaclient/default.nix58
-rw-r--r--pkgs/development/python-modules/python-openstackclient/default.nix49
-rw-r--r--pkgs/development/python-modules/stestr/default.nix54
-rw-r--r--pkgs/development/python-modules/stestr/tests.nix32
-rw-r--r--pkgs/development/python-modules/subunit2sql/default.nix55
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/python-aliases.nix1
-rw-r--r--pkgs/top-level/python-packages.nix42
31 files changed, 1378 insertions, 6 deletions
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 391f401306e9..df0c9ce7cf61 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -182,7 +182,7 @@ with lib.maintainers; {
members = [
angustrau
superherointj
- supersandro2000
+ SuperSandro2000
];
scope = "Maintain the ecosystem around OpenStack";
};
diff --git a/pkgs/development/python-modules/debtcollector/default.nix b/pkgs/development/python-modules/debtcollector/default.nix
new file mode 100644
index 000000000000..75555569e235
--- /dev/null
+++ b/pkgs/development/python-modules/debtcollector/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, pbr, six, wrapt, callPackage }:
+
+buildPythonPackage rec {
+ pname = "debtcollector";
+ version = "2.3.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "c7a9fac814ab5904e23905516b18356cc907e7d27c05da58d37103f001967846";
+ };
+
+ nativeBuildInputs = [ pbr ];
+
+ propagatedBuildInputs = [ six wrapt ];
+
+ # check in passthru.tests.pytest to escape infinite recursion with other oslo components
+ doCheck = false;
+
+ passthru.tests = {
+ pytest = callPackage ./tests.nix { };
+ };
+
+ pythonImportsCheck = [ "debtcollector" ];
+
+ meta = with lib; {
+ description = "A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner";
+ homepage = "https://github.com/openstack/debtcollector";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/debtcollector/tests.nix b/pkgs/development/python-modules/debtcollector/tests.nix
new file mode 100644
index 000000000000..cc3171da6d6e
--- /dev/null
+++ b/pkgs/development/python-modules/debtcollector/tests.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, debtcollector
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "debtcollector-tests";
+ inherit (debtcollector) version;
+
+ src = debtcollector.src;
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ dontBuild = true;
+ dontInstall = true;
+
+ checkInputs = [
+ debtcollector
+ stestr
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+}
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index cc8154bcb95e..92ff2cdacaf6 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -1,9 +1,9 @@
{ lib
+, stdenv
, buildPythonPackage
, fetchPypi
, pythonOlder
, dnspython
-, enum34
, greenlet
, monotonic
, six
@@ -22,10 +22,12 @@ buildPythonPackage rec {
sha256 = "2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b";
};
- propagatedBuildInputs = [ dnspython greenlet monotonic six ]
- ++ lib.optional (pythonOlder "3.4") enum34;
+ propagatedBuildInputs = [ dnspython greenlet pyopenssl six ]
+ ++ lib.optional (pythonOlder "3.5") monotonic;
- checkInputs = [ nose pyopenssl ];
+ checkInputs = [ nose ];
+
+ doCheck = !stdenv.isDarwin;
preCheck = ''
echo "nameserver 127.0.0.1" > resolv.conf
@@ -47,7 +49,7 @@ buildPythonPackage rec {
# pythonImportsCheck = [ "eventlet" ];
meta = with lib; {
- homepage = "https://pypi.python.org/pypi/eventlet/";
+ homepage = "https://github.com/eventlet/eventlet/";
description = "A concurrent networking library for Python";
maintainers = with maintainers; [ SuperSandro2000 ];
license = licenses.mit;
diff --git a/pkgs/development/python-modules/hacking/default.nix b/pkgs/development/python-modules/hacking/default.nix
new file mode 100644
index 000000000000..2c345691216d
--- /dev/null
+++ b/pkgs/development/python-modules/hacking/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pbr
+, flake8
+, stestr
+, eventlet
+, ddt
+, testtools
+, testscenarios
+}:
+
+buildPythonPackage rec {
+ pname = "hacking";
+ version = "4.1.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m";
+ };
+
+ postPatch = ''
+ substituteInPlace requirements.txt \
+ --replace "flake8<3.9.0,>=3.8.0" "flake8"
+ '';
+
+ nativeBuildInputs = [ pbr ];
+
+ propagatedBuildInputs = [
+ flake8
+ ];
+
+ checkInputs = [
+ ddt
+ stestr
+ testscenarios
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "hacking" ];
+
+ meta = with lib; {
+ description = "OpenStack Hacking Guideline Enforcement";
+ homepage = "https://github.com/openstack/hacking";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix
new file mode 100644
index 000000000000..9eeb42b0b8c4
--- /dev/null
+++ b/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, betamax
+, hacking
+, iso8601
+, lxml
+, oauthlib
+, os-service-types
+, oslo-config
+, oslo-utils
+, pbr
+, pycodestyle
+, pyyaml
+, requests
+, requests-kerberos
+, requests-mock
+, six
+, stestr
+, stevedore
+, testresources
+, testtools
+}:
+
+buildPythonPackage rec {
+ pname = "keystoneauth1";
+ version = "4.3.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "93605430a6d1424f31659bc5685e9dc1be9a6254e88c99f00cffc0a60c648a64";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ propagatedBuildInputs = [
+ betamax
+ iso8601
+ lxml
+ oauthlib
+ os-service-types
+ pbr
+ requests
+ requests-kerberos
+ six
+ stevedore
+ ];
+
+ checkInputs = [
+ hacking
+ oslo-config
+ oslo-utils
+ pycodestyle
+ pyyaml
+ requests-mock
+ stestr
+ testresources
+ testtools
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "keystoneauth1" ];
+
+ meta = with lib; {
+ description = "Authentication Library for OpenStack Identity";
+ homepage = "https://github.com/openstack/keystoneauth";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
new file mode 100644
index 000000000000..5e7442ebc5f0
--- /dev/null
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -0,0 +1,85 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, appdirs
+, cryptography
+, ddt
+, dogpile_cache
+, hacking
+, jmespath
+, jsonpatch
+, jsonschema
+, keystoneauth1
+, munch
+, netifaces
+, os-service-types
+, oslo-config
+, oslotest
+, pbr
+, prometheus-client
+, requests-mock
+, requestsexceptions
+, stestr
+, testscenarios
+}:
+
+buildPythonPackage rec {
+ pname = "openstacksdk";
+ version = "0.59.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "sha256-PfdgzScjmKv6yM6+Yu64LLxJe7JdTdcHV290qM6avw0=";
+ };
+
+ propagatedBuildInputs = [
+ appdirs
+ cryptography
+ dogpile_cache
+ jmespath
+ jsonpatch
+ keystoneauth1
+ munch
+ netifaces
+ os-service-types
+ pbr
+ requestsexceptions
+ ];
+
+ checkInputs = [
+ ddt
+ hacking
+ jsonschema
+ oslo-config
+ oslotest
+ prometheus-client
+ requests-mock
+ stestr
+ testscenarios
+ ];
+
+ 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
+ ")
+ '';
+
+ pythonImportsCheck = [ "openstack" ];
+
+ meta = with lib; {
+ description = "An SDK for building applications to work with OpenStack";
+ homepage = "https://github.com/openstack/openstacksdk";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/os-service-types/default.nix b/pkgs/development/python-modules/os-service-types/default.nix
new file mode 100644
index 000000000000..990af2ce6b9d
--- /dev/null
+++ b/pkgs/development/python-modules/os-service-types/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pbr
+, six
+, callPackage
+}:
+
+buildPythonPackage rec {
+ pname = "os-service-types";
+ version = "1.7.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "31800299a82239363995b91f1ebf9106ac7758542a1e4ef6dc737a5932878c6c";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ propagatedBuildInputs = [ pbr six ];
+
+ # check in passthru.tests.pytest to escape infinite recursion with other oslo components
+ doCheck = false;
+
+ passthru.tests = {
+ pytest = callPackage ./tests.nix { };
+ };
+
+ pythonImportsCheck = [ "os_service_types" ];
+
+ meta = with lib; {
+ description = "Python library for consuming OpenStack sevice-types-authority data";
+ homepage = "https://github.com/openstack/os-service-types";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/os-service-types/tests.nix b/pkgs/development/python-modules/os-service-types/tests.nix
new file mode 100644
index 000000000000..33f641d14c58
--- /dev/null
+++ b/pkgs/development/python-modules/os-service-types/tests.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, keystoneauth1
+, os-service-types
+, oslotest
+, requests-mock
+, stestr
+, testscenarios
+}:
+
+buildPythonPackage rec {
+ pname = "os-service-types-tests";
+ inherit (os-service-types) version;
+
+ src = os-service-types.src;
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ dontBuild = true;
+ dontInstall = true;
+
+ checkInputs = [
+ os-service-types
+ keystoneauth1
+ oslotest
+ requests-mock
+ stestr
+ testscenarios
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+}
diff --git a/pkgs/development/python-modules/osc-lib/default.nix b/pkgs/development/python-modules/osc-lib/default.nix
new file mode 100644
index 000000000000..8d0f9d51fb00
--- /dev/null
+++ b/pkgs/development/python-modules/osc-lib/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cliff
+, oslo-i18n
+, oslo-utils
+, openstacksdk
+, pbr
+, requests-mock
+, simplejson
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "osc-lib";
+ version = "2.4.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1ianpk32vwdllpbk4zhfifqb5b064cbmia2hm02lcrh2m76z0zi5";
+ };
+
+ nativeBuildInputs = [
+ pbr
+ ];
+
+ propagatedBuildInputs = [
+ cliff
+ openstacksdk
+ oslo-i18n
+ oslo-utils
+ simplejson
+ ];
+
+ checkInputs = [
+ requests-mock
+ stestr
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "osc_lib" ];
+
+ meta = with lib; {
+ description = "OpenStackClient Library";
+ homepage = "https://github.com/openstack/osc-lib";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-concurrency/default.nix b/pkgs/development/python-modules/oslo-concurrency/default.nix
new file mode 100644
index 000000000000..d3d90bfb2235
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-concurrency/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, bash
+, coreutils
+, eventlet
+, fasteners
+, fixtures
+, iana-etc
+, libredirect
+, oslo-config
+, oslo-utils
+, oslotest
+, pbr
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-concurrency";
+ version = "4.4.1";
+
+ src = fetchPypi {
+ pname = "oslo.concurrency";
+ inherit version;
+ sha256 = "6449cfbd15dbab20cf9907bbb2f057e0e5267f97161223d2b516cc8226b17ec3";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+
+ substituteInPlace oslo_concurrency/tests/unit/test_processutils.py \
+ --replace "/bin/bash" "${bash}/bin/bash" \
+ --replace "/bin/true" "${coreutils}/bin/true" \
+ --replace "/usr/bin/env" "${coreutils}/bin/env" \
+ --replace "/usr/bin/true" "${coreutils}/bin/true"
+ '';
+
+ propagatedBuildInputs = [
+ fasteners
+ oslo-config
+ oslo-utils
+ pbr
+ ];
+
+ checkInputs = [
+ eventlet
+ fixtures
+ oslotest
+ stestr
+ ];
+
+ checkPhase = ''
+ echo "nameserver 127.0.0.1" > resolv.conf
+ export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf)
+ export LD_PRELOAD=${libredirect}/lib/libredirect.so
+
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "oslo_concurrency" ];
+
+ meta = with lib; {
+ description = "Oslo Concurrency library";
+ homepage = "https://github.com/openstack/oslo.concurrency";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-config/default.nix b/pkgs/development/python-modules/oslo-config/default.nix
new file mode 100644
index 000000000000..fface886eb94
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-config/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, debtcollector
+, netaddr
+, oslo-i18n
+, pbr
+, pyyaml
+, requests
+, rfc3986
+, stevedore
+, callPackage
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-config";
+ version = "8.7.1";
+
+ src = fetchPypi {
+ pname = "oslo.config";
+ inherit version;
+ sha256 = "a0c346d778cdc8870ab945e438bea251b5f45fae05d6d99dfe4953cca2277b60";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ propagatedBuildInputs = [
+ debtcollector
+ netaddr
+ oslo-i18n
+ pbr
+ pyyaml
+ requests
+ rfc3986
+ stevedore
+ ];
+
+ # check in passthru.tests.pytest to escape infinite recursion with other oslo components
+ doCheck = false;
+
+ passthru.tests = {
+ pytest = callPackage ./tests.nix {};
+ };
+
+ pythonImportsCheck = [ "oslo_config" ];
+
+ meta = with lib; {
+ description = "Oslo Configuration API";
+ homepage = "https://github.com/openstack/oslo.config";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-config/tests.nix b/pkgs/development/python-modules/oslo-config/tests.nix
new file mode 100644
index 000000000000..82400e67ea58
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-config/tests.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, oslo-config
+, docutils
+, oslo-log
+, oslotest
+, requests-mock
+, sphinx
+, stestr
+, testscenarios
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-config-tests";
+ inherit (oslo-config) version;
+
+ src = oslo-config.src;
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ dontBuild = true;
+ dontInstall = true;
+
+ checkInputs = [
+ oslo-config
+ docutils
+ oslo-log
+ oslotest
+ requests-mock
+ sphinx
+ stestr
+ testscenarios
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+}
diff --git a/pkgs/development/python-modules/oslo-context/default.nix b/pkgs/development/python-modules/oslo-context/default.nix
new file mode 100644
index 000000000000..b4e52abd4237
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-context/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchPypi, debtcollector, oslotest, stestr, pbr }:
+
+buildPythonPackage rec {
+ pname = "oslo.context";
+ version = "3.3.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "f578ea38569cf0a677e2167178196b21a54175471358c4320ddfd5c97c52f4d1";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ propagatedBuildInputs = [
+ debtcollector
+ pbr
+ ];
+
+ checkInputs = [
+ oslotest
+ stestr
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "oslo_context" ];
+
+ meta = with lib; {
+ description = "Oslo Context library";
+ homepage = "https://github.com/openstack/oslo.context";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
new file mode 100644
index 000000000000..c0c9dff04334
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, alembic
+, oslo-config
+, oslo-context
+, oslo-utils
+, oslotest
+, pbr
+, sqlalchemy
+, sqlalchemy_migrate
+, stestr
+, testresources
+, testscenarios
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-db";
+ version = "11.0.0";
+
+ src = fetchPypi {
+ pname = "oslo.db";
+ inherit version;
+ sha256 = "0cd5679868c0a0d194c916cc855348890820c3183b34a039af1e8698dac7afbf";
+ };
+
+ nativeBuildInputs = [ pbr ];
+
+ propagatedBuildInputs = [
+ alembic
+ oslo-config
+ oslo-context
+ oslo-utils
+ sqlalchemy
+ sqlalchemy_migrate
+ testresources
+ testscenarios
+ ];
+
+ checkInputs = [
+ oslotest
+ stestr
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "oslo_db" ];
+
+ meta = with lib; {
+ description = "Oslo Database library";
+ homepage = "https://github.com/openstack/oslo.db";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-i18n/default.nix b/pkgs/development/python-modules/oslo-i18n/default.nix
new file mode 100644
index 000000000000..cdb6767c7a52
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-i18n/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, oslotest
+, pbr
+, testscenarios
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-i18n";
+ version = "5.1.0";
+
+ src = fetchPypi {
+ pname = "oslo.i18n";
+ inherit version;
+ sha256 = "6bf111a6357d5449640852de4640eae4159b5562bbba4c90febb0034abc095d0";
+ };
+
+ postPatch = ''
+ # only a small portion of the listed packages are actually needed for running the tests
+ # so instead of removing them one by one remove everything
+ rm test-requirements.txt
+ '';
+
+ nativeBuildInputs = [ pbr ];
+
+ checkInputs = [
+ oslotest
+ stestr
+ testscenarios
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "oslo_i18n" ];
+
+ meta = with lib; {
+ description = "Oslo i18n library";
+ homepage = "https://github.com/openstack/oslo.i18n";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
new file mode 100644
index 000000000000..1e4598ead653
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, oslo-config
+, oslo-context
+, oslo-serialization
+, oslo-utils
+, oslotest
+, pbr
+, pyinotify
+, python-dateutil
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-log";
+ version = "4.6.0";
+
+ src = fetchPypi {
+ pname = "oslo.log";
+ inherit version;
+ sha256 = "dad5d7ff1290f01132b356d36a1bb79f98a3929d5005cce73e849ed31b385ba7";
+ };
+
+ propagatedBuildInputs = [
+ oslo-config
+ oslo-context
+ oslo-serialization
+ oslo-utils
+ pbr
+ python-dateutil
+ ] ++ lib.optionals stdenv.isLinux [
+ pyinotify
+ ];
+
+ checkInputs = [
+ oslotest
+ stestr
+ ];
+
+ checkPhase = ''
+ stestr run
+ '';
+
+ pythonImportsCheck = [ "oslo_log" ];
+
+ meta = with lib; {
+ description = "oslo.log library";
+ homepage = "https://github.com/openstack/oslo.log";
+ license = licenses.asl20;
+ maintainers = teams.openstack.members;
+ };
+}
diff --git a/pkgs/development/python-modules/oslo-serialization/default.nix b/pkgs/development/python-modules/oslo-serialization/default.nix
new file mode 100644
index 000000000000..e6b8d0d0c422
--- /dev/null
+++ b/pkgs/development/python-modules/oslo-serialization/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, msgpack
+, oslo-utils
+, oslotest
+, pbr
+, pytz
+, stestr
+}:
+
+buildPythonPackage rec {
+ pname = "oslo-serialization";
+ version = "4.2.0";
+
+ src = fetchPypi {
+ pname = "oslo.serialization";
+ inherit version;
+ sha256 = "3007e1b017ad3754cce54def894054cbcd05887e85928556657434b0fc7e4d83";
+ };<