def remove_capacity(num_uids)
if num_uids > 0
subtractions = []
subtractions.fill(0, num_uids) {|i| i+max_uid-num_uids+1}
pos = 0
found_first_pos = false
available_uids.each do |available_uid|
if !found_first_pos && available_uid == subtractions[pos]
found_first_pos = true
elsif found_first_pos
unless available_uid == subtractions[pos]
raise OpenShift::OOException.new("Uid: #{subtractions[pos]} not found in order in available_uids. Can not continue!")
end
end
pos += 1 if found_first_pos
break if pos == subtractions.length
end
if !found_first_pos
raise OpenShift::OOException.new("Missing uid: #{subtractions[0]} in existing available_uids. Can not continue!")
end
OpenShift::DataStore.instance.remove_district_uids(uuid, subtractions)
@available_capacity -= num_uids
@max_uid -= num_uids
@max_capacity -= num_uids
@available_uids -= subtractions
else
raise OpenShift::OOException.new("You must supply a positive number of uids to remove")
end
end