aboutsummaryrefslogtreecommitdiff
path: root/lib/leap_cli/config/node.rb
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2014-06-18 23:59:05 -0700
committerelijah <elijah@riseup.net>2014-06-18 23:59:05 -0700
commit3ddd8e93a161d748e5703b0856cb2eded0dd19c5 (patch)
treec33aa8f80864d7bb0e0d89799ebb7462a77d08c5 /lib/leap_cli/config/node.rb
parent755fdd7ad2e5cfc7e8c1e096d4a1939c8801764f (diff)
downloadleap_cli-3ddd8e93a161d748e5703b0856cb2eded0dd19c5.tar.gz
leap_cli-3ddd8e93a161d748e5703b0856cb2eded0dd19c5.tar.bz2
added support for 'control files', files like the .json configuration files but contain arbitrary ruby code evaluated in the context of the node.
Diffstat (limited to 'lib/leap_cli/config/node.rb')
-rw-r--r--lib/leap_cli/config/node.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/leap_cli/config/node.rb b/lib/leap_cli/config/node.rb
index 740f9bb..30af5d1 100644
--- a/lib/leap_cli/config/node.rb
+++ b/lib/leap_cli/config/node.rb
@@ -34,6 +34,29 @@ module LeapCli; module Config
end
#
+ # Return a hash table representation of ourselves, with the key equal to the @node.name,
+ # and the value equal to the fields specified in *keys.
+ #
+ # Also, the result is flattened to a single hash, so a key of 'a.b' becomes 'a_b'
+ #
+ # compare to Object#pick(*keys). This method is the sames as Config::ObjectList#pick_fields,
+ # but works on a single node.
+ #
+ # Example:
+ #
+ # node.pick('domain.internal') =>
+ #
+ # {
+ # 'node1': {
+ # 'domain_internal': 'node1.example.i'
+ # }
+ # }
+ #
+ def pick_fields(*keys)
+ {@node.name => self.pick(*keys)}
+ end
+
+ #
# can be overridden by the platform.
# returns a list of node names that should be tested before this node
#