@Override
 public boolean allocateUnassigned(RoutingAllocation allocation) {
   boolean changed = false;
   changed |= gatewayAllocator.allocateUnassigned(allocation);
   changed |= allocator.allocateUnassigned(allocation);
   return changed;
 }
 @Override
 public boolean move(
     MutableShardRouting shardRouting, RoutingNode node, RoutingAllocation allocation) {
   return allocator.move(shardRouting, node, allocation);
 }
 @Override
 public boolean rebalance(RoutingAllocation allocation) {
   return allocator.rebalance(allocation);
 }
 @Override
 public void applyFailedShards(FailedRerouteAllocation allocation) {
   gatewayAllocator.applyFailedShards(allocation);
   allocator.applyFailedShards(allocation);
 }