Class: FileSystem
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- FileSystem
- Defined in:
- app/models/file_system.rb
Instance Method Summary collapse
- #available_in_Gb ⇒ Object
- #available_space_in_Gb ⇒ Object
- #available_space_in_percent ⇒ Object
- #disks_15_min_grain(start_time, end_time) ⇒ Object
- #disks_5_min_grain(start_time, end_time) ⇒ Object
- #is_dev? ⇒ Boolean
- #latest_disk_entry ⇒ Object
- #size_in_Gb ⇒ Object
- #status ⇒ Object
- #total_space_in_Gb ⇒ Object
- #used_in_Gb ⇒ Object
- #used_space_in_Gb ⇒ Object
Instance Method Details
#available_in_Gb ⇒ Object
45 46 47 48 49 50 51 |
# File 'app/models/file_system.rb', line 45 def available_in_Gb if latest_disk_entry latest_disk_entry.available / 1024 / 1024 else 0 end end |
#available_space_in_Gb ⇒ Object
53 54 55 |
# File 'app/models/file_system.rb', line 53 def available_space_in_Gb available_in_Gb end |
#available_space_in_percent ⇒ Object
57 58 59 |
# File 'app/models/file_system.rb', line 57 def available_space_in_percent sprintf('%.2f', available_space_in_Gb.to_f / total_space_in_Gb * 100) end |
#disks_15_min_grain(start_time, end_time) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/models/file_system.rb', line 96 def disks_15_min_grain(start_time, end_time) disk = DB.fetch("SELECT ROUND(AVG(available)/1024/1024, 1) AS available, ROUND(AVG(used)/1024/1024, 1) AS used, grain_15_min FROM disks WHERE file_system_id = #{self.id} AND grain_15_min >= '#{start_time.to_fifteen_minute_grain_format.to_sql_format}' AND grain_15_min <= '#{end_time.to_fifteen_minute_grain_format.to_sql_format}' GROUP BY grain_15_min;").all time_range = (start_time..end_time) series = [] series[0] = [] series[1] = [] series[2] = [] series[3] = [] time_range.step(900) do |fifteen| series[0] << fifteen.to_minute_format if disk.size > 0 and disk[0][:grain_15_min].to_minute_format == fifteen.to_minute_format disk_for_this_dim = disk.shift series[1] << (disk_for_this_dim[:available] + disk_for_this_dim[:used]).to_f series[2] << disk_for_this_dim[:used].to_f else series[1] << -1 series[2] << -1 end end series end |
#disks_5_min_grain(start_time, end_time) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/models/file_system.rb', line 71 def disks_5_min_grain(start_time, end_time) disk = DB.fetch("SELECT ROUND(AVG(available)/1024/1024, 1) AS available, ROUND(AVG(used)/1024/1024, 1) AS used, grain_5_min FROM disks WHERE file_system_id = #{self.id} AND grain_5_min >= '#{start_time.to_five_minute_grain_format.to_sql_format}' AND grain_5_min <= '#{end_time.to_five_minute_grain_format.to_sql_format}' GROUP BY grain_5_min;").all time_range = (start_time..end_time) series = [] series[0] = [] series[1] = [] series[2] = [] series[3] = [] time_range.step(300) do |five| series[0] << five.to_minute_format if disk.size > 0 and disk[0][:grain_5_min].to_minute_format == five.to_minute_format disk_for_this_dim = disk.shift series[1] << (disk_for_this_dim[:available] + disk_for_this_dim[:used]).to_f series[2] << disk_for_this_dim[:used].to_f else series[1] << -1 series[2] << -1 end end series end |
#is_dev? ⇒ Boolean
21 22 23 |
# File 'app/models/file_system.rb', line 21 def is_dev? self.name.scan(/^\/dev/).size > 0 end |
#latest_disk_entry ⇒ Object
6 7 8 |
# File 'app/models/file_system.rb', line 6 def latest_disk_entry @latest_disk_entry ||= self.disks_dataset.order(:created_at).last end |
#size_in_Gb ⇒ Object
25 26 27 |
# File 'app/models/file_system.rb', line 25 def size_in_Gb available_in_Gb + used_in_Gb end |
#status ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'app/models/file_system.rb', line 61 def status if available_space_in_percent.to_i > 30 STATUS_GREEN elsif available_space_in_percent.to_i > 10 STATUS_YELLOW else STATUS_RED end end |
#total_space_in_Gb ⇒ Object
29 30 31 |
# File 'app/models/file_system.rb', line 29 def total_space_in_Gb size_in_Gb end |
#used_in_Gb ⇒ Object
33 34 35 36 37 38 39 |
# File 'app/models/file_system.rb', line 33 def used_in_Gb if latest_disk_entry latest_disk_entry.used / 1024 / 1024 else 0 end end |
#used_space_in_Gb ⇒ Object
41 42 43 |
# File 'app/models/file_system.rb', line 41 def used_space_in_Gb used_in_Gb end |