diff options
-rw-r--r-- | pkgs/servers/sql/patroni/default.nix | 57 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/servers/sql/patroni/default.nix b/pkgs/servers/sql/patroni/default.nix new file mode 100644 index 000000000000..a9fc3fd1a174 --- /dev/null +++ b/pkgs/servers/sql/patroni/default.nix @@ -0,0 +1,57 @@ +{ lib, pythonPackages, fetchFromGitHub }: + +pythonPackages.buildPythonApplication rec { + pname = "patroni"; + version = "1.6.4"; + + src = fetchFromGitHub { + owner = "zalando"; + repo = pname; + rev = "v${version}"; + sha256 = "0w0mz4a1cyxdsqmv7jrkw163jll8ir5zmf93zcidlqx13knrk80g"; + }; + + # cdiff renamed to ydiff; remove when patroni source reflects this. + postPatch = '' + for i in requirements.txt patroni/ctl.py tests/test_ctl.py; do + substituteInPlace $i --replace cdiff ydiff + done + ''; + + propagatedBuildInputs = with pythonPackages; [ + boto + click + consul + dns + kazoo + kubernetes + prettytable + psutil + psycopg2 + python-dateutil + python-etcd + pyyaml + tzlocal + urllib3 + ydiff + ]; + + checkInputs = with pythonPackages; [ + flake8 + mock + pytest + pytestcov + requests + ]; + + # Fix tests by preventing them from writing to /homeless-shelter. + preCheck = "export HOME=$(mktemp -d)"; + + meta = with lib; { + homepage = "https://patroni.readthedocs.io/en/latest/"; + description = "A Template for PostgreSQL HA with ZooKeeper, etcd or Consul"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = [ maintainers.limeytexan ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 025c6a4631cc..9c9b98563dd6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15673,6 +15673,8 @@ in vmfs-tools = callPackage ../tools/filesystems/vmfs-tools { }; + patroni = callPackage ../servers/sql/patroni { pythonPackages = python3Packages; }; + pgbouncer = callPackage ../servers/sql/pgbouncer { }; pgpool = callPackage ../servers/sql/pgpool { |