in itchef/cookbooks/fb_helpers/libraries/node_methods.rb [670:715]
def rollout_shard(start_date)
rollout_map = [
1,
10,
25,
50,
99,
]
rd = Date.parse(start_date)
today = Date.today
numdays = (today - rd).to_i
num_weekend_days = 0
(0..numdays).each do |i|
t = rd + i
if t.saturday? || t.sunday?
num_weekend_days += 1
end
end
numdays -= num_weekend_days
if numdays < 0
return -1
end
Chef::Log.debug(
"fb_helpers: rollout_shard: days into rollout: #{numdays}",
)
if numdays >= rollout_map.size
FB::Helpers.warn_to_remove(3)
shard = 99
else
shard = rollout_map[numdays]
end
Chef::Log.debug(
"fb_helpers: rollout_shard: rollout_shard: #{shard}",
)
return shard
end