module SystemdServiceCheck::Utils
Included in: SystemdServiceCheck::Base
Constants
- PROPERTY
TODO: systemctl show -p
- PROPERTY_TO_SNAKE_SYM
- Result
- Server
- Service
Public Instance Methods
configure_target_envs(argv, servers)
click to toggle source
@param argv [Array<String>] Array of ENVs specified with the `ssc check` command. @param servers [Array<Utils::Server>] Server
settings. @return [Array<String>] Environment list to be processed.
# File lib/systemd_service_check/utils.rb, line 36 def configure_target_envs(argv, servers) all_envs = servers.map { |s| s[:env] }.uniq target_envs = all_envs & argv # If there is no argument. target_envs = all_envs.first if target_envs.empty? && argv.empty? # If there is only one argument and it is `all`. target_envs = all_envs if argv.size == 1 && argv.first == 'all' Array(target_envs) end
configure_target_servers(servers, target_envs, role)
click to toggle source
@param servers [Array<Utils::Server>] @param target_envs [Array<String>] Environment list to be processed. @return [Array<Utils::Server>]
# File lib/systemd_service_check/utils.rb, line 51 def configure_target_servers(servers, target_envs, role) servers.select { |s| target_envs.include?(s[:env]) } .select { |s| role.nil? || role.empty? ? true : s[:role] == role } end
servers_from(yaml_filename)
click to toggle source
@param yaml_filename [String] YAML filename with the description of the setting. @return [Array<Utils::Server>]
# File lib/systemd_service_check/utils.rb, line 23 def servers_from(yaml_filename) # rubocop:disable Metrics/AbcSize yaml = JSON.parse(YAML.load_file(yaml_filename).to_json, symbolize_names: true) yaml[:servers].map do |s| raise InvalidOptionError, "ENV: #{s[:env]}" if [s[:password], s[:key]].all?(&:nil?) # rubocop:disable Metrics/LineLength options = { password: s[:password], keys: [s[:key] || ""] } Server.new(s[:env], s[:role], s[:ip], s[:user], options, s[:services]) end end