File: kernel.rb

package info (click to toggle)
ruby-specinfra 2.89.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 2,412 kB
  • sloc: ruby: 10,338; sh: 4; makefile: 4
file content (27 lines) | stat: -rw-r--r-- 692 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module Specinfra
  class HostInventory
    class Kernel < Base
      def get
        kernel = {}
        kernel['machine'] = backend.os_info[:arch]

        cmd = backend.command.get(:get_inventory_kernel)
        ret = backend.run_command(cmd)
        if ret.exit_status == 0
          kernel = kernel.merge(parse_uname(ret.stdout))
        end
        kernel
      end

      def parse_uname(ret)
        match = ret.match(/^(\w+) (((\d+\.\d+)\.\d+).*)$/)
        if match
          name, release, version, major = match.captures
          Hash['name', name, "release", release, "version", version, "version_major", major]
        else
          nil
        end
      end
    end
  end
end