Class: Ace::Overseer::Molecules::AssignmentPruneSafetyChecker
- Inherits:
-
Object
- Object
- Ace::Overseer::Molecules::AssignmentPruneSafetyChecker
- Defined in:
- lib/ace/overseer/molecules/assignment_prune_safety_checker.rb
Instance Method Summary collapse
- #check(assignment_id:) ⇒ Object
-
#initialize(assignment_discoverer_factory: nil, assignment_manager_factory: nil) ⇒ AssignmentPruneSafetyChecker
constructor
A new instance of AssignmentPruneSafetyChecker.
Constructor Details
#initialize(assignment_discoverer_factory: nil, assignment_manager_factory: nil) ⇒ AssignmentPruneSafetyChecker
Returns a new instance of AssignmentPruneSafetyChecker.
7 8 9 10 |
# File 'lib/ace/overseer/molecules/assignment_prune_safety_checker.rb', line 7 def initialize(assignment_discoverer_factory: nil, assignment_manager_factory: nil) @assignment_discoverer_factory = assignment_discoverer_factory || -> { Ace::Assign::Molecules::AssignmentDiscoverer.new } @assignment_manager_factory = assignment_manager_factory || -> { Ace::Assign::Molecules::AssignmentManager.new } end |
Instance Method Details
#check(assignment_id:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ace/overseer/molecules/assignment_prune_safety_checker.rb', line 12 def check(assignment_id:) discoverer = @assignment_discoverer_factory.call all = discoverer.find_all(include_completed: true) info = all.find { |ai| ai.assignment.id == assignment_id } unless info return Models::AssignmentPruneCandidate.new( assignment_id: assignment_id, assignment_name: "", assignment_state: "not_found", location_path: "", reasons: ["assignment not found"] ) end state = info.queue_state.assignment_state.to_s reasons = [] reasons << "assignment still #{state}" unless state == "completed" Models::AssignmentPruneCandidate.new( assignment_id: assignment_id, assignment_name: info.assignment.name, assignment_state: state, location_path: info.assignment.cache_dir, reasons: reasons ) end |