Class: OsCtld::Container::Adaptor::CGroup

Inherits:
Base
  • Object
show all
Defined in:
lib/osctld/container/adaptors/cgroup.rb

Instance Attribute Summary

Attributes inherited from Base

#config, #ct

Instance Method Summary collapse

Methods inherited from Base

#initialize, #log_type, register

Constructor Details

This class inherits a constructor from OsCtld::Container::Adaptor::Base

Instance Method Details

#adaptObject



7
8
9
10
# File 'lib/osctld/container/adaptors/cgroup.rb', line 7

def adapt
  send(:"to_cgroup_v#{CGroup.version}")
  config
end

#systemd_distrosObject (protected)



37
38
39
# File 'lib/osctld/container/adaptors/cgroup.rb', line 37

def systemd_distros
  %w(almalinux arch centos debian fedora gentoo opensuse rocky ubuntu)
end

#systemd_optObject (protected)



33
34
35
# File 'lib/osctld/container/adaptors/cgroup.rb', line 33

def systemd_opt
  'systemd.unified_cgroup_hierarchy=0'
end

#to_cgroup_v1Object (protected)



13
14
15
16
17
18
19
20
21
22
# File 'lib/osctld/container/adaptors/cgroup.rb', line 13

def to_cgroup_v1
  if systemd_distros.include?(config['distribution'])
    config['init_cmd'] ||= ['/sbin/init']

    unless config['init_cmd'].include?(systemd_opt)
      log(:info, "Adding option #{systemd_opt} to init command")
      config['init_cmd'] << systemd_opt
    end
  end
end

#to_cgroup_v2Object (protected)



24
25
26
27
28
29
30
31
# File 'lib/osctld/container/adaptors/cgroup.rb', line 24

def to_cgroup_v2
  if systemd_distros.include?(config['distribution']) \
     && config['init_cmd'] \
     && config['init_cmd'].include?(systemd_opt)
    log(:info, "Removing option #{systemd_opt} from init command")
    config['init_cmd'].delete(systemd_opt)
  end
end