public TransitRegionStateProcedure[] createAssignProcedures(List<RegionInfo> hris) {
    return hris.stream().map(hri -> regionStates.getOrCreateRegionStateNode(hri))
      .map(regionNode -> createAssignProcedure(regionNode, null)).sorted(AssignmentManager::compare)
      .toArray(TransitRegionStateProcedure[]::new);
  }
Create an array of TransitRegionStateProcedure w/o specifying a target server. Used as fallback
of caller is unable to do {@link #createAssignProcedures(Map)}.
<p/>
If no target server, at assign time, we will try to use the former location of the region if
one exists. This is how we 'retain' the old location across a server restart.
<p/>
Should only be called when you can make sure that no one can touch these regions other than
you. For example, when you are creating or enabling table. Presumes all Regions are in
appropriate state ripe for assign; no checking of Region state is done in here.
@see #createAssignProcedures(Map)
hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java