Class: ServerInfo

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/generators/kebab_remote_api/install/templates/models/server_info.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#cpu_loadObject

Returns the value of attribute cpu_load.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def cpu_load
  @cpu_load
end

#disk_totalObject

Returns the value of attribute disk_total.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def disk_total
  @disk_total
end

#disk_usedObject

Returns the value of attribute disk_used.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def disk_used
  @disk_used
end

#mem_totalObject

Returns the value of attribute mem_total.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def mem_total
  @mem_total
end

#mem_usedObject

Returns the value of attribute mem_used.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def mem_used
  @mem_used
end

#uptimeObject

Returns the value of attribute uptime.



5
6
7
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 5

def uptime
  @uptime
end

Instance Method Details

#as_jsonObject



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 24

def as_json
  { "CPU" => self.cpu_load,
    "Memory" => {
      "Total" => self.mem_total,
      "Used" => self.mem_used,
    },
    "Disk" => {
      "Total" => self.disk_total,
      "Used" => self.disk_used
    },
    "Uptime" => self.uptime
  }.to_json
end

#initObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/generators/kebab_remote_api/install/templates/models/server_info.rb', line 7

def init
  mem = Vmstat.memory
  # Getting disk info for main partition is, temprorarily, for only
  # UN*X-like systems, such as GNU/Linux, BSD, Mac OS X etc.
  # Windows implementation will be added in future
  disk = Vmstat.disk('/')
  # CPU load data => Float typed
  self.cpu_load = Vmstat.load_average.five_minutes
  # All size data => Megabytes (MB)
  self.mem_total = mem.total_bytes / 1024**2
  self.mem_used = (mem.total_bytes - mem.free_bytes) / 1024**2
  self.disk_total = disk.total_bytes / 1024**2
  self.disk_used = (disk.total_bytes - disk.free_bytes) / 1024**2
  # Uptime data => Minutes
  self.uptime = (Time.now - Vmstat.boot_time).to_i / 60
end