/**
   * @param siteId
   * @param id
   * @return
   * @throws com.sfr.tiilta.client.exception.ValidationException
   * @throws java.io.IOException
   */
  @PreAuthorize(
      "@tiiltaAuthorization.hasBenderPermission('TemplatingDjango', 'Site' , #siteId, @userService.getConnected(), #id)")
  @RequestMapping(value = "/bender/{siteId:.+}/{env}/resource/{id}/run", method = RequestMethod.PUT)
  @ResponseBody
  public Map<String, Object> run(
      @PathVariable("siteId") String siteId,
      @PathVariable("env") String env,
      @PathVariable("id") String id,
      @RequestParam(value = "version", required = false) String version)
      throws ValidationException, IOException {

    Site site = siteService.getSite(siteId);
    if (site == null) {
      throw new ValidationException("Le site est inconnu");
    }

    boolean isExecuted = false;
    BenderResource resourceDTO = this.getResourceById(id, version, siteId);
    if (resourceDTO != null) {
      isExecuted = benderService.executeResource(site, env, resourceDTO);
    }

    Map<String, Object> result = Maps.newHashMap();
    result.put("isExecuted", isExecuted);
    return result;
  }