def moveAliasToNewIndex()

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)
        )
      }
    }
  }