Module: ForemanKernelCare::HostManagedExtensions

Defined in:
app/models/concerns/foreman_kernel_care/host_managed_extensions.rb

Instance Method Summary collapse

Instance Method Details

#import_package_profile(simple_packages) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'app/models/concerns/foreman_kernel_care/host_managed_extensions.rb', line 3

def import_package_profile(simple_packages)
  if kernelcare?
    composer = ::JobInvocationComposer.for_feature(:kernel_version, self)
    composer.triggering.mode = :future
    composer.trigger!
  end

  super(simple_packages)
end

#import_tracer_profile(tracer_profile) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/models/concerns/foreman_kernel_care/host_managed_extensions.rb', line 13

def import_tracer_profile(tracer_profile)
  if kernelcare?
    new_tracer_profile = {}
    tracer_profile.each do |trace, attributes|
      if trace.to_s == 'kernel'
        composer = ::JobInvocationComposer.for_feature(:update_kernel, self)
        composer.triggering.mode = :future
        composer.trigger!
      else
        new_tracer_profile[trace] = attributes
      end
    end
    super(new_tracer_profile)
  else
    super(tracer_profile)
  end
end

#kernelcare?Boolean

Returns:

  • (Boolean)


51
52
53
54
# File 'app/models/concerns/foreman_kernel_care/host_managed_extensions.rb', line 51

def kernelcare?
  !installed_packages.select { |package| package.name == 'kernelcare' }.empty? ||
    !installed_debs.select { |package| package.name == 'kernelcare' }.empty?
end

#update_kernel_version(version, release, old_kernel_version) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'app/models/concerns/foreman_kernel_care/host_managed_extensions.rb', line 31

def update_kernel_version(version, release, old_kernel_version)
  old_version, old_release = old_kernel_version.split('-')

  case operatingsystem.family
  when 'Redhat'
    packages = find_yum_kernel_packages(old_version, old_release)
    return if packages.empty?

    delete_yum_pkgs(packages)
    create_new_yum_kernel_packages(packages, version, release)
  when 'Debian'
    old_version = "#{old_version}-#{old_release}"
    new_version = "#{version}-#{release}"
    packages = find_deb_kernel_packages(old_version)
    return if packages.empty?

    create_new_deb_kernel_packages(packages, new_version, old_version)
  end
end