Class: RedisCloudAutoUpgrade

Inherits:
Object
  • Object
show all
Defined in:
lib/redis_cloud_auto_upgrade.rb,
lib/redis_cloud_auto_upgrade/version.rb,
lib/redis_cloud_auto_upgrade/exceptions.rb,
lib/redis_cloud_auto_upgrade/heroku_api.rb,
lib/redis_cloud_auto_upgrade/configuration.rb

Overview

Configuration part

Defined Under Namespace

Modules: HerokuAPI Classes: Configuration

Constant Summary collapse

VERSION =
'0.2.3'
IllegalConfiguration =
Class.new RuntimeError

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.potential_upgrade!(conf, &blk) ⇒ Object



12
13
14
15
16
17
# File 'lib/redis_cloud_auto_upgrade.rb', line 12

def potential_upgrade!(conf, &blk)
  updated_conf = conf.merge(on_upgrade: blk)
  new
    .configure(updated_conf)
    .potential_upgrade!
end

Instance Method Details

#configure(config) ⇒ Object

class << self



20
21
22
23
# File 'lib/redis_cloud_auto_upgrade.rb', line 20

def configure(config)
  @config.configure config
  self
end

#current_redis_cloud_planObject



25
26
27
28
# File 'lib/redis_cloud_auto_upgrade.rb', line 25

def current_redis_cloud_plan
  @__current_redis_cloud_plan ||=
  HerokuAPI.current_redis_cloud_plan(**heroku_params)
end

#current_redis_mem_usageObject

Memoize from lab42_core gem?



31
32
33
34
35
# File 'lib/redis_cloud_auto_upgrade.rb', line 31

def current_redis_mem_usage
  return @__current_redis_mem_usage__ if @__current_redis_mem_usage__
  redis_instance = config.redis_instance || Redis.current
  @__current_redis_mem_usage__ = redis_instance.info['used_memory'].to_i
end

#needs_to_upgrade?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/redis_cloud_auto_upgrade.rb', line 37

def needs_to_upgrade?
  !(current_redis_mem_usage <  currently_available_memory * config.treshhold)
end

#potential_upgrade!Object



41
42
43
44
45
46
47
# File 'lib/redis_cloud_auto_upgrade.rb', line 41

def potential_upgrade!
  if config.valid?
    do_potential_upgrade!
  else
    fail IllegalConfiguration, config.errors_human_readable
  end
end