in common/src/main/scala/com/gerritforge/analytics/common/api/ElasticSearchAliasOps.scala [43:65]
def moveAliasToNewIndex(
aliasName: String,
newIndexName: String
): Future[Response[AliasActionResponse]] = {
val oldIndices: Future[Iterable[Index]] = getIndicesFromAlias(aliasName)
oldIndices.flatMap { indices =>
val removeAliasActions: Iterable[RemoveAliasAction] = indices.map { idxName =>
removeAlias(aliasName) on s"${idxName.name}"
}
val addAliasAction: AddAliasActionRequest = addAlias(aliasName) on newIndexName
logger.info(
s"Replacing old indices (${indices.mkString(",")}) with $newIndexName from alias $aliasName"
)
esClient.execute {
aliases(
removeAliasActions ++ List(addAliasAction)
)
}
}
}