/** * Verifies that user provided plan is valid. * * @param planID - SHA-1 of the plan. * @param planVersion - Version of the plan, for future use. * @param plan - Plan String in Json. * @param force - Skip verifying when the plan was generated. * @return a NodePlan Object. * @throws DiskBalancerException */ private NodePlan verifyPlan(String planID, long planVersion, String plan, boolean force) throws DiskBalancerException { Preconditions.checkState(lock.isHeldByCurrentThread()); verifyPlanVersion(planVersion); NodePlan nodePlan = verifyPlanHash(planID, plan); if (!force) { verifyTimeStamp(nodePlan); } verifyNodeUUID(nodePlan); return nodePlan; }