Class: Actions::ForemanPatch::Cycle::Initiate

Inherits:
EntryAction
  • Object
show all
Defined in:
app/lib/actions/foreman_patch/cycle/initiate.rb

Instance Method Summary collapse

Instance Method Details

#cycleObject



46
47
48
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 46

def cycle
  @cycle ||= ::ForemanPatch::Cycle.find(input[:cycle][:id])
end

#delay(delay_options, cycle, plan = nil) ⇒ Object



6
7
8
9
10
11
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 6

def delay(delay_options, cycle, plan = nil)
  input.update serialize_args(cycle: cycle)
  add_missing_task_group(plan) if plan.present?

  super delay_options, cycle
end

#finalizeObject



35
36
37
38
39
40
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 35

def finalize
  cycle.windows.each(&:schedule)

  plan = find_plan
  plan.iterate if plan.present?
end

#humanized_nameObject



42
43
44
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 42

def humanized_name
  _('Initiating patch cycle: %s') % cycle.name
end

#plan(cycle, plan = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 13

def plan(cycle, plan = nil)
  input.update serialize_args(cycle: cycle)
  add_missing_task_group(plan) if plan.present?

  cycle.windows.each do |window|
    plan_action(Actions::ForemanPatch::Window::ResolveHosts, window)
  end
  plan_self
end

#runObject



23
24
25
26
27
28
29
30
31
32
33
# File 'app/lib/actions/foreman_patch/cycle/initiate.rb', line 23

def run
  content_view_versions = cycle.hosts.map do |host|
    host.content_view.version(host.lifecycle_environment)
  end.uniq

  content_view_versions.each do |version|
    next unless available_content?(version)

    ::ForemanTasks.async_task(Actions::ForemanPatch::Cycle::PrepareContent, version, _('Updating content for patch cycle: %s') % cycle.name)
  end
end