git.iko.soy/typeable/bloodhound
on master help sign in
Merge pull request #200 from andrewthad/delete_alias

add function for deleting alias

commita49fd8e3557d3307ec872b50b3f4c489d7867833 authorChris Allen <cma@bitemyapp.com> dateWed 30 Aug 2017, 17:21 (9 years ago) parentb879d5f6e80817
2 files changed+23−4
src/Database/V5/Bloodhound/Client.hs+7 tests/V5/tests.hs+16−4
src/Database/V5/Bloodhound/Client.hs+7
@@ -37,6 +37,7 @@ module Database.V5.Bloodhound.Client
3737 -- *** Index Aliases
3838 , updateIndexAliases
3939 , getIndexAliases
40+ , deleteIndexAlias
4041 -- *** Index Templates
4142 , putTemplate
4243 , templateExists
@@ -717,6 +718,12 @@ getIndexAliases :: (MonadBH m, MonadThrow m)
717718getIndexAliases = parseEsResponse =<< get =<< url
718719 where url = joinPath ["_aliases"]
719720
721+-- | Delete a single alias, removing it from all indices it
722+-- is currently associated with.
723+deleteIndexAlias :: MonadBH m => IndexAliasName -> m Reply
724+deleteIndexAlias (IndexAliasName (IndexName name)) = delete =<< url
725+ where url = joinPath ["_all","_alias",name]
726+
720727-- | 'putTemplate' creates a template given an 'IndexTemplate' and a 'TemplateName'.
721728-- Explained in further detail at
722729-- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html>
tests/V5/tests.hs+16−4
@@ -1554,11 +1554,11 @@ main = hspec $ do
15541554 scan_search `shouldMatchList` [Just exampleTweet, Just otherTweet]
15551555
15561556 describe "index aliases" $ do
1557+ let aname = IndexAliasName (IndexName "bloodhound-tests-twitter-1-alias")
1558+ let alias = IndexAlias (testIndex) aname
1559+ let create = IndexAliasCreate Nothing Nothing
1560+ let action = AddAlias alias create
15571561 it "handles the simple case of aliasing an existing index" $ do
1558− let alias = IndexAlias (testIndex) (IndexAliasName (IndexName "bloodhound-tests-twitter-1-alias"))
1559− let create = IndexAliasCreate Nothing Nothing
1560− let action = AddAlias alias create
1561−
15621562 withTestEnv $ do
15631563 resetIndex
15641564 resp <- updateIndexAliases (action :| [])
@@ -1570,6 +1570,18 @@ main = hspec $ do
15701570 Right (IndexAliasesSummary summs) ->
15711571 L.find ((== alias) . indexAliasSummaryAlias) summs `shouldBe` Just expected
15721572 Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)) `finally` cleanup
1573+ it "allows alias deletion" $ do
1574+ aliases <- withTestEnv $ do
1575+ resetIndex
1576+ resp <- updateIndexAliases (action :| [])
1577+ liftIO $ validateStatus resp 200
1578+ deleteIndexAlias aname
1579+ getIndexAliases
1580+ let expected = IndexAliasSummary alias create
1581+ case aliases of
1582+ Right (IndexAliasesSummary summs) ->
1583+ L.find ((== aname) . indexAlias . indexAliasSummaryAlias) summs `shouldBe` Nothing
1584+ Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)
15731585
15741586 describe "Index Listing" $ do
15751587 it "returns a list of index names" $ withTestEnv $ do