git.iko.soy/typeable/bloodhound
on master help sign in
Merge pull request #239 from bitemyapp/bitemyapp/updatable-index-setting-json-iso

Updatable index setting json iso

commitc71a130f1f02ad905697f859cfb33c154df6455f authorChris Allen <cma@bitemyapp.com> dateSun 6 May 2018, 14:32 (8 years ago) parentadb5777088ef73
6 files changed+27−64
.travis.yml−5 src/Bloodhound/Import.hs+1 src/Database/V5/Bloodhound/Internal/Client.hs+22−10 stack-7.10.yaml−21 stack-7.8.yaml−25 tests/V5/Test/Generators.hs+4−3
.travis.yml−5
@@ -11,11 +11,6 @@ env:
1111 global:
1212 - JAVA_HOME=/usr/lib/jvm/java-8-oracle
1313 matrix:
14− - GHCVER=7.8 ESVER=1.3.6 STACK_YAML=stack-7.8.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
15− - GHCVER=7.8 ESVER=1.4.1 STACK_YAML=stack-7.8.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
16− - GHCVER=7.10 ESVER=1.5.2 STACK_YAML=stack-7.10.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
17− - GHCVER=7.10 ESVER=1.6.0 STACK_YAML=stack-7.10.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
18− - GHCVER=7.10 ESVER=1.7.6 STACK_YAML=stack-7.10.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
1914 - GHCVER=8.0 ESVER=1.7.6 STACK_YAML=stack-8.0.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
2015 - GHCVER=8.0 ESVER=5.0.2 STACK_YAML=stack-8.0.yaml ESFLAG=ES5 DLINK=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch ES_JAVA_OPTS="-Xms500m -Xmx750m"
2116 - GHCVER=8.2 ESVER=1.7.6 STACK_YAML=stack.yaml ESFLAG=ES1 DLINK=https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch
src/Bloodhound/Import.hs+1
@@ -9,6 +9,7 @@ module Bloodhound.Import
99 , showText
1010 , deleteSeveral
1111 , oPath
12+ , tshow
1213 ) where
1314
1415import Control.Applicative as X (Alternative (..), optional)
src/Database/V5/Bloodhound/Internal/Client.hs+22−10
@@ -1418,15 +1418,20 @@ data NodeJVMInfo = NodeJVMInfo {
14181418 , nodeJVMInfoMemoryInfo :: JVMMemoryInfo
14191419 , nodeJVMInfoStartTime :: UTCTime
14201420 , nodeJVMInfoVMVendor :: Text
1421− , nodeJVMVMVersion :: VersionNumber
1421+ , nodeJVMVMVersion :: VMVersion
14221422 -- ^ JVM doesn't seme to follow normal version conventions
14231423 , nodeJVMVMName :: Text
1424− , nodeJVMVersion :: VersionNumber
1424+ , nodeJVMVersion :: JVMVersion
14251425 , nodeJVMPID :: PID
14261426 } deriving (Eq, Show)
14271427
1428−-- | Handles quirks in the way JVM versions are rendered (1.7.0_101 -> 1.7.0.101)
1429−newtype JVMVersion = JVMVersion { unJVMVersion :: VersionNumber }
1428+-- | We cannot parse JVM version numbers and we're not going to try.
1429+newtype JVMVersion =
1430+ JVMVersion { unJVMVersion :: Text }
1431+ deriving (Eq, Show)
1432+
1433+instance FromJSON JVMVersion where
1434+ parseJSON = withText "JVMVersion" (pure . JVMVersion)
14301435
14311436data JVMMemoryInfo = JVMMemoryInfo {
14321437 jvmMemoryInfoDirectMax :: Bytes
@@ -1436,6 +1441,18 @@ data JVMMemoryInfo = JVMMemoryInfo {
14361441 , jvmMemoryInfoHeapInit :: Bytes
14371442 } deriving (Eq, Show)
14381443
1444+-- VM version numbers don't appear to be SemVer
1445+-- so we're special casing this jawn.
1446+newtype VMVersion =
1447+ VMVersion { unVMVersion :: Text }
1448+ deriving (Eq, Show)
1449+
1450+instance ToJSON VMVersion where
1451+ toJSON = toJSON . unVMVersion
1452+
1453+instance FromJSON VMVersion where
1454+ parseJSON = withText "VMVersion" (pure . VMVersion)
1455+
14391456newtype JVMMemoryPool = JVMMemoryPool {
14401457 jvmMemoryPool :: Text
14411458 } deriving (Eq, Show, FromJSON)
@@ -2228,14 +2245,9 @@ instance FromJSON NodeJVMInfo where
22282245 <*> o .: "vm_vendor"
22292246 <*> o .: "vm_version"
22302247 <*> o .: "vm_name"
2231− <*> (unJVMVersion <$> o .: "version")
2248+ <*> o .: "version"
22322249 <*> o .: "pid"
22332250
2234−instance FromJSON JVMVersion where
2235− parseJSON (String t) =
2236− JVMVersion <$> parseJSON (String (T.replace "_" "." t))
2237− parseJSON v = JVMVersion <$> parseJSON v
2238−
22392251instance FromJSON JVMMemoryInfo where
22402252 parseJSON = withObject "JVMMemoryInfo" parse
22412253 where
stack-7.10.yamldeleted−21
@@ -1,21 +0,0 @@
1−flags:
2− bloodhound-examples:
3− werror: true
4−packages:
5−- '.'
6−- './examples'
7−extra-deps:
8−- http-client-0.5.0
9−- aeson-1.2.0.0
10−- fail-4.9.0.0
11−- http-types-0.9
12−- attoparsec-0.13.0.1
13−- quickcheck-properties-0.1
14−- semigroups-0.18.3
15−- uri-bytestring-0.1.9
16−- temporary-resourcet-0.1.0.0
17−- transformers-compat-0.5.1.4
18−- pretty-simple-2.0.2.0
19−- quickcheck-arbitrary-template-0.2.0.0
20−
21−resolver: lts-6.12
stack-7.8.yamldeleted−25
@@ -1,25 +0,0 @@
1−flags:
2− aeson:
3− old-locale: true
4− bloodhound-examples:
5− werror: true
6−packages:
7−- '.'
8−- './examples'
9−extra-deps:
10−- aeson-0.11.1.0
11−- fail-4.9.0.0
12−- http-types-0.9
13−- http-client-0.5.0
14−- attoparsec-0.13.0.1
15−- quickcheck-properties-0.1
16−- semigroups-0.18.0.1
17−- tagged-0.8.3
18−- uri-bytestring-0.1.9
19−- void-0.7.1
20−- generics-sop-0.2.2.0
21−- unordered-containers-0.2.6.0
22−- pretty-simple-2.0.2.0
23−- quickcheck-arbitrary-template-0.2.0.0
24−
25−resolver: lts-2.18
tests/V5/Test/Generators.hs+4−3
@@ -462,9 +462,6 @@ makeArbitrary ''Analysis
462462instance Arbitrary Analysis where arbitrary = arbitraryAnalysis
463463makeArbitrary ''Tokenizer
464464instance Arbitrary Tokenizer where arbitrary = arbitraryTokenizer
465−makeArbitrary ''UpdatableIndexSetting
466−instance Arbitrary UpdatableIndexSetting where
467− arbitrary = arbitraryUpdatableIndexSetting
468465makeArbitrary ''Compression
469466instance Arbitrary Compression where arbitrary = arbitraryCompression
470467makeArbitrary ''Bytes
@@ -534,6 +531,10 @@ instance Arbitrary FactorMissingFieldValue where arbitrary = arbitraryFactorMiss
534531makeArbitrary ''FactorModifier
535532instance Arbitrary FactorModifier where arbitrary = arbitraryFactorModifier
536533
534+makeArbitrary ''UpdatableIndexSetting
535+instance Arbitrary UpdatableIndexSetting where
536+ arbitrary = resize 10 arbitraryUpdatableIndexSetting
537+
537538newtype UpdatableIndexSetting' =
538539 UpdatableIndexSetting' UpdatableIndexSetting
539540 deriving (Show, Eq, ToJSON, FromJSON, ApproxEq, Typeable)