code: public static boolean isAzkabanJobPresent(String sessionId, AzkabanProjectConfig azkabanProjectConfig)
        throws IOException {
      log.info("Checking if Azkaban project: " + azkabanProjectConfig.getAzkabanProjectName() + " exists");
      try {
        // NOTE: hacky way to determine if project already exists because Azkaban does not provides a way to
        // .. check if the project already exists or not
        boolean isPresent = StringUtils.isNotBlank(AzkabanAjaxAPIClient.getProjectId(sessionId, azkabanProjectConfig));
        log.info("Project exists: " + isPresent);
  
        return isPresent;
      } catch (IOException e) {
        // Project doesn't exists
        if (String.format("Project %s doesn't exist.", azkabanProjectConfig.getAzkabanProjectName())
            .equalsIgnoreCase(e.getMessage())) {
          log.info("Project does not exists.");
          return false;
        }
        // Project exists but with no read access to current user
        if ("Permission denied. Need READ access.".equalsIgnoreCase(e.getMessage())) {
          log.info("Project exists, but current user does not has READ access.");
          return true;
        }
        // Some other error
        log.error("Issue in checking if project is present", e);
        throw e;
      }
    }
docs: *
  Checks if an Azkaban project exists by name.
  @param sessionId Session Id.
  @param azkabanProjectConfig Azkaban Project Config that contains project name.
  @return true if project exists else false.
  @throws IOException