class Bosh::Director::DeploymentPlan::PlacementPlanner::IndexAssigner
Public Class Methods
new(deployment_model)
click to toggle source
# File lib/bosh/director/deployment_plan/placement_planner/index_assigner.rb, line 6 def initialize(deployment_model) @deployment_model = deployment_model end
Public Instance Methods
assign_index(job_name, existing_instance_model=nil)
click to toggle source
# File lib/bosh/director/deployment_plan/placement_planner/index_assigner.rb, line 10 def assign_index(job_name, existing_instance_model=nil) if existing_instance_model && existing_instance_model.job == job_name return existing_instance_model.index end sorted_indexes = Models::Instance.filter(job: job_name, deployment: @deployment_model).sort_by(&:index).map(&:index) if sorted_indexes.empty? 0 else find_unused_index(sorted_indexes) end end
find_unused_index(sorted_indexes)
click to toggle source
# File lib/bosh/director/deployment_plan/placement_planner/index_assigner.rb, line 23 def find_unused_index(sorted_indexes) sorted_indexes.unshift(-1) next_indexes = sorted_indexes.map { |i| i + 1 } (next_indexes - sorted_indexes).min end