diff options
author | Sarah Brofeldt <sbrofeldt@gmail.com> | 2019-04-14 11:16:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-14 11:16:28 +0200 |
commit | f839011719f8628791d61fc91354504fa2ba2460 (patch) | |
tree | 97d6c01807fb7720c7b765399c65526cf2ba3a2d /nixos | |
parent | 94a8ca219471ea97cd218f9999347c437bbd2c79 (diff) | |
parent | ee7565af9d811526b4abd33c900104cb514c25e1 (diff) |
Merge pull request #58512 from aanderse/solr
solr: init at 8.0.0
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/release-notes/rl-1909.xml | 15 | ||||
-rw-r--r-- | nixos/modules/services/search/solr.nix | 12 | ||||
-rw-r--r-- | nixos/tests/solr.nix | 102 |
3 files changed, 85 insertions, 44 deletions
diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml index b820482b1bac0..3bdfc5c176317 100644 --- a/nixos/doc/manual/release-notes/rl-1909.xml +++ b/nixos/doc/manual/release-notes/rl-1909.xml @@ -154,6 +154,21 @@ Accelerated Video Playback</link> for better transcoding performance. </para> </listitem> + <listitem> + <para> + The following changes apply if the <literal>stateVersion</literal> is + changed to 19.09 or higher. For <literal>stateVersion = "19.03"</literal> + or lower the old behavior is preserved. + </para> + <itemizedlist> + <listitem> + <para> + <literal>solr.package</literal> defaults to + <literal>pkgs.solr_8</literal>. + </para> + </listitem> + </itemizedlist> + </listitem> </itemizedlist> </section> </section> diff --git a/nixos/modules/services/search/solr.nix b/nixos/modules/services/search/solr.nix index 7200c40e89f7f..6659cc8a2d1eb 100644 --- a/nixos/modules/services/search/solr.nix +++ b/nixos/modules/services/search/solr.nix @@ -13,11 +13,19 @@ in services.solr = { enable = mkEnableOption "Enables the solr service."; + # default to the 8.x series not forcing major version upgrade of those on the 7.x series package = mkOption { type = types.package; - default = pkgs.solr; + default = if versionAtLeast config.system.stateVersion "19.09" + then pkgs.solr_8 + else pkgs.solr_7 + ; defaultText = "pkgs.solr"; - description = "Which Solr package to use."; + description = '' + Which Solr package to use. This defaults to version 7.x if + <literal>system.stateVersion < 19.09</literal> and version 8.x + otherwise. + ''; }; port = mkOption { diff --git a/nixos/tests/solr.nix b/nixos/tests/solr.nix index 9ba3863411ea3..2108e851bc595 100644 --- a/nixos/tests/solr.nix +++ b/nixos/tests/solr.nix @@ -1,47 +1,65 @@ -import ./make-test.nix ({ pkgs, lib, ... }: -{ - name = "solr"; - meta.maintainers = [ lib.maintainers.aanderse ]; +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing.nix { inherit system pkgs; }; +with pkgs.lib; - machine = - { config, pkgs, ... }: - { - # Ensure the virtual machine has enough memory for Solr to avoid the following error: - # - # OpenJDK 64-Bit Server VM warning: - # INFO: os::commit_memory(0x00000000e8000000, 402653184, 0) - # failed; error='Cannot allocate memory' (errno=12) - # - # There is insufficient memory for the Java Runtime Environment to continue. - # Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory. - virtualisation.memorySize = 2000; +let + solrTest = package: makeTest { + machine = + { config, pkgs, ... }: + { + # Ensure the virtual machine has enough memory for Solr to avoid the following error: + # + # OpenJDK 64-Bit Server VM warning: + # INFO: os::commit_memory(0x00000000e8000000, 402653184, 0) + # failed; error='Cannot allocate memory' (errno=12) + # + # There is insufficient memory for the Java Runtime Environment to continue. + # Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory. + virtualisation.memorySize = 2000; - services.solr.enable = true; - }; + services.solr.enable = true; + services.solr.package = package; + }; - testScript = '' - startAll; + testScript = '' + startAll; - $machine->waitForUnit('solr.service'); - $machine->waitForOpenPort('8983'); - $machine->succeed('curl --fail http://localhost:8983/solr/'); + $machine->waitForUnit('solr.service'); + $machine->waitForOpenPort('8983'); + $machine->succeed('curl --fail http://localhost:8983/solr/'); + + # adapted from pkgs.solr/examples/films/README.txt + $machine->succeed('sudo -u solr solr create -c films'); + $machine->succeed(q(curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{ + "add-field" : { + "name":"name", + "type":"text_general", + "multiValued":false, + "stored":true + }, + "add-field" : { + "name":"initial_release_date", + "type":"pdate", + "stored":true + } + }')) =~ /"status":0/ or die; + $machine->succeed('sudo -u solr post -c films ${pkgs.solr}/example/films/films.json'); + $machine->succeed('curl http://localhost:8983/solr/films/query?q=name:batman') =~ /"name":"Batman Begins"/ or die; + ''; + }; +in +{ + solr_7 = solrTest pkgs.solr_7 // { + name = "solr_7"; + meta.maintainers = [ lib.maintainers.aanderse ]; + }; - # adapted from pkgs.solr/examples/films/README.txt - $machine->succeed('sudo -u solr solr create -c films'); - $machine->succeed(q(curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{ - "add-field" : { - "name":"name", - "type":"text_general", - "multiValued":false, - "stored":true - }, - "add-field" : { - "name":"initial_release_date", - "type":"pdate", - "stored":true - } - }')) =~ /"status":0/ or die; - $machine->succeed('sudo -u solr post -c films ${pkgs.solr}/example/films/films.json'); - $machine->succeed('curl http://localhost:8983/solr/films/query?q=name:batman') =~ /"name":"Batman Begins"/ or die; - ''; -}) + solr_8 = solrTest pkgs.solr_8 // { + name = "solr_8"; + meta.maintainers = [ lib.maintainers.aanderse ]; + }; +} |