class FlapjackConfigurator::FlapjackSubObjectBase

Class representing a Flapjack sub-object (media, pagerduty creds, etc…)

Public Instance Methods

_create(contact_id, config) click to toggle source

Create the object

# File lib/flapjack_configurator/flapjack_sub_object_base.rb, line 9
def _create(contact_id, config)
  fail("Object #{id} exists") if @obj_exists
  # AFAIK there is not an easy way to convert hash keys to symbols outside of Rails
  sym_config = {}
  config.each { |k, v| sym_config[k.to_sym] = v }

  msg_id = id.nil? ? sym_config[:type] : id
  @logger.info("Creating #{@log_name} #{msg_id} for contact #{contact_id}")
  @logger.debug("#{@log_name} #{id} config: #{sym_config}")
  fail "Failed to create #{@log_name} #{id}" unless @create_method.call(contact_id, sym_config)
  _reload_config
end
_filter_config(config) click to toggle source
# File lib/flapjack_configurator/flapjack_sub_object_base.rb, line 22
def _filter_config(config)
  filtered_config = config.select { |k, _| @allowed_config_keys.include? k.to_sym }
  @logger.debug("#{@log_name} #{id}: Config keys filtered out: #{config.keys - filtered_config.keys}")
  return filtered_config
end
update(config) click to toggle source

Update the media from a config hash of updated values

# File lib/flapjack_configurator/flapjack_sub_object_base.rb, line 29
def update(config)
  return _update(_filter_config(config))
end