Module: Morpheus::Cli::LoadBalancersHelper
- Included in:
- LoadBalancerMonitors, LoadBalancerPoolNodes, LoadBalancerPools, LoadBalancerProfiles, LoadBalancerTypes, LoadBalancerVirtualServers, LoadBalancers
- Defined in:
- lib/morpheus/cli/mixins/load_balancers_helper.rb
Overview
including load balancers, load balancer types, virtual servers, etc.
Class Method Summary collapse
Instance Method Summary collapse
- #find_load_balancer_by_id(id) ⇒ Object
- #find_load_balancer_by_name(name) ⇒ Object
- #find_load_balancer_by_name_or_id(val) ⇒ Object
- #find_load_balancer_type_by_id(id) ⇒ Object
- #find_load_balancer_type_by_name(name) ⇒ Object
- #find_load_balancer_type_by_name_or_id(val) ⇒ Object
- #get_available_load_balancer_types(refresh = false) ⇒ Object
- #load_balancer_label ⇒ Object
- #load_balancer_label_plural ⇒ Object
- #load_balancer_list_key ⇒ Object
- #load_balancer_object_key ⇒ Object
- #load_balancer_type_for_id(val) ⇒ Object
- #load_balancer_type_for_name(val) ⇒ Object
- #load_balancer_type_for_name_or_id(val) ⇒ Object
- #load_balancer_type_label ⇒ Object
- #load_balancer_type_label_plural ⇒ Object
- #load_balancer_type_list_key ⇒ Object
- #load_balancer_type_object_key ⇒ Object
- #load_balancer_types_interface ⇒ Object
- #load_balancers_interface ⇒ Object
Class Method Details
.included(klass) ⇒ Object
9 10 11 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 9 def self.included(klass) klass.send :include, Morpheus::Cli::PrintHelper end |
Instance Method Details
#find_load_balancer_by_id(id) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 65 def find_load_balancer_by_id(id) begin json_response = load_balancers_interface.get(id.to_i) return json_response[load_balancer_object_key] rescue RestClient::Exception => e if e.response && e.response.code == 404 print_red_alert "Load Balancer not found by id #{id}" else raise e end end end |
#find_load_balancer_by_name(name) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 78 def find_load_balancer_by_name(name) lbs = load_balancers_interface.list({name: name.to_s})[load_balancer_list_key] if lbs.empty? print_red_alert "Load Balancer not found by name #{name}" return nil elsif lbs.size > 1 print_red_alert "#{lbs.size} load balancers found by name #{name}" #print_lbs_table(lbs, {color: red}) print reset,"\n\n" return nil else return lbs[0] end end |
#find_load_balancer_by_name_or_id(val) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 57 def find_load_balancer_by_name_or_id(val) if val.to_s =~ /\A\d{1,}\Z/ return find_load_balancer_by_id(val) else return find_load_balancer_by_name(val) end end |
#find_load_balancer_type_by_id(id) ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 144 def find_load_balancer_type_by_id(id) begin json_response = load_balancer_types_interface.get(id.to_i) return json_response[load_balancer_type_object_key] rescue RestClient::Exception => e if e.response && e.response.code == 404 print_red_alert "Load Balancer Type not found by id #{id}" return nil else raise e end end end |
#find_load_balancer_type_by_name(name) ⇒ Object
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 158 def find_load_balancer_type_by_name(name) json_response = load_balancer_types_interface.list({name: name.to_s}) load_balancer_types = json_response[load_balancer_type_list_key] if load_balancer_types.empty? print_red_alert "Load Balancer Type not found by name #{name}" return load_balancer_types elsif load_balancer_types.size > 1 print_red_alert "#{load_balancer_types.size} load balancer types found by name #{name}" rows = load_balancer_types.collect do |it| {id: it['id'], name: it['name']} end puts as_pretty_table(rows, [:id, :name], {color:red}) return nil else return load_balancer_types[0] end end |
#find_load_balancer_type_by_name_or_id(val) ⇒ Object
136 137 138 139 140 141 142 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 136 def find_load_balancer_type_by_name_or_id(val) if val.to_s =~ /\A\d{1,}\Z/ return find_load_balancer_type_by_id(val) else return find_load_balancer_type_by_name(val) end end |
#get_available_load_balancer_types(refresh = false) ⇒ Object
93 94 95 96 97 98 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 93 def get_available_load_balancer_types(refresh=false) if !@available_load_balancer_types || refresh @available_load_balancer_types = load_balancer_types_interface.list({max:1000})[load_balancer_type_list_key] end return @available_load_balancer_types end |
#load_balancer_label ⇒ Object
33 34 35 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 33 def load_balancer_label 'Load Balancer' end |
#load_balancer_label_plural ⇒ Object
37 38 39 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 37 def load_balancer_label_plural 'Load Balancers' end |
#load_balancer_list_key ⇒ Object
29 30 31 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 29 def load_balancer_list_key 'loadBalancers' end |
#load_balancer_object_key ⇒ Object
25 26 27 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 25 def load_balancer_object_key 'loadBalancer' end |
#load_balancer_type_for_id(val) ⇒ Object
108 109 110 111 112 113 114 115 116 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 108 def load_balancer_type_for_id(val) record = get_available_load_balancer_types().find { |z| z['id'].to_i == val.to_i} label = "Load Balancer Type" if record.nil? print_red_alert "#{label.downcase} not found by id #{val}" return nil end return record end |
#load_balancer_type_for_name(val) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 118 def load_balancer_type_for_name(val) records = get_available_load_balancer_types().select { |z| z['name'].downcase == val.downcase || z['code'].downcase == val.downcase} label = "Load Balancer Type" if records.empty? print_red_alert "#{label} not found by name '#{val}'" return nil elsif records.size > 1 print_red_alert "More than one #{label.downcase} found by name '#{val}'" print_error "\n" puts_error as_pretty_table(records, [:id, :name], {color:red}) print_red_alert "Try using ID instead" print_error reset,"\n" return nil else return records[0] end end |
#load_balancer_type_for_name_or_id(val) ⇒ Object
100 101 102 103 104 105 106 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 100 def load_balancer_type_for_name_or_id(val) if val.to_s =~ /\A\d{1,}\Z/ return load_balancer_type_for_id(val) else return load_balancer_type_for_name(val) end end |
#load_balancer_type_label ⇒ Object
49 50 51 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 49 def load_balancer_type_label 'Load Balancer Type' end |
#load_balancer_type_label_plural ⇒ Object
53 54 55 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 53 def load_balancer_type_label_plural 'Load Balancer Types' end |
#load_balancer_type_list_key ⇒ Object
45 46 47 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 45 def load_balancer_type_list_key 'loadBalancerTypes' end |
#load_balancer_type_object_key ⇒ Object
41 42 43 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 41 def load_balancer_type_object_key 'loadBalancerType' end |
#load_balancer_types_interface ⇒ Object
19 20 21 22 23 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 19 def load_balancer_types_interface # @api_client.load_balancer_types raise "#{self.class} has not defined @load_balancer_types_interface" if @load_balancer_types_interface.nil? @load_balancer_types_interface end |
#load_balancers_interface ⇒ Object
13 14 15 16 17 |
# File 'lib/morpheus/cli/mixins/load_balancers_helper.rb', line 13 def load_balancers_interface # @api_client.load_balancers raise "#{self.class} has not defined @load_balancers_interface" if @load_balancers_interface.nil? @load_balancers_interface end |