in lease-kubernetes/src/main/scala/org/apache/pekko/coordination/lease/kubernetes/internal/AbstractKubernetesApiImpl.scala [111:137]
private[pekko] def removeLease(name: String): Future[Done] = {
for {
response <- makeRequest(
requestForPath(pathForLease(name), HttpMethods.DELETE),
s"Timed out removing lease [$name]. It is not known if the remove happened")
result <- response.status match {
case StatusCodes.OK =>
log.debug("Lease deleted {}", name)
response.discardEntityBytes()
Future.successful(Done)
case StatusCodes.NotFound =>
log.debug("Lease already deleted {}", name)
response.discardEntityBytes()
Future.successful(Done) // already deleted
case StatusCodes.Unauthorized =>
handleUnauthorized(response)
case unexpected =>
Unmarshal(response.entity)
.to[String]
.flatMap(body => {
Future.failed(
new LeaseException(s"Unexpected status code when deleting lease. Status: $unexpected. Body: $body"))
})
}
} yield result
}