vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / hadoop / hbase.nix
blob0416345682a89837e22e33915dca5f944618bfbb
1 # Test a minimal hbase cluster
2 { pkgs, ... }:
3 import ../make-test-python.nix ({ hadoop ? pkgs.hadoop, hbase ? pkgs.hbase, ... }:
4 with pkgs.lib;
6   name = "hadoop-hbase";
8   nodes = let
9     coreSite = {
10       "fs.defaultFS" = "hdfs://namenode:8020";
11     };
12     defOpts = {
13       enable = true;
14       openFirewall = true;
15     };
16     zookeeperQuorum = "zookeeper";
17   in {
18     zookeeper = { ... }: {
19       services.zookeeper.enable = true;
20       networking.firewall.allowedTCPPorts = [ 2181 ];
21     };
22     namenode = { ... }: {
23       services.hadoop = {
24         hdfs = {
25           namenode = defOpts // { formatOnInit = true; };
26         };
27         inherit coreSite;
28       };
29     };
30     datanode = { ... }: {
31       virtualisation.diskSize = 8192;
32       services.hadoop = {
33         hdfs.datanode = defOpts;
34         inherit coreSite;
35       };
36     };
38     master = { ... }:{
39       services.hadoop = {
40         inherit coreSite;
41         hbase = {
42           inherit zookeeperQuorum;
43           master = defOpts // { initHDFS = true; };
44         };
45       };
46     };
47     regionserver = { ... }:{
48       services.hadoop = {
49         inherit coreSite;
50         hbase = {
51           inherit zookeeperQuorum;
52           regionServer = defOpts;
53         };
54       };
55     };
56     thrift = { ... }:{
57       services.hadoop = {
58         inherit coreSite;
59         hbase = {
60           inherit zookeeperQuorum;
61           thrift = defOpts;
62         };
63       };
64     };
65     rest = { ... }:{
66       services.hadoop = {
67         inherit coreSite;
68         hbase = {
69           inherit zookeeperQuorum;
70           rest = defOpts;
71         };
72       };
73     };
74   };
76   testScript = ''
77     start_all()
79     # wait for HDFS cluster
80     namenode.wait_for_unit("hdfs-namenode")
81     namenode.wait_for_unit("network.target")
82     namenode.wait_for_open_port(8020)
83     namenode.wait_for_open_port(9870)
84     datanode.wait_for_unit("hdfs-datanode")
85     datanode.wait_for_unit("network.target")
86     datanode.wait_for_open_port(9864)
87     datanode.wait_for_open_port(9866)
88     datanode.wait_for_open_port(9867)
90     # wait for ZK
91     zookeeper.wait_for_unit("zookeeper")
92     zookeeper.wait_for_open_port(2181)
94     # wait for HBase to start up
95     master.wait_for_unit("hbase-master")
96     regionserver.wait_for_unit("hbase-regionserver")
98     assert "1 active master, 0 backup masters, 1 servers" in master.succeed("echo status | HADOOP_USER_NAME=hbase hbase shell -n")
99     regionserver.wait_until_succeeds("echo \"create 't1','f1'\" | HADOOP_USER_NAME=hbase hbase shell -n")
100     assert "NAME => 'f1'" in regionserver.succeed("echo \"describe 't1'\" | HADOOP_USER_NAME=hbase hbase shell -n")
102     rest.wait_for_open_port(8080)
103     assert "${hbase.version}" in regionserver.succeed("curl http://rest:8080/version/cluster")
105     thrift.wait_for_open_port(9090)
106   '';
108   meta.maintainers = with maintainers; [ illustris ];