class Idcf::Cli::Service::Ilb::BaseServerForProtocol
- add/delete
-
server for protocol
Attributes
api[R]
options[R]
Public Instance Methods
do(api, o, lb_id, protocol, protocol_port, params)
click to toggle source
do
@param api [Idcf::Ilb::Lib::Api] @param o [Hash] options @param lb_id [String] @param protocol [Stirng] http @param protocol_port [int] 80 @param params [Hash] {ipaddress: '0.0.0.0', port: 80}
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 19 def do(api, o, lb_id, protocol, protocol_port, params) @api = api @options = o lb = search_lb(lbs, lb_id) config = search_config(lb['configs'], protocol, protocol_port) if config.nil? not_param = o[:protocol].nil? ? 'conf_id' : 'protocol' cli_error "A target isn't found(#{not_param})" end set_last_command(lb_id, config, params) config['servers'] end
Protected Instance Methods
lbs()
click to toggle source
get lb list
@return Array in Hash @raise
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 44 def lbs @api.do(:list_loadbalancers) end
search_config(configs, protocol, p_port)
click to toggle source
config search
@param configs [Hash] @param protocol [String] @param p_port [String] @return Hash @raise
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 72 def search_config(configs, protocol, p_port) result = nil configs.each do |v| next unless target_config?(v, protocol, p_port) result = v break end result end
search_lb(list, id)
click to toggle source
search lb target
@param list @param id @return [Hash] @raise
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 54 def search_lb(list, id) lbs = list.select do |v| v['id'] == id end msg = "Target lb_id not found ( #{id} )" cli_error msg if lbs.empty? lbs[0] end
set_last_command(_lb_id, _config, _target)
click to toggle source
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 36 def set_last_command(_lb_id, _config, _target) cli_error 'override required' end
target_config?(config, protocol, p_port)
click to toggle source
is target config
@param config [Hash] @param protocol [String] @param p_port [String] @return boolean @raise
# File lib/idcf/cli/service/ilb/base_server_for_protocol.rb, line 89 def target_config?(config, protocol, p_port) unless config['frontend_protocol'] == protocol && config['port'].to_s == p_port.to_s return false end return true if config['state'].casecmp('running').zero? msg = 'The operation is impossible because the target is currently being processed' cli_error msg end