Class: Resource
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Resource
- Defined in:
- lib/mkit/app/model/resource.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.create(yaml) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/mkit/app/model/resource.rb', line 6 def self.create(yaml) resource = Resource.new if yaml.nil? resource.max_replicas = 1 resource.min_replicas = 1 else validate(yaml) if yaml["min_replicas"] resource.min_replicas = yaml["min_replicas"] else resource.min_replicas = 1 end if yaml["max_replicas"] resource.max_replicas = yaml["max_replicas"] else resource.max_replicas = resource.min_replicas end resource.cpu_limits = yaml["limits"]["cpu"] if yaml["limits"] && yaml["limits"]["cpu"] resource.memory_limits = yaml["limits"]["memory"] if yaml["limits"] && yaml["limits"]["memory"] resource.memory_swap_limits = yaml["limits"]["memory_swap"] if yaml["limits"] && yaml["limits"]["memory_swap"] end resource end |
.validate(yaml) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/mkit/app/model/resource.rb', line 30 def self.validate(yaml) unless yaml.nil? raise_bad_configuration "resource min_replicas must be bigger or equal than 1" if yaml["min_replicas"] && yaml["min_replicas"] < 1 raise_bad_configuration "resource max_replicas must be bigger or equal than 1" if yaml["max_replicas"] && yaml["max_replicas"] < 1 if yaml["min_replicas"] && yaml["max_replicas"] raise_bad_configuration "resource max_replicas must be bigger or equal than min_replicas" if yaml["min_replicas"] > yaml["max_replicas"] end end # validate limits unless yaml.nil? || yaml["limits"].nil? resources = yaml["limits"] raise_bad_configuration "resource cpu limits must match '\\d+m'" if resources["cpu"] && resources["cpu"] !~ /\d+m$/ raise_bad_configuration "resource memory limits must match '\\d+m'" if resources["memory"] && resources["memory"] !~ /\d+m$/ raise_bad_configuration "resource memory_swap limits must match '\\d+m'" if resources["memory_swap"] && resources["memory_swap"] !~ /\d+m$/ end true end |
Instance Method Details
#to_h(options = {}) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/mkit/app/model/resource.rb', line 48 def to_h( = {}) hash = { min_replicas: self.min_replicas, max_replicas: self.max_replicas } if self.cpu_limits || self.memory_limits || self.memory_swap_limits hash[:limits] = {} hash[:limits][:cpu] = self.cpu_limits if self.cpu_limits hash[:limits][:memory] = self.memory_limits if self.memory_limits hash[:limits][:memory_swap] = self.memory_swap_limits if self.memory_swap_limits end hash.remove_symbols_from_keys end |