Class: DoubleDutch::SpaceCadet::NodeIP
- Inherits:
-
Object
- Object
- DoubleDutch::SpaceCadet::NodeIP
- Defined in:
- lib/dd_spacecadet/node_ip.rb
Overview
NodeIP is a class of helper methods to find a node based on its name or IP address
Constant Summary collapse
- @@nodes_by_name =
internal data structures
{}
- @@nodes_by_ip =
{}
Class Method Summary collapse
-
.clear(env) ⇒ Object
clear flushes all cached data.
-
.get_ip_for(env, name) ⇒ Object
get the IP address for a node based on its label (name).
-
.get_name_for(env, ip) ⇒ Object
get the label (name) for a node based on its IP address.
Class Method Details
.clear(env) ⇒ Object
clear flushes all cached data
53 54 55 56 |
# File 'lib/dd_spacecadet/node_ip.rb', line 53 def clear(env) @@nodes_by_name.delete(env) @@nodes_by_ip.delete(env) end |
.get_ip_for(env, name) ⇒ Object
get the IP address for a node based on its label (name)
30 31 32 33 34 35 36 37 38 |
# File 'lib/dd_spacecadet/node_ip.rb', line 30 def get_ip_for(env, name) refresh_nodes(env) ip = @@nodes_by_name.dig(env, name) raise ServerNotFound, "unable to locate #{name} in #{env} data" if ip.nil? ip end |
.get_name_for(env, ip) ⇒ Object
get the label (name) for a node based on its IP address
42 43 44 45 46 47 48 49 50 |
# File 'lib/dd_spacecadet/node_ip.rb', line 42 def get_name_for(env, ip) refresh_nodes(env) name = @@nodes_by_ip.dig(env, ip) raise ServerNotFound, "unable to locate #{ip} in #{env} data" if name.nil? name end |