Module: Splash::Exiter

Overview

Exiter namespace

Constant Summary collapse

EXIT_MAP =
{

   # context execution
   :not_root => {:message => "This operation need to be run as root (use sudo or rvmsudo)", :code => 10},
   :options_incompatibility => {:message => "Options incompatibility", :code => 40},
   :service_dependence_missing => {:message => "Splash Service dependence missing", :code => 60},

   # config
   :specific_config_required => {:message => "Specific configuration required", :code => 30},
   :splash_setup_error => {:message => "Splash Setup terminated unsuccessfully", :code => 25},
   :splash_setup_success => {:message => "Splash Setup terminated successfully", :code => 0},
   :splash_sanitycheck_error => {:message => "Splash Sanitycheck terminated unsuccessfully", :code => 20},
   :splash_sanitycheck_success => {:message => "Splash Sanitycheck terminated successfully", :code => 0},
   :configuration_error => {:message => "Splash Configuration Error", :code => 50},


   # global
   :quiet_exit => {:code => 0},
   :error_exit => {:code => 99, :message => "Operation failure"},

   # events
   :interrupt => {:message => "Splash user operation interrupted", :code => 33},

   # request
   :not_found => {:message => "Object not found", :code => 44},
   :already_exist => {:message => "Object already exist", :code => 48},

   # daemon
   :status_ok => {:message => "Status OK", :code => 0},
   :status_ko => {:message => "Status KO", :code => 31}

}

Constants included from Loggers

Loggers::ALIAS, Loggers::LEVELS

Constants included from Constants

Constants::AUTHOR, Constants::BACKENDS_STRUCT, Constants::CONFIG_FILE, Constants::COPYRIGHT, Constants::DAEMON_LOGMON_SCHEDULING, Constants::DAEMON_METRICS_SCHEDULING, Constants::DAEMON_PID_FILE, Constants::DAEMON_PROCESS_NAME, Constants::DAEMON_PROCMON_SCHEDULING, Constants::DAEMON_STDERR_TRACE, Constants::DAEMON_STDOUT_TRACE, Constants::DEFAULT_RETENTION, Constants::EMAIL, Constants::EXECUTION_TEMPLATE, Constants::EXECUTION_TEMPLATE_TOKENS_LIST, Constants::LICENSE, Constants::LOGGERS_STRUCT, Constants::PID_PATH, Constants::PROMETHEUS_ALERTMANAGER_URL, Constants::PROMETHEUS_PUSHGATEWAY_URL, Constants::PROMETHEUS_URL, Constants::TRACE_PATH, Constants::TRANSPORTS_STRUCT, Constants::VERSION, Constants::WEBADMIN_IP, Constants::WEBADMIN_PID_FILE, Constants::WEBADMIN_PID_PATH, Constants::WEBADMIN_PORT, Constants::WEBADMIN_PROCESS_NAME, Constants::WEBADMIN_PROXY, Constants::WEBADMIN_STDERR_TRACE, Constants::WEBADMIN_STDOUT_TRACE

Instance Method Summary collapse

Methods included from Loggers

#change_logger, #get_logger, #get_session

Methods included from Config

#get_config, #rehash_config

Methods included from ConfigUtilities

#addservice, #checkconfig, #flush_backend, #setupsplash

Methods included from Helpers

#check_unicode_term, #daemonize, #format_by_extensions, #format_response, #get_processes, #group_root, #install_file, #is_root?, #make_folder, #make_link, #run_as_root, #search_file_in_gem, #user_root, #verify_file, #verify_folder, #verify_link, #verify_service

Instance Method Details

#splash_exit(options = {}) ⇒ Object

exiter wrapper

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :case (Symbol)

    an exit case

  • :more (String)

    a complementary string to display



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/splash/exiter.rb', line 46

def splash_exit(options = {})
  log = get_logger
  mess = ""
  mess = EXIT_MAP[options[:case]][:message] if EXIT_MAP[options[:case]].include? :message
  mess << " : " unless mess.empty? or not options[:more]
  mess << "#{options[:more]}" if options[:more]
  if  EXIT_MAP[options[:case]][:code] == 0 then
    log.success mess unless mess.empty?
    exit 0
  else
    log.fatal mess unless mess.empty?
    exit EXIT_MAP[options[:case]][:code]
  end
end

#splash_return(options = {}) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/splash/exiter.rb', line 61

def splash_return(options = {})

  data = EXIT_MAP[options[:case]].clone
  data[:status] = (data[:code]>0)? :failure : :success
  data[:more] = options[:more] if options[:more]
  return data
end