in app/controllers/DeploymentsController.scala [39:61]
def getDeploymentForProjectId(projectId:String) = IsAdminAsync { uid=> req=>
val predicate = ProjectIdHelper.numericId(projectId) match {
case Some(_) => (i:DeployedImageInfo)=>i.labels.get("gitlab-project-id").contains(projectId)
case None =>
val idParts = projectId.split("/")
if(idParts.length!=2) {
throw new RuntimeException(s"GitHub project ID $projectId was not valid, did not contain exactly one /")
} else {
(i:DeployedImageInfo)=>i.labels.get("github-org").contains(idParts.head) && i.labels.get("github-project-name").contains(idParts(1))
}
}
kubernetes
.listDeployments()
.map(_.map(DeployedImageInfo.fromDeployment))
.map(_.filter(predicate))
.map(results=>Ok(results.asJson))
.recover({
case err:Throwable=>
logger.error(s"Could not get deployments for filtering: ${err.getMessage}", err)
InternalServerError(GenericErrorResponse("error", err.getMessage).asJson)
})
}