From 2b0c299990e4d2c392e2041240bb05797f23c146 Mon Sep 17 00:00:00 2001 From: illustris Date: Tue, 29 Mar 2022 01:49:17 +0530 Subject: [PATCH] hbase: 0.98.24 -> 2.4.11 --- nixos/tests/all-tests.nix | 3 ++ nixos/tests/hbase.nix | 30 ++++++++++++++ pkgs/servers/hbase/default.nix | 69 ++++++++++++++++++++++++--------- pkgs/top-level/all-packages.nix | 6 ++- 4 files changed, 89 insertions(+), 19 deletions(-) create mode 100644 nixos/tests/hbase.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index cb68ef685300..9848487fd134 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -199,6 +199,9 @@ in haste-server = handleTest ./haste-server.nix {}; haproxy = handleTest ./haproxy.nix {}; hardened = handleTest ./hardened.nix {}; + hbase1 = handleTest ./hbase.nix { package=pkgs.hbase1; }; + hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; }; + hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; }; hedgedoc = handleTest ./hedgedoc.nix {}; herbstluftwm = handleTest ./herbstluftwm.nix {}; installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {}); diff --git a/nixos/tests/hbase.nix b/nixos/tests/hbase.nix new file mode 100644 index 000000000000..a449d24dd6fd --- /dev/null +++ b/nixos/tests/hbase.nix @@ -0,0 +1,30 @@ +import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.hbase, ... }: +{ + name = "hbase"; + + meta = with lib.maintainers; { + maintainers = [ illustris ]; + }; + + nodes = { + hbase = { pkgs, ... }: { + services.hbase = { + enable = true; + inherit package; + # Needed for standalone mode in hbase 2+ + # This setting and standalone mode are not suitable for production + settings."hbase.unsafe.stream.capability.enforce" = "false"; + }; + environment.systemPackages = with pkgs; [ + package + ]; + }; + }; + + testScript = '' + start_all() + hbase.wait_for_unit("hbase.service") + hbase.wait_until_succeeds("echo \"create 't1','f1'\" | sudo -u hbase hbase shell -n") + assert "NAME => 'f1'" in hbase.succeed("echo \"describe 't1'\" | sudo -u hbase hbase shell -n") + ''; +}) diff --git a/pkgs/servers/hbase/default.nix b/pkgs/servers/hbase/default.nix index 32d2c09de97f..46521da88539 100644 --- a/pkgs/servers/hbase/default.nix +++ b/pkgs/servers/hbase/default.nix @@ -1,22 +1,55 @@ -{ lib, stdenv, fetchurl, makeWrapper }: -stdenv.mkDerivation rec { - pname = "hbase"; - version = "0.98.24"; +{ lib +, stdenv +, fetchurl +, makeWrapper +, jdk8_headless +, jdk11_headless +, nixosTests +}: - src = fetchurl { - url = "mirror://apache/hbase/${version}/hbase-${version}-hadoop2-bin.tar.gz"; - sha256 = "0kz72wqsii09v9hxkw10mzyvjhji5sx3l6aijjalgbybavpcxglb"; +let common = { version, hash, jdk ? jdk11_headless, tests }: + stdenv.mkDerivation rec { + pname = "hbase"; + inherit version; + + src = fetchurl { + url = "mirror://apache/hbase/${version}/hbase-${version}-bin.tar.gz"; + inherit hash; + }; + + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out + cp -R * $out + wrapProgram $out/bin/hbase --set-default JAVA_HOME ${jdk.home} + ''; + + passthru = { inherit tests; }; + + meta = with lib; { + description = "A distributed, scalable, big data store"; + homepage = "https://hbase.apache.org"; + license = licenses.asl20; + maintainers = with lib.maintainers; [ illustris ]; + platforms = lib.platforms.linux; + }; }; - - nativeBuildInputs = [ makeWrapper ]; - installPhase = '' - mkdir -p $out - cp -R * $out - ''; - meta = with lib; { - description = "A distributed, scalable, big data store"; - homepage = "https://hbase.apache.org"; - license = licenses.asl20; - platforms = lib.platforms.linux; +in +{ + hbase_1_7 = common { + version = "1.7.1"; + hash = "sha256-DrH2G79QLT8L0YTTmAGC9pUWU8semSaTOsrsQRCI2rY="; + jdk = jdk8_headless; + tests.standalone = nixosTests.hbase1; + }; + hbase_2_4 = common { + version = "2.4.11"; + hash = "sha256-m0vjUtPaj8czHHh+rQNJJgrFAM744cHd06KE0ut7QeU="; + tests.standalone = nixosTests.hbase2; + }; + hbase_3_0 = common { + version = "3.0.0-alpha-2"; + hash = "sha256-QPvgO1BeFWvMT5PdUm/SL92ZgvSvYIuJbzolbBTenz4="; + tests.standalone = nixosTests.hbase3; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7d3d71538c88..8528b5b07caa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21414,7 +21414,11 @@ with pkgs; hasura-cli = callPackage ../servers/hasura/cli.nix { }; - hbase = callPackage ../servers/hbase {}; + inherit (callPackage ../servers/hbase {}) hbase_1_7 hbase_2_4 hbase_3_0; + hbase1 = hbase_1_7; + hbase2 = hbase_2_4; + hbase3 = hbase_3_0; + hbase = hbase2; # when updating, point to the latest stable release headphones = callPackage ../servers/headphones {};