corl 0.4.29 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/Gemfile.lock +16 -13
  4. data/VERSION +1 -1
  5. data/bin/corl +21 -1
  6. data/bootstrap/os/ubuntu/00_base.sh +2 -2
  7. data/bootstrap/os/ubuntu/06_puppet.sh +7 -12
  8. data/bootstrap/os/ubuntu/09_nucleon.sh +1 -1
  9. data/bootstrap/os/ubuntu/10_corl.sh +1 -4
  10. data/corl.gemspec +193 -40
  11. data/lib/CORL/builder/identity.rb +68 -0
  12. data/lib/CORL/builder/package.rb +75 -0
  13. data/lib/CORL/configuration/file.rb +5 -5
  14. data/lib/CORL/machine/{aws.rb → AWS.rb} +2 -2
  15. data/lib/CORL/machine/physical.rb +1 -1
  16. data/lib/CORL/machine/rackspace.rb +1 -1
  17. data/lib/CORL/machine/vagrant.rb +2 -2
  18. data/lib/CORL/network/{default.rb → CORL.rb} +1 -1
  19. data/lib/CORL/node/{aws.rb → AWS.rb} +1 -1
  20. data/lib/CORL/node/local.rb +1 -1
  21. data/lib/CORL/node/vagrant.rb +7 -2
  22. data/lib/CORL/provisioner/puppetnode.rb +139 -131
  23. data/lib/core/build.rb +112 -0
  24. data/lib/core/facade.rb +48 -8
  25. data/lib/core/mixin/builder.rb +158 -0
  26. data/lib/core/mixin/lookup.rb +51 -20
  27. data/lib/core/mixin/machine/ssh.rb +16 -4
  28. data/lib/core/plugin/builder.rb +49 -0
  29. data/lib/core/plugin/{action.rb → cloud_action.rb} +22 -16
  30. data/lib/core/plugin/configuration.rb +9 -3
  31. data/lib/core/plugin/fog_machine.rb +3 -3
  32. data/lib/core/plugin/fog_node.rb +1 -1
  33. data/lib/core/plugin/machine.rb +2 -2
  34. data/lib/core/plugin/network.rb +39 -10
  35. data/lib/core/plugin/node.rb +95 -35
  36. data/lib/core/plugin/provisioner.rb +133 -113
  37. data/lib/core/util/puppet/resource.rb +1 -1
  38. data/lib/core/vagrant/actions/delete_cache.rb +7 -1
  39. data/lib/core/vagrant/commands/launcher.rb +2 -2
  40. data/lib/core/vagrant/config.rb +29 -2
  41. data/lib/corl.rb +9 -8
  42. data/lib/facter/corl_config_ready.rb +1 -1
  43. data/lib/facter/vagrant_exists.rb +1 -1
  44. data/lib/nucleon/action/cloud/create.rb +51 -0
  45. data/lib/nucleon/action/cloud/hiera.rb +61 -0
  46. data/lib/{CORL/action → nucleon/action/cloud}/images.rb +11 -2
  47. data/lib/nucleon/action/cloud/inspect.rb +47 -0
  48. data/lib/{CORL/action → nucleon/action/cloud}/machines.rb +11 -2
  49. data/lib/{CORL/action → nucleon/action/cloud}/regions.rb +11 -2
  50. data/lib/{CORL/action → nucleon/action/cloud}/vagrantfile.rb +11 -2
  51. data/lib/{CORL/action/ip.rb → nucleon/action/node/IP.rb} +11 -2
  52. data/lib/{CORL/action/ssh.rb → nucleon/action/node/SSH.rb} +15 -7
  53. data/lib/{CORL/action → nucleon/action/node}/authorize.rb +11 -2
  54. data/lib/{CORL/action → nucleon/action/node}/bootstrap.rb +13 -4
  55. data/lib/nucleon/action/node/build.rb +49 -0
  56. data/lib/{CORL/action → nucleon/action/node}/destroy.rb +14 -5
  57. data/lib/{CORL/action → nucleon/action/node}/exec.rb +11 -2
  58. data/lib/{CORL/action → nucleon/action/node}/facts.rb +12 -3
  59. data/lib/{CORL/action → nucleon/action/node}/image.rb +13 -4
  60. data/lib/nucleon/action/node/keypair.rb +85 -0
  61. data/lib/{CORL/action → nucleon/action/node}/lookup.rb +13 -4
  62. data/lib/{CORL/action → nucleon/action/node}/provision.rb +30 -8
  63. data/lib/{CORL/action → nucleon/action/node}/reboot.rb +13 -4
  64. data/lib/{CORL/action → nucleon/action/node}/revoke.rb +11 -2
  65. data/lib/{CORL/action → nucleon/action/node}/seed.rb +13 -4
  66. data/lib/{CORL/action → nucleon/action/node}/spawn.rb +19 -9
  67. data/lib/{CORL/action → nucleon/action/node}/start.rb +13 -4
  68. data/lib/{CORL/action → nucleon/action/node}/stop.rb +13 -4
  69. data/lib/{CORL → nucleon}/event/puppet.rb +2 -2
  70. data/lib/{CORL → nucleon}/template/environment.rb +2 -2
  71. data/lib/puppet/indirector/corl.rb +7 -4
  72. data/lib/puppet/parser/functions/corl_resources.rb +1 -0
  73. data/lib/puppet/parser/functions/global_array.rb +2 -1
  74. data/lib/puppet/parser/functions/global_hash.rb +2 -1
  75. data/lib/puppet/parser/functions/global_param.rb +2 -1
  76. data/lib/puppet/parser/functions/module_array.rb +2 -1
  77. data/lib/puppet/parser/functions/module_hash.rb +3 -2
  78. data/lib/puppet/parser/functions/module_param.rb +3 -2
  79. data/lib/puppet/parser/functions/render.rb +1 -0
  80. data/locales/en.yml +80 -0
  81. data/rdoc/site/0.4.29/CORL/Action/Authorize.html +485 -0
  82. data/rdoc/site/0.4.29/CORL/Action/Bootstrap.html +546 -0
  83. data/rdoc/site/0.4.29/CORL/Action/Build.html +396 -0
  84. data/rdoc/site/0.4.29/CORL/Action/Destroy.html +515 -0
  85. data/rdoc/site/0.4.29/CORL/Action/Exec.html +472 -0
  86. data/rdoc/site/0.4.29/CORL/Action/Facts.html +398 -0
  87. data/rdoc/site/0.4.29/CORL/Action/Image.html +515 -0
  88. data/rdoc/site/0.4.29/CORL/Action/Images.html +514 -0
  89. data/rdoc/site/0.4.29/CORL/Action/Ip.html +395 -0
  90. data/rdoc/site/0.4.29/CORL/Action/Keypair.html +494 -0
  91. data/rdoc/site/0.4.29/CORL/Action/Lookup.html +474 -0
  92. data/rdoc/site/0.4.29/CORL/Action/Machines.html +509 -0
  93. data/rdoc/site/0.4.29/CORL/Action/Provision.html +456 -0
  94. data/rdoc/site/0.4.29/CORL/Action/Reboot.html +515 -0
  95. data/rdoc/site/0.4.29/CORL/Action/Regions.html +509 -0
  96. data/rdoc/site/0.4.29/CORL/Action/Revoke.html +483 -0
  97. data/rdoc/site/0.4.29/CORL/Action/Seed.html +544 -0
  98. data/rdoc/site/0.4.29/CORL/Action/Spawn.html +616 -0
  99. data/rdoc/site/0.4.29/CORL/Action/Ssh.html +526 -0
  100. data/rdoc/site/0.4.29/CORL/Action/Start.html +515 -0
  101. data/rdoc/site/0.4.29/CORL/Action/Stop.html +515 -0
  102. data/rdoc/site/0.4.29/CORL/Action/Vagrantfile.html +457 -0
  103. data/rdoc/site/0.4.29/CORL/Action.html +360 -0
  104. data/rdoc/site/0.4.29/CORL/Configuration/File.html +1128 -0
  105. data/rdoc/site/0.4.29/CORL/Configuration.html +339 -0
  106. data/rdoc/site/0.4.29/CORL/Errors.html +339 -0
  107. data/rdoc/site/0.4.29/CORL/Event/Puppet.html +673 -0
  108. data/rdoc/site/0.4.29/CORL/Event.html +339 -0
  109. data/rdoc/site/0.4.29/CORL/Facade.html +742 -0
  110. data/rdoc/site/0.4.29/CORL/Machine/Aws.html +733 -0
  111. data/rdoc/site/0.4.29/CORL/Machine/Fog.html +1269 -0
  112. data/rdoc/site/0.4.29/CORL/Machine/Physical.html +1039 -0
  113. data/rdoc/site/0.4.29/CORL/Machine/Rackspace.html +514 -0
  114. data/rdoc/site/0.4.29/CORL/Machine/Vagrant.html +1300 -0
  115. data/rdoc/site/0.4.29/CORL/Machine.html +343 -0
  116. data/rdoc/site/0.4.29/CORL/Mixin/Action/Keypair.html +572 -0
  117. data/rdoc/site/0.4.29/CORL/Mixin/Action.html +339 -0
  118. data/rdoc/site/0.4.29/CORL/Mixin/Lookup.html +954 -0
  119. data/rdoc/site/0.4.29/CORL/Mixin/Machine/SSH.html +643 -0
  120. data/rdoc/site/0.4.29/CORL/Mixin/Machine.html +339 -0
  121. data/rdoc/site/0.4.29/CORL/Mixin/Macro/NetworkSettings.html +464 -0
  122. data/rdoc/site/0.4.29/CORL/Mixin/Macro.html +339 -0
  123. data/rdoc/site/0.4.29/CORL/Mixin.html +342 -0
  124. data/rdoc/site/0.4.29/CORL/Network/Default.html +391 -0
  125. data/rdoc/site/0.4.29/CORL/Network.html +339 -0
  126. data/rdoc/site/0.4.29/CORL/Node/Aws.html +716 -0
  127. data/rdoc/site/0.4.29/CORL/Node/Fog.html +1192 -0
  128. data/rdoc/site/0.4.29/CORL/Node/Local.html +424 -0
  129. data/rdoc/site/0.4.29/CORL/Node/Rackspace.html +709 -0
  130. data/rdoc/site/0.4.29/CORL/Node/Vagrant.html +1451 -0
  131. data/rdoc/site/0.4.29/CORL/Node.html +343 -0
  132. data/rdoc/site/0.4.29/CORL/Plugin/CloudAction.html +810 -0
  133. data/rdoc/site/0.4.29/CORL/Plugin.html +339 -0
  134. data/rdoc/site/0.4.29/CORL/Provisioner/Puppetnode.html +1095 -0
  135. data/rdoc/site/0.4.29/CORL/Provisioner.html +339 -0
  136. data/rdoc/site/0.4.29/CORL/Template/Environment.html +528 -0
  137. data/rdoc/site/0.4.29/CORL/Template.html +339 -0
  138. data/rdoc/site/0.4.29/CORL/Util/Puppet/Resource.html +1038 -0
  139. data/rdoc/site/0.4.29/CORL/Util/Puppet/ResourceGroup.html +920 -0
  140. data/rdoc/site/0.4.29/CORL/Util/Puppet.html +1087 -0
  141. data/rdoc/site/0.4.29/CORL/Util.html +341 -0
  142. data/rdoc/site/0.4.29/CORL/Vagrant/Config.html +896 -0
  143. data/rdoc/site/0.4.29/CORL/Vagrant.html +418 -0
  144. data/rdoc/site/0.4.29/CORL.html +465 -0
  145. data/rdoc/site/0.4.29/Facter/Util/Loader.html +396 -0
  146. data/rdoc/site/0.4.29/Facter/Util.html +339 -0
  147. data/rdoc/site/0.4.29/Facter.html +339 -0
  148. data/rdoc/site/0.4.29/Fog/Compute/AWS/Server.html +423 -0
  149. data/rdoc/site/0.4.29/Fog/Compute/AWS.html +345 -0
  150. data/rdoc/site/0.4.29/Fog/Compute/RackspaceV2/Server.html +408 -0
  151. data/rdoc/site/0.4.29/Fog/Compute/RackspaceV2.html +345 -0
  152. data/rdoc/site/0.4.29/Fog/Compute.html +340 -0
  153. data/rdoc/site/0.4.29/Fog.html +340 -0
  154. data/rdoc/site/0.4.29/Hiera/Backend.html +422 -0
  155. data/rdoc/site/0.4.29/Hiera/Corl_logger.html +449 -0
  156. data/rdoc/site/0.4.29/Hiera.html +346 -0
  157. data/rdoc/site/0.4.29/Nucleon/Config.html +357 -0
  158. data/rdoc/site/0.4.29/Nucleon/Plugin/Base.html +345 -0
  159. data/rdoc/site/0.4.29/Nucleon/Plugin/Configuration.html +1213 -0
  160. data/rdoc/site/0.4.29/Nucleon/Plugin/Machine.html +1279 -0
  161. data/rdoc/site/0.4.29/Nucleon/Plugin/Network.html +1425 -0
  162. data/rdoc/site/0.4.29/Nucleon/Plugin/Node.html +3715 -0
  163. data/rdoc/site/0.4.29/Nucleon/Plugin/Provisioner.html +1297 -0
  164. data/rdoc/site/0.4.29/Nucleon/Plugin.html +344 -0
  165. data/rdoc/site/0.4.29/Nucleon.html +344 -0
  166. data/rdoc/site/0.4.29/Object.html +358 -0
  167. data/rdoc/site/0.4.29/Puppet/DataBinding/Corl.html +345 -0
  168. data/rdoc/site/0.4.29/Puppet/DataBinding.html +338 -0
  169. data/rdoc/site/0.4.29/Puppet/Indirector/Corl.html +454 -0
  170. data/rdoc/site/0.4.29/Puppet/Indirector.html +338 -0
  171. data/rdoc/site/0.4.29/Puppet/Parser/Functions.html +480 -0
  172. data/rdoc/site/0.4.29/Puppet/Parser.html +338 -0
  173. data/rdoc/site/0.4.29/Puppet.html +338 -0
  174. data/rdoc/site/0.4.29/README_rdoc.html +340 -0
  175. data/rdoc/site/0.4.29/Vagrant/Config/Loader.html +399 -0
  176. data/rdoc/site/0.4.29/Vagrant/Config.html +339 -0
  177. data/rdoc/site/0.4.29/Vagrant/Vagrantfile.html +392 -0
  178. data/rdoc/site/0.4.29/Vagrant.html +346 -0
  179. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Action/DeleteCache.html +396 -0
  180. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Action/InitKeys.html +408 -0
  181. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Action/LinkNetwork.html +406 -0
  182. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Action.html +341 -0
  183. data/rdoc/site/0.4.29/VagrantPlugins/CORL/BaseAction.html +491 -0
  184. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Command/Launcher.html +533 -0
  185. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Command.html +339 -0
  186. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Config/CORL.html +732 -0
  187. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Config.html +339 -0
  188. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Plugin.html +345 -0
  189. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Provisioner/CORL.html +536 -0
  190. data/rdoc/site/0.4.29/VagrantPlugins/CORL/Provisioner.html +339 -0
  191. data/rdoc/site/0.4.29/VagrantPlugins/CORL.html +346 -0
  192. data/rdoc/site/0.4.29/VagrantPlugins.html +346 -0
  193. data/rdoc/site/0.4.29/created.rid +96 -0
  194. data/rdoc/site/0.4.29/images/add.png +0 -0
  195. data/rdoc/site/0.4.29/images/brick.png +0 -0
  196. data/rdoc/site/0.4.29/images/brick_link.png +0 -0
  197. data/rdoc/site/0.4.29/images/bug.png +0 -0
  198. data/rdoc/site/0.4.29/images/bullet_black.png +0 -0
  199. data/rdoc/site/0.4.29/images/bullet_toggle_minus.png +0 -0
  200. data/rdoc/site/0.4.29/images/bullet_toggle_plus.png +0 -0
  201. data/rdoc/site/0.4.29/images/date.png +0 -0
  202. data/rdoc/site/0.4.29/images/delete.png +0 -0
  203. data/rdoc/site/0.4.29/images/find.png +0 -0
  204. data/rdoc/site/0.4.29/images/loadingAnimation.gif +0 -0
  205. data/rdoc/site/0.4.29/images/macFFBgHack.png +0 -0
  206. data/rdoc/site/0.4.29/images/package.png +0 -0
  207. data/rdoc/site/0.4.29/images/page_green.png +0 -0
  208. data/rdoc/site/0.4.29/images/page_white_text.png +0 -0
  209. data/rdoc/site/0.4.29/images/page_white_width.png +0 -0
  210. data/rdoc/site/0.4.29/images/plugin.png +0 -0
  211. data/rdoc/site/0.4.29/images/ruby.png +0 -0
  212. data/rdoc/site/0.4.29/images/tag_blue.png +0 -0
  213. data/rdoc/site/0.4.29/images/tag_green.png +0 -0
  214. data/rdoc/site/0.4.29/images/transparent.png +0 -0
  215. data/rdoc/site/0.4.29/images/wrench.png +0 -0
  216. data/rdoc/site/0.4.29/images/wrench_orange.png +0 -0
  217. data/rdoc/site/0.4.29/images/zoom.png +0 -0
  218. data/rdoc/site/0.4.29/index.html +339 -0
  219. data/rdoc/site/0.4.29/js/darkfish.js +155 -0
  220. data/rdoc/site/0.4.29/js/jquery.js +18 -0
  221. data/rdoc/site/0.4.29/js/navigation.js +142 -0
  222. data/rdoc/site/0.4.29/js/search.js +94 -0
  223. data/rdoc/site/0.4.29/js/search_index.js +1 -0
  224. data/rdoc/site/0.4.29/js/searcher.js +228 -0
  225. data/rdoc/site/0.4.29/rdoc.css +543 -0
  226. data/rdoc/site/0.4.29/table_of_contents.html +1561 -0
  227. metadata +192 -45
  228. data/lib/CORL/action/build.rb +0 -22
  229. data/lib/CORL/action/keypair.rb +0 -56
  230. data/lib/core/mod/facter_loader.rb +0 -15
@@ -0,0 +1,3715 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>class Nucleon::Plugin::Node - corl 0.4.29</title>
8
+
9
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../../index.html">Home</a>
28
+ <a href="../../table_of_contents.html#classes">Classes</a>
29
+ <a href="../../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/core/plugin/node.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link">CORL.plugin_class(:base)
63
+
64
+ </nav>
65
+
66
+ <!-- Included Modules -->
67
+ <nav id="includes-section" class="section">
68
+ <h3 class="section-header">Included Modules</h3>
69
+
70
+ <ul class="link-list">
71
+
72
+
73
+ <li><span class="include">Parallel</span>
74
+
75
+
76
+ </ul>
77
+ </nav>
78
+
79
+ <!-- Method Quickref -->
80
+ <nav id="method-list-section" class="section">
81
+ <h3 class="section-header">Methods</h3>
82
+
83
+ <ul class="link-list">
84
+
85
+ <li><a href="#method-c-build_info">::build_info</a>
86
+
87
+ <li><a href="#method-c-translate">::translate</a>
88
+
89
+ <li><a href="#method-c-translate_reference">::translate_reference</a>
90
+
91
+ <li><a href="#method-i-action">#action</a>
92
+
93
+ <li><a href="#method-i-attach_keys">#attach_keys</a>
94
+
95
+ <li><a href="#method-i-bootstrap">#bootstrap</a>
96
+
97
+ <li><a href="#method-i-bootstrap_script">#bootstrap_script</a>
98
+
99
+ <li><a href="#method-i-bootstrap_script-3D">#bootstrap_script=</a>
100
+
101
+ <li><a href="#method-i-build">#build</a>
102
+
103
+ <li><a href="#method-i-build_time">#build_time</a>
104
+
105
+ <li><a href="#method-i-build_time-3D">#build_time=</a>
106
+
107
+ <li><a href="#method-i-cli">#cli</a>
108
+
109
+ <li><a href="#method-i-cli_capture">#cli_capture</a>
110
+
111
+ <li><a href="#method-i-cli_check">#cli_check</a>
112
+
113
+ <li><a href="#method-i-command">#command</a>
114
+
115
+ <li><a href="#method-i-create">#create</a>
116
+
117
+ <li><a href="#method-i-create_image">#create_image</a>
118
+
119
+ <li><a href="#method-i-create_machine">#create_machine</a>
120
+
121
+ <li><a href="#method-i-custom_facts">#custom_facts</a>
122
+
123
+ <li><a href="#method-i-custom_facts-3D">#custom_facts=</a>
124
+
125
+ <li><a href="#method-i-delete_keys">#delete_keys</a>
126
+
127
+ <li><a href="#method-i-destroy">#destroy</a>
128
+
129
+ <li><a href="#method-i-download">#download</a>
130
+
131
+ <li><a href="#method-i-exec">#exec</a>
132
+
133
+ <li><a href="#method-i-filter_output">#filter_output</a>
134
+
135
+ <li><a href="#method-i-hiera_facts">#hiera_facts</a>
136
+
137
+ <li><a href="#method-i-hiera_override_dir">#hiera_override_dir</a>
138
+
139
+ <li><a href="#method-i-home">#home</a>
140
+
141
+ <li><a href="#method-i-hostname">#hostname</a>
142
+
143
+ <li><a href="#method-i-id">#id</a>
144
+
145
+ <li><a href="#method-i-image">#image</a>
146
+
147
+ <li><a href="#method-i-image-3D">#image=</a>
148
+
149
+ <li><a href="#method-i-image_id">#image_id</a>
150
+
151
+ <li><a href="#method-i-image_search_text">#image_search_text</a>
152
+
153
+ <li><a href="#method-i-images">#images</a>
154
+
155
+ <li><a href="#method-i-local-3F">#local?</a>
156
+
157
+ <li><a href="#method-i-local_machine">#local_machine</a>
158
+
159
+ <li><a href="#method-i-local_machine-3D">#local_machine=</a>
160
+
161
+ <li><a href="#method-i-localize">#localize</a>
162
+
163
+ <li><a href="#method-i-lookup_array">#lookup_array</a>
164
+
165
+ <li><a href="#method-i-lookup_config">#lookup_config</a>
166
+
167
+ <li><a href="#method-i-lookup_facts">#lookup_facts</a>
168
+
169
+ <li><a href="#method-i-lookup_hash">#lookup_hash</a>
170
+
171
+ <li><a href="#method-i-machine">#machine</a>
172
+
173
+ <li><a href="#method-i-machine-3D">#machine=</a>
174
+
175
+ <li><a href="#method-i-machine_config">#machine_config</a>
176
+
177
+ <li><a href="#method-i-machine_type">#machine_type</a>
178
+
179
+ <li><a href="#method-i-machine_type_id">#machine_type_id</a>
180
+
181
+ <li><a href="#method-i-machine_types">#machine_types</a>
182
+
183
+ <li><a href="#method-i-method_missing">#method_missing</a>
184
+
185
+ <li><a href="#method-i-normalize">#normalize</a>
186
+
187
+ <li><a href="#method-i-private_ip">#private_ip</a>
188
+
189
+ <li><a href="#method-i-private_key">#private_key</a>
190
+
191
+ <li><a href="#method-i-private_key-3D">#private_key=</a>
192
+
193
+ <li><a href="#method-i-profiles">#profiles</a>
194
+
195
+ <li><a href="#method-i-profiles-3D">#profiles=</a>
196
+
197
+ <li><a href="#method-i-provisioner_info">#provisioner_info</a>
198
+
199
+ <li><a href="#method-i-provisioners">#provisioners</a>
200
+
201
+ <li><a href="#method-i-public_ip">#public_ip</a>
202
+
203
+ <li><a href="#method-i-public_key">#public_key</a>
204
+
205
+ <li><a href="#method-i-public_key-3D">#public_key=</a>
206
+
207
+ <li><a href="#method-i-reload">#reload</a>
208
+
209
+ <li><a href="#method-i-remove_plugin">#remove_plugin</a>
210
+
211
+ <li><a href="#method-i-render_image">#render_image</a>
212
+
213
+ <li><a href="#method-i-render_machine_type">#render_machine_type</a>
214
+
215
+ <li><a href="#method-i-run">#run</a>
216
+
217
+ <li><a href="#method-i-save">#save</a>
218
+
219
+ <li><a href="#method-i-send_files">#send_files</a>
220
+
221
+ <li><a href="#method-i-ssh_path">#ssh_path</a>
222
+
223
+ <li><a href="#method-i-ssh_port">#ssh_port</a>
224
+
225
+ <li><a href="#method-i-ssh_port-3D">#ssh_port=</a>
226
+
227
+ <li><a href="#method-i-start">#start</a>
228
+
229
+ <li><a href="#method-i-state">#state</a>
230
+
231
+ <li><a href="#method-i-stop">#stop</a>
232
+
233
+ <li><a href="#method-i-terminal">#terminal</a>
234
+
235
+ <li><a href="#method-i-translate_reference">#translate_reference</a>
236
+
237
+ <li><a href="#method-i-upload">#upload</a>
238
+
239
+ <li><a href="#method-i-usable_image-3F">#usable_image?</a>
240
+
241
+ <li><a href="#method-i-user">#user</a>
242
+
243
+ <li><a href="#method-i-user-3D">#user=</a>
244
+
245
+ </ul>
246
+ </nav>
247
+
248
+ </div>
249
+
250
+ <div id="project-metadata">
251
+ <nav id="fileindex-section" class="section project-section">
252
+ <h3 class="section-header">Pages</h3>
253
+
254
+ <ul>
255
+
256
+ <li class="file"><a href="../../README_rdoc.html">README</a>
257
+
258
+ </ul>
259
+ </nav>
260
+
261
+ <nav id="classindex-section" class="section project-section">
262
+ <h3 class="section-header">Class and Module Index</h3>
263
+
264
+ <ul class="link-list">
265
+
266
+ <li><a href="../../CORL.html">CORL</a>
267
+
268
+ <li><a href="../../CORL/Action.html">CORL::Action</a>
269
+
270
+ <li><a href="../../CORL/Action/Authorize.html">CORL::Action::Authorize</a>
271
+
272
+ <li><a href="../../CORL/Action/Bootstrap.html">CORL::Action::Bootstrap</a>
273
+
274
+ <li><a href="../../CORL/Action/Build.html">CORL::Action::Build</a>
275
+
276
+ <li><a href="../../CORL/Action/Destroy.html">CORL::Action::Destroy</a>
277
+
278
+ <li><a href="../../CORL/Action/Exec.html">CORL::Action::Exec</a>
279
+
280
+ <li><a href="../../CORL/Action/Facts.html">CORL::Action::Facts</a>
281
+
282
+ <li><a href="../../CORL/Action/Image.html">CORL::Action::Image</a>
283
+
284
+ <li><a href="../../CORL/Action/Images.html">CORL::Action::Images</a>
285
+
286
+ <li><a href="../../CORL/Action/Ip.html">CORL::Action::Ip</a>
287
+
288
+ <li><a href="../../CORL/Action/Keypair.html">CORL::Action::Keypair</a>
289
+
290
+ <li><a href="../../CORL/Action/Lookup.html">CORL::Action::Lookup</a>
291
+
292
+ <li><a href="../../CORL/Action/Machines.html">CORL::Action::Machines</a>
293
+
294
+ <li><a href="../../CORL/Action/Provision.html">CORL::Action::Provision</a>
295
+
296
+ <li><a href="../../CORL/Action/Reboot.html">CORL::Action::Reboot</a>
297
+
298
+ <li><a href="../../CORL/Action/Regions.html">CORL::Action::Regions</a>
299
+
300
+ <li><a href="../../CORL/Action/Revoke.html">CORL::Action::Revoke</a>
301
+
302
+ <li><a href="../../CORL/Action/Seed.html">CORL::Action::Seed</a>
303
+
304
+ <li><a href="../../CORL/Action/Spawn.html">CORL::Action::Spawn</a>
305
+
306
+ <li><a href="../../CORL/Action/Ssh.html">CORL::Action::Ssh</a>
307
+
308
+ <li><a href="../../CORL/Action/Start.html">CORL::Action::Start</a>
309
+
310
+ <li><a href="../../CORL/Action/Stop.html">CORL::Action::Stop</a>
311
+
312
+ <li><a href="../../CORL/Action/Vagrantfile.html">CORL::Action::Vagrantfile</a>
313
+
314
+ <li><a href="../../CORL/Configuration.html">CORL::Configuration</a>
315
+
316
+ <li><a href="../../CORL/Configuration/File.html">CORL::Configuration::File</a>
317
+
318
+ <li><a href="../../CORL/Errors.html">CORL::Errors</a>
319
+
320
+ <li><a href="../../CORL/Event.html">CORL::Event</a>
321
+
322
+ <li><a href="../../CORL/Event/Puppet.html">CORL::Event::Puppet</a>
323
+
324
+ <li><a href="../../CORL/Facade.html">CORL::Facade</a>
325
+
326
+ <li><a href="../../CORL/Machine.html">CORL::Machine</a>
327
+
328
+ <li><a href="../../CORL/Machine/Aws.html">CORL::Machine::Aws</a>
329
+
330
+ <li><a href="../../CORL/Machine/Fog.html">CORL::Machine::Fog</a>
331
+
332
+ <li><a href="../../CORL/Machine/Physical.html">CORL::Machine::Physical</a>
333
+
334
+ <li><a href="../../CORL/Machine/Rackspace.html">CORL::Machine::Rackspace</a>
335
+
336
+ <li><a href="../../CORL/Machine/Vagrant.html">CORL::Machine::Vagrant</a>
337
+
338
+ <li><a href="../../CORL/Mixin.html">CORL::Mixin</a>
339
+
340
+ <li><a href="../../CORL/Mixin/Action.html">CORL::Mixin::Action</a>
341
+
342
+ <li><a href="../../CORL/Mixin/Action/Keypair.html">CORL::Mixin::Action::Keypair</a>
343
+
344
+ <li><a href="../../CORL/Mixin/Lookup.html">CORL::Mixin::Lookup</a>
345
+
346
+ <li><a href="../../CORL/Mixin/Machine.html">CORL::Mixin::Machine</a>
347
+
348
+ <li><a href="../../CORL/Mixin/Machine/SSH.html">CORL::Mixin::Machine::SSH</a>
349
+
350
+ <li><a href="../../CORL/Mixin/Macro.html">CORL::Mixin::Macro</a>
351
+
352
+ <li><a href="../../CORL/Mixin/Macro/NetworkSettings.html">CORL::Mixin::Macro::NetworkSettings</a>
353
+
354
+ <li><a href="../../CORL/Network.html">CORL::Network</a>
355
+
356
+ <li><a href="../../CORL/Network/Default.html">CORL::Network::Default</a>
357
+
358
+ <li><a href="../../CORL/Node.html">CORL::Node</a>
359
+
360
+ <li><a href="../../CORL/Node/Aws.html">CORL::Node::Aws</a>
361
+
362
+ <li><a href="../../CORL/Node/Fog.html">CORL::Node::Fog</a>
363
+
364
+ <li><a href="../../CORL/Node/Local.html">CORL::Node::Local</a>
365
+
366
+ <li><a href="../../CORL/Node/Rackspace.html">CORL::Node::Rackspace</a>
367
+
368
+ <li><a href="../../CORL/Node/Vagrant.html">CORL::Node::Vagrant</a>
369
+
370
+ <li><a href="../../CORL/Plugin.html">CORL::Plugin</a>
371
+
372
+ <li><a href="../../CORL/Plugin/CloudAction.html">CORL::Plugin::CloudAction</a>
373
+
374
+ <li><a href="../../CORL/Provisioner.html">CORL::Provisioner</a>
375
+
376
+ <li><a href="../../CORL/Provisioner/Puppetnode.html">CORL::Provisioner::Puppetnode</a>
377
+
378
+ <li><a href="../../CORL/Template.html">CORL::Template</a>
379
+
380
+ <li><a href="../../CORL/Template/Environment.html">CORL::Template::Environment</a>
381
+
382
+ <li><a href="../../CORL/Util.html">CORL::Util</a>
383
+
384
+ <li><a href="../../CORL/Util/Puppet.html">CORL::Util::Puppet</a>
385
+
386
+ <li><a href="../../CORL/Util/Puppet/Resource.html">CORL::Util::Puppet::Resource</a>
387
+
388
+ <li><a href="../../CORL/Util/Puppet/ResourceGroup.html">CORL::Util::Puppet::ResourceGroup</a>
389
+
390
+ <li><a href="../../CORL/Vagrant.html">CORL::Vagrant</a>
391
+
392
+ <li><a href="../../CORL/Vagrant/Config.html">CORL::Vagrant::Config</a>
393
+
394
+ <li><a href="../../VagrantPlugins.html">VagrantPlugins</a>
395
+
396
+ <li><a href="../../VagrantPlugins/CORL.html">VagrantPlugins::CORL</a>
397
+
398
+ <li><a href="../../VagrantPlugins/CORL/Action.html">VagrantPlugins::CORL::Action</a>
399
+
400
+ <li><a href="../../VagrantPlugins/CORL/Action/DeleteCache.html">VagrantPlugins::CORL::Action::DeleteCache</a>
401
+
402
+ <li><a href="../../VagrantPlugins/CORL/Action/InitKeys.html">VagrantPlugins::CORL::Action::InitKeys</a>
403
+
404
+ <li><a href="../../VagrantPlugins/CORL/Action/LinkNetwork.html">VagrantPlugins::CORL::Action::LinkNetwork</a>
405
+
406
+ <li><a href="../../VagrantPlugins/CORL/BaseAction.html">VagrantPlugins::CORL::BaseAction</a>
407
+
408
+ <li><a href="../../VagrantPlugins/CORL/Command.html">VagrantPlugins::CORL::Command</a>
409
+
410
+ <li><a href="../../VagrantPlugins/CORL/Command/Launcher.html">VagrantPlugins::CORL::Command::Launcher</a>
411
+
412
+ <li><a href="../../VagrantPlugins/CORL/Config.html">VagrantPlugins::CORL::Config</a>
413
+
414
+ <li><a href="../../VagrantPlugins/CORL/Config/CORL.html">VagrantPlugins::CORL::Config::CORL</a>
415
+
416
+ <li><a href="../../VagrantPlugins/CORL/Plugin.html">VagrantPlugins::CORL::Plugin</a>
417
+
418
+ <li><a href="../../VagrantPlugins/CORL/Provisioner.html">VagrantPlugins::CORL::Provisioner</a>
419
+
420
+ <li><a href="../../VagrantPlugins/CORL/Provisioner/CORL.html">VagrantPlugins::CORL::Provisioner::CORL</a>
421
+
422
+ <li><a href="../../Nucleon.html">Nucleon</a>
423
+
424
+ <li><a href="../../Nucleon/Config.html">Nucleon::Config</a>
425
+
426
+ <li><a href="../../Nucleon/Plugin.html">Nucleon::Plugin</a>
427
+
428
+ <li><a href="../../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
429
+
430
+ <li><a href="../../Nucleon/Plugin/Configuration.html">Nucleon::Plugin::Configuration</a>
431
+
432
+ <li><a href="../../Nucleon/Plugin/Machine.html">Nucleon::Plugin::Machine</a>
433
+
434
+ <li><a href="../../Nucleon/Plugin/Network.html">Nucleon::Plugin::Network</a>
435
+
436
+ <li><a href="../../Nucleon/Plugin/Node.html">Nucleon::Plugin::Node</a>
437
+
438
+ <li><a href="../../Nucleon/Plugin/Provisioner.html">Nucleon::Plugin::Provisioner</a>
439
+
440
+ <li><a href="../../Puppet.html">Puppet</a>
441
+
442
+ <li><a href="../../Puppet/DataBinding.html">Puppet::DataBinding</a>
443
+
444
+ <li><a href="../../Puppet/DataBinding/Corl.html">Puppet::DataBinding::Corl</a>
445
+
446
+ <li><a href="../../Puppet/Indirector.html">Puppet::Indirector</a>
447
+
448
+ <li><a href="../../Puppet/Indirector/Corl.html">Puppet::Indirector::Corl</a>
449
+
450
+ <li><a href="../../Puppet/Parser.html">Puppet::Parser</a>
451
+
452
+ <li><a href="../../Puppet/Parser/Functions.html">Puppet::Parser::Functions</a>
453
+
454
+ <li><a href="../../Fog.html">Fog</a>
455
+
456
+ <li><a href="../../Fog/Compute.html">Fog::Compute</a>
457
+
458
+ <li><a href="../../Fog/Compute/AWS.html">Fog::Compute::AWS</a>
459
+
460
+ <li><a href="../../Fog/Compute/AWS/Server.html">Fog::Compute::AWS::Server</a>
461
+
462
+ <li><a href="../../Fog/Compute/RackspaceV2.html">Fog::Compute::RackspaceV2</a>
463
+
464
+ <li><a href="../../Fog/Compute/RackspaceV2/Server.html">Fog::Compute::RackspaceV2::Server</a>
465
+
466
+ <li><a href="../../Vagrant.html">Vagrant</a>
467
+
468
+ <li><a href="../../Vagrant/Config.html">Vagrant::Config</a>
469
+
470
+ <li><a href="../../Vagrant/Config/Loader.html">Vagrant::Config::Loader</a>
471
+
472
+ <li><a href="../../Vagrant/Vagrantfile.html">Vagrant::Vagrantfile</a>
473
+
474
+ <li><a href="../../Facter.html">Facter</a>
475
+
476
+ <li><a href="../../Facter/Util.html">Facter::Util</a>
477
+
478
+ <li><a href="../../Facter/Util/Loader.html">Facter::Util::Loader</a>
479
+
480
+ <li><a href="../../Hiera.html">Hiera</a>
481
+
482
+ <li><a href="../../Hiera/Backend.html">Hiera::Backend</a>
483
+
484
+ <li><a href="../../Hiera/Corl_logger.html">Hiera::Corl_logger</a>
485
+
486
+ <li><a href="../../Object.html">Object</a>
487
+
488
+ </ul>
489
+ </nav>
490
+
491
+ </div>
492
+ </nav>
493
+
494
+ <div id="documentation">
495
+ <h1 class="class">class Nucleon::Plugin::Node</h1>
496
+
497
+ <div id="description" class="description">
498
+
499
+ </div><!-- description -->
500
+
501
+
502
+
503
+
504
+ <section id="5Buntitled-5D" class="documentation-section">
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+ <!-- Methods -->
514
+
515
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
516
+ <h3 class="section-header">Public Class Methods</h3>
517
+
518
+
519
+ <div id="method-c-build_info" class="method-detail ">
520
+
521
+ <div class="method-heading">
522
+ <span class="method-name">build_info</span><span
523
+ class="method-args">(type, data)</span>
524
+ <span class="method-click-advice">click to toggle source</span>
525
+ </div>
526
+
527
+
528
+ <div class="method-description">
529
+
530
+
531
+
532
+
533
+
534
+ <div class="method-source-code" id="build_info-source">
535
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1141</span>
536
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">build_info</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>)
537
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*,\s*/</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
538
+ <span class="ruby-keyword">super</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>)
539
+ <span class="ruby-keyword">end</span></pre>
540
+ </div><!-- build_info-source -->
541
+
542
+ </div>
543
+
544
+
545
+
546
+
547
+ </div><!-- build_info-method -->
548
+
549
+
550
+ <div id="method-c-translate" class="method-detail ">
551
+
552
+ <div class="method-heading">
553
+ <span class="method-name">translate</span><span
554
+ class="method-args">(data)</span>
555
+ <span class="method-click-advice">click to toggle source</span>
556
+ </div>
557
+
558
+
559
+ <div class="method-description">
560
+
561
+
562
+
563
+
564
+
565
+ <div class="method-source-code" id="translate-source">
566
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1148</span>
567
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">translate</span>(<span class="ruby-identifier">data</span>)
568
+ <span class="ruby-identifier">options</span> = <span class="ruby-keyword">super</span>(<span class="ruby-identifier">data</span>)
569
+
570
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">data</span>
571
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">String</span>
572
+ <span class="ruby-identifier">options</span> = { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">data</span> }
573
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">Hash</span>
574
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">data</span>
575
+ <span class="ruby-keyword">end</span>
576
+
577
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:name</span>)
578
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">matches</span> = <span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>])
579
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:provider</span>] = <span class="ruby-identifier">matches</span>[<span class="ruby-value">:provider</span>]
580
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>] = <span class="ruby-identifier">matches</span>[<span class="ruby-value">:name</span>]
581
+
582
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Translating node options: #{options.inspect}&quot;</span>)
583
+ <span class="ruby-keyword">end</span>
584
+ <span class="ruby-keyword">end</span>
585
+ <span class="ruby-identifier">options</span>
586
+ <span class="ruby-keyword">end</span></pre>
587
+ </div><!-- translate-source -->
588
+
589
+ </div>
590
+
591
+
592
+
593
+
594
+ </div><!-- translate-method -->
595
+
596
+
597
+ <div id="method-c-translate_reference" class="method-detail ">
598
+
599
+ <div class="method-heading">
600
+ <span class="method-name">translate_reference</span><span
601
+ class="method-args">(reference)</span>
602
+ <span class="method-click-advice">click to toggle source</span>
603
+ </div>
604
+
605
+
606
+ <div class="method-description">
607
+
608
+
609
+
610
+
611
+
612
+ <div class="method-source-code" id="translate_reference-source">
613
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1171</span>
614
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>)
615
+ <span class="ruby-comment"># ex: rackspace:::web1.staging.example.com</span>
616
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">reference</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">reference</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^\s*([a-zA-Z0-9_-]+):::([^\s]+)\s*$/</span>)
617
+ <span class="ruby-identifier">provider</span> = <span class="ruby-node">$1</span>
618
+ <span class="ruby-identifier">name</span> = <span class="ruby-node">$2</span>
619
+
620
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Translating node reference: #{provider} #{name}&quot;</span>)
621
+
622
+ <span class="ruby-identifier">info</span> = {
623
+ <span class="ruby-value">:provider</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">provider</span>,
624
+ <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>
625
+ }
626
+
627
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Project reference info: #{info.inspect}&quot;</span>)
628
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">info</span>
629
+ <span class="ruby-keyword">end</span>
630
+ <span class="ruby-keyword">nil</span>
631
+ <span class="ruby-keyword">end</span></pre>
632
+ </div><!-- translate_reference-source -->
633
+
634
+ </div>
635
+
636
+
637
+
638
+
639
+ </div><!-- translate_reference-method -->
640
+
641
+
642
+ </section><!-- public-class-method-details -->
643
+
644
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
645
+ <h3 class="section-header">Public Instance Methods</h3>
646
+
647
+
648
+ <div id="method-i-action" class="method-detail ">
649
+
650
+ <div class="method-heading">
651
+ <span class="method-name">action</span><span
652
+ class="method-args">(provider, options = {}) { |op, data| ... }</span>
653
+ <span class="method-click-advice">click to toggle source</span>
654
+ </div>
655
+
656
+
657
+ <div class="method-description">
658
+
659
+
660
+
661
+
662
+
663
+ <div class="method-source-code" id="action-source">
664
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 716</span>
665
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">action</span>(<span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span> = {})
666
+ <span class="ruby-identifier">codes</span> <span class="ruby-value">:network_load_error</span>
667
+
668
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">defaults</span>({
669
+ <span class="ruby-value">:log_level</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">log_level</span>,
670
+ <span class="ruby-value">:net_remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:edit</span>,
671
+ <span class="ruby-value">:net_provider</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">network</span>.<span class="ruby-identifier">plugin_provider</span>
672
+ })
673
+
674
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Executing remote action #{provider} with encoded arguments: #{config.export.inspect}&quot;</span>)
675
+
676
+ <span class="ruby-identifier">encoded_config</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">clean</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>))
677
+ <span class="ruby-identifier">action_config</span> = <span class="ruby-identifier">extended_config</span>(<span class="ruby-value">:action</span>, {
678
+ <span class="ruby-value">:command</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">provider</span>,
679
+ <span class="ruby-value">:data</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-value">:encoded</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">encoded_config</span> }
680
+ })
681
+
682
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">command</span>(<span class="ruby-value">:corl</span>, { <span class="ruby-value">:subcommand</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">action_config</span>, <span class="ruby-value">:as_admin</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
683
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
684
+ <span class="ruby-keyword">end</span>
685
+
686
+ <span class="ruby-comment"># Update local network configuration so we capture any updates</span>
687
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">network</span>.<span class="ruby-identifier">load</span>({ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>[<span class="ruby-value">:net_remote</span>], <span class="ruby-value">:pull</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> })
688
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">network_load_error</span>
689
+ <span class="ruby-keyword">end</span>
690
+ <span class="ruby-identifier">result</span>
691
+ <span class="ruby-keyword">end</span></pre>
692
+ </div><!-- action-source -->
693
+
694
+ </div>
695
+
696
+
697
+
698
+
699
+ </div><!-- action-method -->
700
+
701
+
702
+ <div id="method-i-attach_keys" class="method-detail ">
703
+
704
+ <div class="method-heading">
705
+ <span class="method-name">attach_keys</span><span
706
+ class="method-args">(keypair)</span>
707
+ <span class="method-click-advice">click to toggle source</span>
708
+ </div>
709
+
710
+
711
+ <div class="method-description">
712
+
713
+
714
+
715
+
716
+
717
+ <div class="method-source-code" id="attach_keys-source">
718
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 408</span>
719
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">attach_keys</span>(<span class="ruby-identifier">keypair</span>)
720
+ <span class="ruby-identifier">base_name</span> = <span class="ruby-node">&quot;#{plugin_provider}-#{plugin_name}&quot;</span>
721
+ <span class="ruby-identifier">save_config</span> = {
722
+ <span class="ruby-value">:pull</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
723
+ <span class="ruby-value">:push</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
724
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Updating SSH keys for node #{plugin_provider} (#{plugin_name})&quot;</span>
725
+ }
726
+
727
+ <span class="ruby-identifier">active</span> = <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
728
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">run</span>.<span class="ruby-identifier">authorize</span>({ <span class="ruby-value">:public_key</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">keypair</span>.<span class="ruby-identifier">ssh_key</span> }) <span class="ruby-keyword">if</span> <span class="ruby-identifier">active</span>
729
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
730
+
731
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">active</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
732
+ <span class="ruby-identifier">private_key</span> = <span class="ruby-identifier">network</span>.<span class="ruby-identifier">attach_data</span>(<span class="ruby-value">:keys</span>, <span class="ruby-node">&quot;#{base_name}-id_#{keypair.type}&quot;</span>, <span class="ruby-identifier">keypair</span>.<span class="ruby-identifier">encrypted_key</span>)
733
+ <span class="ruby-identifier">public_key</span> = <span class="ruby-identifier">network</span>.<span class="ruby-identifier">attach_data</span>(<span class="ruby-value">:keys</span>, <span class="ruby-node">&quot;#{base_name}-id_#{keypair.type}.pub&quot;</span>, <span class="ruby-identifier">keypair</span>.<span class="ruby-identifier">ssh_key</span>)
734
+
735
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">private_key</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">public_key</span>
736
+ <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">chmod</span>(<span class="ruby-value">0600</span>, <span class="ruby-identifier">private_key</span>)
737
+ <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">chmod</span>(<span class="ruby-value">0644</span>, <span class="ruby-identifier">public_key</span>)
738
+
739
+ <span class="ruby-identifier">save_config</span>[<span class="ruby-value">:files</span>] = [ <span class="ruby-identifier">private_key</span>, <span class="ruby-identifier">public_key</span> ]
740
+
741
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">private_key</span> = <span class="ruby-identifier">private_key</span>
742
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">public_key</span> = <span class="ruby-identifier">public_key</span>
743
+
744
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">extended_config</span>(<span class="ruby-value">:key_save</span>, <span class="ruby-identifier">save_config</span>))
745
+ <span class="ruby-keyword">end</span>
746
+ <span class="ruby-keyword">end</span>
747
+ <span class="ruby-identifier">success</span>
748
+ <span class="ruby-keyword">end</span></pre>
749
+ </div><!-- attach_keys-source -->
750
+
751
+ </div>
752
+
753
+
754
+
755
+
756
+ </div><!-- attach_keys-method -->
757
+
758
+
759
+ <div id="method-i-bootstrap" class="method-detail ">
760
+
761
+ <div class="method-heading">
762
+ <span class="method-name">bootstrap</span><span
763
+ class="method-args">(local_path, options = {}) { |"send_| ... }</span>
764
+ <span class="method-click-advice">click to toggle source</span>
765
+ </div>
766
+
767
+
768
+ <div class="method-description">
769
+
770
+
771
+
772
+
773
+
774
+ <div class="method-source-code" id="bootstrap-source">
775
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 830</span>
776
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">bootstrap</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">options</span> = {})
777
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
778
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">unknown_status</span>
779
+
780
+ <span class="ruby-identifier">bootstrap_name</span> = <span class="ruby-string">&#39;bootstrap&#39;</span>
781
+ <span class="ruby-identifier">bootstrap_path</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:bootstrap_path</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">CORL</span>.<span class="ruby-identifier">lib_path</span>, <span class="ruby-string">&#39;..&#39;</span>, <span class="ruby-identifier">bootstrap_name</span>))
782
+ <span class="ruby-identifier">bootstrap_glob</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:bootstrap_glob</span>, <span class="ruby-string">&#39;**/*.sh&#39;</span>)
783
+ <span class="ruby-identifier">bootstrap_init</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:bootstrap_init</span>, <span class="ruby-string">&#39;bootstrap.sh&#39;</span>)
784
+
785
+ <span class="ruby-identifier">user_home</span> = <span class="ruby-identifier">config</span>[<span class="ruby-value">:home</span>]
786
+ <span class="ruby-identifier">auth_files</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get_array</span>(<span class="ruby-value">:auth_files</span>)
787
+
788
+ <span class="ruby-identifier">codes</span> <span class="ruby-value">:local_path_not_found</span>,
789
+ <span class="ruby-value">:home_path_lookup_failure</span>,
790
+ <span class="ruby-value">:auth_upload_failure</span>,
791
+ <span class="ruby-value">:root_auth_copy_failure</span>,
792
+ <span class="ruby-value">:bootstrap_upload_failure</span>,
793
+ <span class="ruby-value">:bootstrap_exec_failure</span>,
794
+ <span class="ruby-value">:reload_failure</span>
795
+
796
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">local_path</span>)
797
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">user_home</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">user_home</span> = <span class="ruby-identifier">home</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:home_env_var</span>, <span class="ruby-string">&#39;HOME&#39;</span>), <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:force</span>, <span class="ruby-keyword">false</span>))
798
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
799
+
800
+ <span class="ruby-comment"># Transmit authorisation / credential files</span>
801
+ <span class="ruby-identifier">package_files</span> = [ <span class="ruby-string">&#39;.fog&#39;</span>, <span class="ruby-string">&#39;.netrc&#39;</span>, <span class="ruby-string">&#39;.google-privatekey.p12&#39;</span>, <span class="ruby-string">&#39;.vimrc&#39;</span> ]
802
+ <span class="ruby-identifier">auth_files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
803
+ <span class="ruby-identifier">package_files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">local_path</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39;/&#39;</span>, <span class="ruby-string">&#39;&#39;</span>)
804
+ <span class="ruby-keyword">end</span>
805
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">send_files</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">user_home</span>, <span class="ruby-identifier">package_files</span>, <span class="ruby-string">&#39;0600&#39;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
806
+ <span class="ruby-keyword">yield</span>(<span class="ruby-node">&quot;send_#{op}&quot;</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
807
+ <span class="ruby-identifier">data</span>
808
+ <span class="ruby-keyword">end</span>
809
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">send_success</span>
810
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">auth_upload_failure</span>
811
+ <span class="ruby-keyword">end</span>
812
+
813
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">user</span>.<span class="ruby-identifier">to_sym</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:root_user</span>, <span class="ruby-value">:root</span>).<span class="ruby-identifier">to_sym</span>
814
+ <span class="ruby-identifier">auth_files</span> = <span class="ruby-identifier">package_files</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;&#39;#{path}&#39;&quot;</span>}
815
+ <span class="ruby-identifier">root_home_path</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:root_home</span>, <span class="ruby-string">&#39;/root&#39;</span>)
816
+
817
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">command</span>(<span class="ruby-node">&quot;cp #{auth_files.join(&#39; &#39;)} #{root_home_path}&quot;</span>, { <span class="ruby-value">:as_admin</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> })
818
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">root_auth_copy_failure</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
819
+ <span class="ruby-keyword">end</span>
820
+
821
+ <span class="ruby-comment"># Send bootstrap package</span>
822
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
823
+ <span class="ruby-identifier">remote_bootstrap_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">user_home</span>, <span class="ruby-identifier">bootstrap_name</span>)
824
+
825
+ <span class="ruby-identifier">cli</span>.<span class="ruby-identifier">rm</span>(<span class="ruby-string">&#39;-Rf&#39;</span>, <span class="ruby-identifier">remote_bootstrap_path</span>)
826
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">send_files</span>(<span class="ruby-identifier">bootstrap_path</span>, <span class="ruby-identifier">remote_bootstrap_path</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&#39;0700&#39;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
827
+ <span class="ruby-keyword">yield</span>(<span class="ruby-node">&quot;send_#{op}&quot;</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
828
+ <span class="ruby-identifier">data</span>
829
+ <span class="ruby-keyword">end</span>
830
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">send_success</span>
831
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">bootstrap_upload_failure</span>
832
+ <span class="ruby-keyword">end</span>
833
+
834
+ <span class="ruby-comment"># Execute bootstrap process</span>
835
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
836
+ <span class="ruby-identifier">remote_script</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">remote_bootstrap_path</span>, <span class="ruby-identifier">bootstrap_init</span>)
837
+
838
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">bootstrap_script</span> = <span class="ruby-identifier">remote_script</span>
839
+
840
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">command</span>(<span class="ruby-node">&quot;HOSTNAME=&#39;#{hostname}&#39; #{remote_script}&quot;</span>, { <span class="ruby-value">:as_admin</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
841
+ <span class="ruby-keyword">yield</span>(<span class="ruby-node">&quot;exec_#{op}&quot;</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
842
+ <span class="ruby-identifier">data</span>
843
+ <span class="ruby-keyword">end</span>
844
+
845
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
846
+ <span class="ruby-comment"># Reboot the machine</span>
847
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">reload</span>
848
+ <span class="ruby-identifier">warn</span>(<span class="ruby-string">&#39;corl.core.node.bootstrap.reload&#39;</span>)
849
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">reload_failure</span>
850
+ <span class="ruby-keyword">end</span>
851
+ <span class="ruby-keyword">else</span>
852
+ <span class="ruby-identifier">warn</span>(<span class="ruby-string">&#39;corl.core.node.bootstrap.status&#39;</span>, { <span class="ruby-value">:script</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote_script</span>, <span class="ruby-value">:status</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> })
853
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">bootstrap_exec_failure</span>
854
+ <span class="ruby-keyword">end</span>
855
+ <span class="ruby-keyword">end</span>
856
+ <span class="ruby-keyword">end</span>
857
+ <span class="ruby-keyword">else</span>
858
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">home_path_lookup_failure</span>
859
+ <span class="ruby-keyword">end</span>
860
+ <span class="ruby-keyword">else</span>
861
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">local_path_not_found</span>
862
+ <span class="ruby-keyword">end</span>
863
+ <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
864
+ <span class="ruby-keyword">end</span></pre>
865
+ </div><!-- bootstrap-source -->
866
+
867
+ </div>
868
+
869
+
870
+
871
+
872
+ </div><!-- bootstrap-method -->
873
+
874
+
875
+ <div id="method-i-bootstrap_script" class="method-detail ">
876
+
877
+ <div class="method-heading">
878
+ <span class="method-name">bootstrap_script</span><span
879
+ class="method-args">()</span>
880
+ <span class="method-click-advice">click to toggle source</span>
881
+ </div>
882
+
883
+
884
+ <div class="method-description">
885
+
886
+
887
+
888
+
889
+
890
+ <div class="method-source-code" id="bootstrap_script-source">
891
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 357</span>
892
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">bootstrap_script</span>
893
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:bootstrap</span>]
894
+ <span class="ruby-keyword">end</span></pre>
895
+ </div><!-- bootstrap_script-source -->
896
+
897
+ </div>
898
+
899
+
900
+
901
+
902
+ </div><!-- bootstrap_script-method -->
903
+
904
+
905
+ <div id="method-i-bootstrap_script-3D" class="method-detail ">
906
+
907
+ <div class="method-heading">
908
+ <span class="method-name">bootstrap_script=</span><span
909
+ class="method-args">(bootstrap)</span>
910
+ <span class="method-click-advice">click to toggle source</span>
911
+ </div>
912
+
913
+
914
+ <div class="method-description">
915
+
916
+
917
+
918
+
919
+
920
+ <div class="method-source-code" id="bootstrap_script-3D-source">
921
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 353</span>
922
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">bootstrap_script=</span><span class="ruby-identifier">bootstrap</span>
923
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:bootstrap</span>] = <span class="ruby-identifier">bootstrap</span>
924
+ <span class="ruby-keyword">end</span></pre>
925
+ </div><!-- bootstrap_script-3D-source -->
926
+
927
+ </div>
928
+
929
+
930
+
931
+
932
+ </div><!-- bootstrap_script-3D-method -->
933
+
934
+
935
+ <div id="method-i-build" class="method-detail ">
936
+
937
+ <div class="method-heading">
938
+ <span class="method-name">build</span><span
939
+ class="method-args">(options = {})</span>
940
+ <span class="method-click-advice">click to toggle source</span>
941
+ </div>
942
+
943
+
944
+ <div class="method-description">
945
+
946
+
947
+
948
+
949
+
950
+ <div class="method-source-code" id="build-source">
951
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 376</span>
952
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">build</span>(<span class="ruby-identifier">options</span> = {})
953
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
954
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
955
+
956
+ <span class="ruby-identifier">provisioners</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">provider</span>, <span class="ruby-identifier">collection</span><span class="ruby-operator">|</span>
957
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Building #{provider} provisioner collection&quot;</span>)
958
+
959
+ <span class="ruby-identifier">collection</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">provisioner</span><span class="ruby-operator">|</span>
960
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Building #{name} provisioner&quot;</span>)
961
+
962
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">provisioner</span>.<span class="ruby-identifier">build</span>(<span class="ruby-identifier">options</span>)
963
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
964
+ <span class="ruby-keyword">break</span>
965
+ <span class="ruby-keyword">end</span>
966
+ <span class="ruby-keyword">end</span>
967
+ <span class="ruby-keyword">end</span>
968
+
969
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">build_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
970
+
971
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:save</span>, <span class="ruby-keyword">true</span>)
972
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">success</span>(<span class="ruby-string">&quot;Saving successful build&quot;</span>)
973
+
974
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">extended_config</span>(<span class="ruby-value">:build</span>, {
975
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:message</span>, <span class="ruby-node">&quot;Built #{plugin_provider} node: #{plugin_name}&quot;</span>),
976
+ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:remote</span>, <span class="ruby-value">:edit</span>)
977
+ }))
978
+ <span class="ruby-keyword">end</span>
979
+ <span class="ruby-identifier">success</span>
980
+ <span class="ruby-keyword">end</span></pre>
981
+ </div><!-- build-source -->
982
+
983
+ </div>
984
+
985
+
986
+
987
+
988
+ </div><!-- build-method -->
989
+
990
+
991
+ <div id="method-i-build_time" class="method-detail ">
992
+
993
+ <div class="method-heading">
994
+ <span class="method-name">build_time</span><span
995
+ class="method-args">()</span>
996
+ <span class="method-click-advice">click to toggle source</span>
997
+ </div>
998
+
999
+
1000
+ <div class="method-description">
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+ <div class="method-source-code" id="build_time-source">
1007
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 347</span>
1008
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">build_time</span>
1009
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:build</span>]
1010
+ <span class="ruby-keyword">end</span></pre>
1011
+ </div><!-- build_time-source -->
1012
+
1013
+ </div>
1014
+
1015
+
1016
+
1017
+
1018
+ </div><!-- build_time-method -->
1019
+
1020
+
1021
+ <div id="method-i-build_time-3D" class="method-detail ">
1022
+
1023
+ <div class="method-heading">
1024
+ <span class="method-name">build_time=</span><span
1025
+ class="method-args">(time)</span>
1026
+ <span class="method-click-advice">click to toggle source</span>
1027
+ </div>
1028
+
1029
+
1030
+ <div class="method-description">
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+ <div class="method-source-code" id="build_time-3D-source">
1037
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 343</span>
1038
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">build_time=</span><span class="ruby-identifier">time</span>
1039
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:build</span>] = <span class="ruby-identifier">time</span>
1040
+ <span class="ruby-keyword">end</span></pre>
1041
+ </div><!-- build_time-3D-source -->
1042
+
1043
+ </div>
1044
+
1045
+
1046
+
1047
+
1048
+ </div><!-- build_time-3D-method -->
1049
+
1050
+
1051
+ <div id="method-i-cli" class="method-detail ">
1052
+
1053
+ <div class="method-heading">
1054
+ <span class="method-name">cli</span><span
1055
+ class="method-args">()</span>
1056
+ <span class="method-click-advice">click to toggle source</span>
1057
+ </div>
1058
+
1059
+
1060
+ <div class="method-description">
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+ <div class="method-source-code" id="cli-source">
1067
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 686</span>
1068
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cli</span>
1069
+ <span class="ruby-ivar">@cli_interface</span>
1070
+ <span class="ruby-keyword">end</span></pre>
1071
+ </div><!-- cli-source -->
1072
+
1073
+ </div>
1074
+
1075
+
1076
+
1077
+
1078
+ </div><!-- cli-method -->
1079
+
1080
+
1081
+ <div id="method-i-cli_capture" class="method-detail ">
1082
+
1083
+ <div class="method-heading">
1084
+ <span class="method-name">cli_capture</span><span
1085
+ class="method-args">(cli_command, *args)</span>
1086
+ <span class="method-click-advice">click to toggle source</span>
1087
+ </div>
1088
+
1089
+
1090
+ <div class="method-description">
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+ <div class="method-source-code" id="cli_capture-source">
1097
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1199</span>
1098
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cli_capture</span>(<span class="ruby-identifier">cli_command</span>, *<span class="ruby-identifier">args</span>)
1099
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">cli</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">cli_command</span>, <span class="ruby-identifier">args</span>)
1100
+
1101
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">output</span>.<span class="ruby-identifier">empty?</span>
1102
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">output</span>
1103
+ <span class="ruby-keyword">else</span>
1104
+ <span class="ruby-keyword">nil</span>
1105
+ <span class="ruby-keyword">end</span>
1106
+ <span class="ruby-keyword">end</span></pre>
1107
+ </div><!-- cli_capture-source -->
1108
+
1109
+ </div>
1110
+
1111
+
1112
+
1113
+
1114
+ </div><!-- cli_capture-method -->
1115
+
1116
+
1117
+ <div id="method-i-cli_check" class="method-detail ">
1118
+
1119
+ <div class="method-heading">
1120
+ <span class="method-name">cli_check</span><span
1121
+ class="method-args">(cli_command, *args)</span>
1122
+ <span class="method-click-advice">click to toggle source</span>
1123
+ </div>
1124
+
1125
+
1126
+ <div class="method-description">
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+ <div class="method-source-code" id="cli_check-source">
1133
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1211</span>
1134
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cli_check</span>(<span class="ruby-identifier">cli_command</span>, *<span class="ruby-identifier">args</span>)
1135
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">cli</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">cli_command</span>, <span class="ruby-identifier">args</span>)
1136
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span>
1137
+ <span class="ruby-keyword">end</span></pre>
1138
+ </div><!-- cli_check-source -->
1139
+
1140
+ </div>
1141
+
1142
+
1143
+
1144
+
1145
+ </div><!-- cli_check-method -->
1146
+
1147
+
1148
+ <div id="method-i-command" class="method-detail ">
1149
+
1150
+ <div class="method-heading">
1151
+ <span class="method-name">command</span><span
1152
+ class="method-args">(command, options = {}) { |op, data| ... }</span>
1153
+ <span class="method-click-advice">click to toggle source</span>
1154
+ </div>
1155
+
1156
+
1157
+ <div class="method-description">
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+ <div class="method-source-code" id="command-source">
1164
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 692</span>
1165
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">command</span>(<span class="ruby-identifier">command</span>, <span class="ruby-identifier">options</span> = {})
1166
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1167
+ <span class="ruby-identifier">as_admin</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:as_admin</span>, <span class="ruby-keyword">false</span>)
1168
+
1169
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">command</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">CORL</span><span class="ruby-operator">::</span><span class="ruby-constant">Plugin</span><span class="ruby-operator">::</span><span class="ruby-constant">Command</span>)
1170
+ <span class="ruby-identifier">command</span> = <span class="ruby-constant">CORL</span>.<span class="ruby-identifier">command</span>(<span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value">:command</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">command</span> }).<span class="ruby-identifier">import</span>(<span class="ruby-identifier">config</span>), <span class="ruby-value">:bash</span>)
1171
+ <span class="ruby-keyword">end</span>
1172
+
1173
+ <span class="ruby-identifier">admin_command</span> = <span class="ruby-string">&#39;&#39;</span>
1174
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">as_admin</span>
1175
+ <span class="ruby-identifier">admin_command</span> = <span class="ruby-string">&#39;sudo&#39;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">user</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">!=</span> <span class="ruby-string">&#39;root&#39;</span>
1176
+ <span class="ruby-identifier">admin_command</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:admin_command</span>, <span class="ruby-identifier">admin_command</span>, <span class="ruby-identifier">config</span>)
1177
+ <span class="ruby-keyword">end</span>
1178
+
1179
+ <span class="ruby-identifier">results</span> = <span class="ruby-identifier">exec</span>({ <span class="ruby-value">:commands</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-node">&quot;#{admin_command} #{command.to_s}&quot;</span>.<span class="ruby-identifier">strip</span> ] }) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
1180
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1181
+ <span class="ruby-keyword">end</span>
1182
+
1183
+ <span class="ruby-constant">CORL</span>.<span class="ruby-identifier">remove_plugin</span>(<span class="ruby-identifier">command</span>)
1184
+ <span class="ruby-identifier">results</span>.<span class="ruby-identifier">first</span>
1185
+ <span class="ruby-keyword">end</span></pre>
1186
+ </div><!-- command-source -->
1187
+
1188
+ </div>
1189
+
1190
+
1191
+
1192
+
1193
+ </div><!-- command-method -->
1194
+
1195
+
1196
+ <div id="method-i-create" class="method-detail ">
1197
+
1198
+ <div class="method-heading">
1199
+ <span class="method-name">create</span><span
1200
+ class="method-args">(options = {}) { |:config, config| ... }</span>
1201
+ <span class="method-click-advice">click to toggle source</span>
1202
+ </div>
1203
+
1204
+
1205
+ <div class="method-description">
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+ <div class="method-source-code" id="create-source">
1212
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 479</span>
1213
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">options</span> = {})
1214
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1215
+
1216
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
1217
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1218
+
1219
+ <span class="ruby-identifier">clear_cache</span>
1220
+
1221
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:create</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1222
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Creating node: #{plugin_name}&quot;</span>)
1223
+
1224
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1225
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
1226
+
1227
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
1228
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
1229
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
1230
+ <span class="ruby-keyword">end</span>
1231
+
1232
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1233
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:create_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1234
+ <span class="ruby-keyword">end</span>
1235
+ <span class="ruby-keyword">end</span>
1236
+ <span class="ruby-keyword">else</span>
1237
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine so cannot be created&quot;</span>)
1238
+ <span class="ruby-keyword">end</span>
1239
+ <span class="ruby-identifier">success</span>
1240
+ <span class="ruby-keyword">end</span></pre>
1241
+ </div><!-- create-source -->
1242
+
1243
+ </div>
1244
+
1245
+
1246
+
1247
+
1248
+ </div><!-- create-method -->
1249
+
1250
+
1251
+ <div id="method-i-create_image" class="method-detail ">
1252
+
1253
+ <div class="method-heading">
1254
+ <span class="method-name">create_image</span><span
1255
+ class="method-args">(options = {}) { |:config, config| ... }</span>
1256
+ <span class="method-click-advice">click to toggle source</span>
1257
+ </div>
1258
+
1259
+
1260
+ <div class="method-description">
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+ <div class="method-source-code" id="create_image-source">
1267
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1019</span>
1268
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">create_image</span>(<span class="ruby-identifier">options</span> = {})
1269
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1270
+
1271
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
1272
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1273
+
1274
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:create_image</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1275
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Executing node: #{plugin_name}&quot;</span>)
1276
+
1277
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1278
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">create_image</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
1279
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1280
+
1281
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
1282
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
1283
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
1284
+ <span class="ruby-keyword">end</span>
1285
+
1286
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1287
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:create_image_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1288
+ <span class="ruby-keyword">end</span>
1289
+ <span class="ruby-keyword">end</span>
1290
+ <span class="ruby-keyword">else</span>
1291
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot create an image&quot;</span>)
1292
+ <span class="ruby-keyword">end</span>
1293
+ <span class="ruby-identifier">success</span>
1294
+ <span class="ruby-keyword">end</span></pre>
1295
+ </div><!-- create_image-source -->
1296
+
1297
+ </div>
1298
+
1299
+
1300
+
1301
+
1302
+ </div><!-- create_image-method -->
1303
+
1304
+
1305
+ <div id="method-i-create_machine" class="method-detail ">
1306
+
1307
+ <div class="method-heading">
1308
+ <span class="method-name">create_machine</span><span
1309
+ class="method-args">(name, provider, options = {})</span>
1310
+ <span class="method-click-advice">click to toggle source</span>
1311
+ </div>
1312
+
1313
+
1314
+ <div class="method-description">
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+ <div class="method-source-code" id="create_machine-source">
1321
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 473</span>
1322
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">create_machine</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span> = {})
1323
+ <span class="ruby-constant">CORL</span>.<span class="ruby-identifier">create_plugin</span>(<span class="ruby-value">:machine</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">extended_config</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:meta</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-value">:parent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">myself</span> }}))
1324
+ <span class="ruby-keyword">end</span></pre>
1325
+ </div><!-- create_machine-source -->
1326
+
1327
+ </div>
1328
+
1329
+
1330
+
1331
+
1332
+ </div><!-- create_machine-method -->
1333
+
1334
+
1335
+ <div id="method-i-custom_facts" class="method-detail ">
1336
+
1337
+ <div class="method-heading">
1338
+ <span class="method-name">custom_facts</span><span
1339
+ class="method-args">()</span>
1340
+ <span class="method-click-advice">click to toggle source</span>
1341
+ </div>
1342
+
1343
+
1344
+ <div class="method-description">
1345
+
1346
+
1347
+
1348
+
1349
+
1350
+ <div class="method-source-code" id="custom_facts-source">
1351
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 300</span>
1352
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">custom_facts</span>
1353
+ <span class="ruby-identifier">search</span>(<span class="ruby-value">:facts</span>, {}, <span class="ruby-value">:hash</span>)
1354
+ <span class="ruby-keyword">end</span></pre>
1355
+ </div><!-- custom_facts-source -->
1356
+
1357
+ </div>
1358
+
1359
+
1360
+
1361
+
1362
+ </div><!-- custom_facts-method -->
1363
+
1364
+
1365
+ <div id="method-i-custom_facts-3D" class="method-detail ">
1366
+
1367
+ <div class="method-heading">
1368
+ <span class="method-name">custom_facts=</span><span
1369
+ class="method-args">(facts)</span>
1370
+ <span class="method-click-advice">click to toggle source</span>
1371
+ </div>
1372
+
1373
+
1374
+ <div class="method-description">
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+ <div class="method-source-code" id="custom_facts-3D-source">
1381
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 296</span>
1382
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">custom_facts=</span><span class="ruby-identifier">facts</span>
1383
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:facts</span>] = <span class="ruby-identifier">hash</span>(<span class="ruby-identifier">facts</span>)
1384
+ <span class="ruby-keyword">end</span></pre>
1385
+ </div><!-- custom_facts-3D-source -->
1386
+
1387
+ </div>
1388
+
1389
+
1390
+
1391
+
1392
+ </div><!-- custom_facts-3D-method -->
1393
+
1394
+
1395
+ <div id="method-i-delete_keys" class="method-detail ">
1396
+
1397
+ <div class="method-heading">
1398
+ <span class="method-name">delete_keys</span><span
1399
+ class="method-args">()</span>
1400
+ <span class="method-click-advice">click to toggle source</span>
1401
+ </div>
1402
+
1403
+
1404
+ <div class="method-description">
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+ <div class="method-source-code" id="delete_keys-source">
1411
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 441</span>
1412
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_keys</span>
1413
+ <span class="ruby-identifier">private_key</span> = <span class="ruby-identifier">myself</span>[<span class="ruby-value">:private_key</span>]
1414
+ <span class="ruby-identifier">public_key</span> = <span class="ruby-identifier">myself</span>[<span class="ruby-value">:public_key</span>]
1415
+
1416
+ <span class="ruby-identifier">keys</span> = []
1417
+ <span class="ruby-identifier">keys</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">private_key</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">private_key</span>
1418
+ <span class="ruby-identifier">keys</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">public_key</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">public_key</span>
1419
+
1420
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1421
+
1422
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">empty?</span>
1423
+ <span class="ruby-identifier">files</span> = <span class="ruby-identifier">network</span>.<span class="ruby-identifier">delete_attachments</span>(<span class="ruby-identifier">keys</span>)
1424
+
1425
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">files</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">empty?</span>
1426
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:private_key</span>)
1427
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:public_key</span>)
1428
+
1429
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">extended_config</span>(<span class="ruby-value">:key_delete</span>, {
1430
+ <span class="ruby-value">:files</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-identifier">private_key</span>, <span class="ruby-identifier">public_key</span> ],
1431
+ <span class="ruby-value">:pull</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
1432
+ <span class="ruby-value">:push</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
1433
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Removing SSH keys for node #{plugin_provider} (#{plugin_name})&quot;</span>
1434
+ }))
1435
+ <span class="ruby-keyword">else</span>
1436
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
1437
+ <span class="ruby-keyword">end</span>
1438
+ <span class="ruby-keyword">end</span>
1439
+ <span class="ruby-identifier">success</span>
1440
+ <span class="ruby-keyword">end</span></pre>
1441
+ </div><!-- delete_keys-source -->
1442
+
1443
+ </div>
1444
+
1445
+
1446
+
1447
+
1448
+ </div><!-- delete_keys-method -->
1449
+
1450
+
1451
+ <div id="method-i-destroy" class="method-detail ">
1452
+
1453
+ <div class="method-heading">
1454
+ <span class="method-name">destroy</span><span
1455
+ class="method-args">(options = {}) { |:config, config| ... }</span>
1456
+ <span class="method-click-advice">click to toggle source</span>
1457
+ </div>
1458
+
1459
+
1460
+ <div class="method-description">
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+ <div class="method-source-code" id="destroy-source">
1467
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1094</span>
1468
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">destroy</span>(<span class="ruby-identifier">options</span> = {})
1469
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1470
+
1471
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">created?</span>
1472
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1473
+
1474
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:destroy</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1475
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Destroying node: #{plugin_name}&quot;</span>)
1476
+
1477
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1478
+
1479
+ <span class="ruby-comment"># Shut down machine </span>
1480
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">destroy</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
1481
+
1482
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">machine</span> = <span class="ruby-keyword">nil</span>
1483
+
1484
+ <span class="ruby-comment"># Remove SSH keys</span>
1485
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">delete_keys</span>
1486
+ <span class="ruby-comment"># Remove node information</span>
1487
+ <span class="ruby-identifier">network</span>.<span class="ruby-identifier">delete_node</span>(<span class="ruby-identifier">plugin_provider</span>, <span class="ruby-identifier">plugin_name</span>, <span class="ruby-keyword">false</span>)
1488
+
1489
+ <span class="ruby-identifier">network</span>.<span class="ruby-identifier">save</span>({
1490
+ <span class="ruby-value">:commit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
1491
+ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:remote</span>, <span class="ruby-value">:edit</span>),
1492
+ <span class="ruby-value">:push</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>
1493
+ })
1494
+ <span class="ruby-keyword">end</span>
1495
+
1496
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
1497
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
1498
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
1499
+ <span class="ruby-keyword">end</span>
1500
+
1501
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1502
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:destroy_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1503
+ <span class="ruby-identifier">clear_cache</span>
1504
+ <span class="ruby-keyword">end</span>
1505
+ <span class="ruby-keyword">end</span>
1506
+ <span class="ruby-keyword">else</span>
1507
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not created so cannot be destroyed&quot;</span>)
1508
+ <span class="ruby-keyword">end</span>
1509
+ <span class="ruby-identifier">success</span>
1510
+ <span class="ruby-keyword">end</span></pre>
1511
+ </div><!-- destroy-source -->
1512
+
1513
+ </div>
1514
+
1515
+
1516
+
1517
+
1518
+ </div><!-- destroy-method -->
1519
+
1520
+
1521
+ <div id="method-i-download" class="method-detail ">
1522
+
1523
+ <div class="method-heading">
1524
+ <span class="method-name">download</span><span
1525
+ class="method-args">(remote_path, local_path, options = {}) { |:config, hook_config| ... }</span>
1526
+ <span class="method-click-advice">click to toggle source</span>
1527
+ </div>
1528
+
1529
+
1530
+ <div class="method-description">
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+ <div class="method-source-code" id="download-source">
1537
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 510</span>
1538
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">remote_path</span>, <span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">options</span> = {})
1539
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
1540
+
1541
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
1542
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1543
+ <span class="ruby-identifier">hook_config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value">:local_path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">local_path</span>, <span class="ruby-value">:remote_path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote_path</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1544
+
1545
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:download</span>, <span class="ruby-identifier">hook_config</span>)
1546
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Downloading from #{plugin_name}&quot;</span>)
1547
+
1548
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;Starting download of #{remote_path} to #{local_path}&quot;</span>)
1549
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">hook_config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1550
+
1551
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">local?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">local_machine</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">machine</span>
1552
+
1553
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">active_machine</span>.<span class="ruby-identifier">download</span>(<span class="ruby-identifier">remote_path</span>, <span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">received</span>, <span class="ruby-identifier">total</span><span class="ruby-operator">|</span>
1554
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;#{name}: Sent #{received} of #{total}&quot;</span>)
1555
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:progress</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:received</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">received</span>, <span class="ruby-value">:total</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">total</span> })
1556
+ <span class="ruby-keyword">end</span>
1557
+
1558
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
1559
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;Successfully finished download of #{remote_path} to #{local_path}&quot;</span>)
1560
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">hook_config</span>)
1561
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
1562
+ <span class="ruby-keyword">end</span>
1563
+
1564
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1565
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:download_success</span>, <span class="ruby-identifier">hook_config</span>)
1566
+ <span class="ruby-keyword">end</span>
1567
+ <span class="ruby-keyword">end</span>
1568
+ <span class="ruby-keyword">else</span>
1569
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot download&quot;</span>)
1570
+ <span class="ruby-keyword">end</span>
1571
+ <span class="ruby-identifier">success</span>
1572
+ <span class="ruby-keyword">end</span></pre>
1573
+ </div><!-- download-source -->
1574
+
1575
+ </div>
1576
+
1577
+
1578
+
1579
+
1580
+ </div><!-- download-method -->
1581
+
1582
+
1583
+ <div id="method-i-exec" class="method-detail ">
1584
+
1585
+ <div class="method-heading">
1586
+ <span class="method-name">exec</span><span
1587
+ class="method-args">(options = {}) { |:config, config| ... }</span>
1588
+ <span class="method-click-advice">click to toggle source</span>
1589
+ </div>
1590
+
1591
+
1592
+ <div class="method-description">
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+ <div class="method-source-code" id="exec-source">
1599
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 619</span>
1600
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec</span>(<span class="ruby-identifier">options</span> = {})
1601
+ <span class="ruby-identifier">default_error</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Shell</span><span class="ruby-operator">::</span><span class="ruby-constant">Result</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:error</span>, <span class="ruby-value">255</span>)
1602
+ <span class="ruby-identifier">results</span> = [ <span class="ruby-identifier">default_error</span> ]
1603
+
1604
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">local?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">local_machine</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
1605
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1606
+
1607
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:exec</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1608
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Executing node: #{plugin_name}&quot;</span>)
1609
+
1610
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1611
+
1612
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">local?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">local_machine</span>
1613
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">local_machine</span>
1614
+
1615
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:info_prefix</span>] = <span class="ruby-node">&quot;[#{hostname}] &quot;</span>
1616
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:error_prefix</span>] = <span class="ruby-node">&quot;[#{hostname}] &quot;</span>
1617
+ <span class="ruby-keyword">else</span>
1618
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">machine</span>
1619
+ <span class="ruby-keyword">end</span>
1620
+
1621
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">commands</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:commands</span>, <span class="ruby-keyword">nil</span>)
1622
+ <span class="ruby-keyword">begin</span>
1623
+ <span class="ruby-identifier">test</span> = <span class="ruby-identifier">active_machine</span>.<span class="ruby-identifier">exec</span>(<span class="ruby-identifier">commands</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">command</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
1624
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">local?</span>
1625
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:error</span>
1626
+ <span class="ruby-identifier">alert</span>(<span class="ruby-identifier">filter_output</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>))
1627
+ <span class="ruby-keyword">else</span>
1628
+ <span class="ruby-identifier">render</span>(<span class="ruby-identifier">filter_output</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>))
1629
+ <span class="ruby-keyword">end</span>
1630
+ <span class="ruby-keyword">end</span>
1631
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:progress</span>, { <span class="ruby-value">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">type</span>, <span class="ruby-value">:command</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">command</span>, <span class="ruby-value">:data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">data</span> }) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1632
+ <span class="ruby-keyword">end</span>
1633
+ <span class="ruby-identifier">results</span> = <span class="ruby-identifier">test</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">test</span>
1634
+
1635
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error</span>
1636
+ <span class="ruby-identifier">default_error</span>.<span class="ruby-identifier">append_errors</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span>)
1637
+ <span class="ruby-keyword">end</span>
1638
+ <span class="ruby-keyword">else</span>
1639
+ <span class="ruby-identifier">default_error</span>.<span class="ruby-identifier">append_errors</span>(<span class="ruby-string">&quot;No execution command&quot;</span>)
1640
+ <span class="ruby-keyword">end</span>
1641
+
1642
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">results</span>
1643
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1644
+ <span class="ruby-identifier">results</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">result</span><span class="ruby-operator">|</span>
1645
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
1646
+ <span class="ruby-keyword">end</span>
1647
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1648
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1649
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:exec_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>, <span class="ruby-value">:results</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">results</span> })
1650
+ <span class="ruby-keyword">end</span>
1651
+ <span class="ruby-keyword">else</span>
1652
+ <span class="ruby-identifier">default_error</span>.<span class="ruby-identifier">append_errors</span>(<span class="ruby-string">&quot;No execution results&quot;</span>)
1653
+ <span class="ruby-keyword">end</span>
1654
+ <span class="ruby-keyword">else</span>
1655
+ <span class="ruby-identifier">default_error</span>.<span class="ruby-identifier">append_errors</span>(<span class="ruby-string">&quot;Execution prevented by exec hook&quot;</span>)
1656
+ <span class="ruby-keyword">end</span>
1657
+ <span class="ruby-keyword">else</span>
1658
+ <span class="ruby-identifier">default_error</span>.<span class="ruby-identifier">append_errors</span>(<span class="ruby-string">&quot;No attached machine&quot;</span>)
1659
+
1660
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot execute commands&quot;</span>)
1661
+ <span class="ruby-keyword">end</span>
1662
+ <span class="ruby-identifier">results</span>
1663
+ <span class="ruby-keyword">end</span></pre>
1664
+ </div><!-- exec-source -->
1665
+
1666
+ </div>
1667
+
1668
+
1669
+
1670
+
1671
+ </div><!-- exec-method -->
1672
+
1673
+
1674
+ <div id="method-i-filter_output" class="method-detail ">
1675
+
1676
+ <div class="method-heading">
1677
+ <span class="method-name">filter_output</span><span
1678
+ class="method-args">(type, data)</span>
1679
+ <span class="method-click-advice">click to toggle source</span>
1680
+ </div>
1681
+
1682
+
1683
+ <div class="method-description">
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+ <div class="method-source-code" id="filter_output-source">
1690
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1218</span>
1691
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">filter_output</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>)
1692
+ <span class="ruby-identifier">data</span>
1693
+ <span class="ruby-keyword">end</span></pre>
1694
+ </div><!-- filter_output-source -->
1695
+
1696
+ </div>
1697
+
1698
+
1699
+
1700
+
1701
+ </div><!-- filter_output-method -->
1702
+
1703
+
1704
+ <div id="method-i-hiera_facts" class="method-detail ">
1705
+
1706
+ <div class="method-heading">
1707
+ <span class="method-name">hiera_facts</span><span
1708
+ class="method-args">()</span>
1709
+ <span class="method-click-advice">click to toggle source</span>
1710
+ </div>
1711
+
1712
+
1713
+ <div class="method-description">
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+ <div class="method-source-code" id="hiera_facts-source">
1720
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 94</span>
1721
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">hiera_facts</span>
1722
+ <span class="ruby-identifier">default_configs</span> = <span class="ruby-identifier">extended_config</span>(<span class="ruby-value">:hiera_default_facts</span>, {
1723
+ <span class="ruby-value">:fqdn</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">hostname</span>,
1724
+ <span class="ruby-value">:hostname</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">hostname</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\..*$/</span>, <span class="ruby-string">&#39;&#39;</span>),
1725
+ <span class="ruby-value">:corl_provider</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">plugin_provider</span>.<span class="ruby-identifier">to_s</span>
1726
+ })
1727
+ <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">lookup_facts</span>).<span class="ruby-identifier">defaults</span>(<span class="ruby-identifier">default_configs</span>).<span class="ruby-identifier">export</span>
1728
+ <span class="ruby-keyword">end</span></pre>
1729
+ </div><!-- hiera_facts-source -->
1730
+
1731
+ </div>
1732
+
1733
+
1734
+
1735
+
1736
+ </div><!-- hiera_facts-method -->
1737
+
1738
+
1739
+ <div id="method-i-hiera_override_dir" class="method-detail ">
1740
+
1741
+ <div class="method-heading">
1742
+ <span class="method-name">hiera_override_dir</span><span
1743
+ class="method-args">()</span>
1744
+ <span class="method-click-advice">click to toggle source</span>
1745
+ </div>
1746
+
1747
+
1748
+ <div class="method-description">
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+ <div class="method-source-code" id="hiera_override_dir-source">
1755
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 88</span>
1756
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">hiera_override_dir</span>
1757
+ <span class="ruby-identifier">network</span>.<span class="ruby-identifier">hiera_override_dir</span>
1758
+ <span class="ruby-keyword">end</span></pre>
1759
+ </div><!-- hiera_override_dir-source -->
1760
+
1761
+ </div>
1762
+
1763
+
1764
+
1765
+
1766
+ </div><!-- hiera_override_dir-method -->
1767
+
1768
+
1769
+ <div id="method-i-home" class="method-detail ">
1770
+
1771
+ <div class="method-heading">
1772
+ <span class="method-name">home</span><span
1773
+ class="method-args">(env_var = 'HOME', reset = false)</span>
1774
+ <span class="method-click-advice">click to toggle source</span>
1775
+ </div>
1776
+
1777
+
1778
+ <div class="method-description">
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+ <div class="method-source-code" id="home-source">
1785
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 185</span>
1786
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">home</span>(<span class="ruby-identifier">env_var</span> = <span class="ruby-string">&#39;HOME&#39;</span>, <span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
1787
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">myself</span>[<span class="ruby-value">:user_home</span>].<span class="ruby-identifier">nil?</span>
1788
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:user_home</span>] = <span class="ruby-identifier">cli_capture</span>(<span class="ruby-value">:echo</span>, <span class="ruby-string">&#39;$&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">env_var</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;$&#39;</span>, <span class="ruby-string">&#39;&#39;</span>)) <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
1789
+ <span class="ruby-keyword">end</span>
1790
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:user_home</span>]
1791
+ <span class="ruby-keyword">end</span></pre>
1792
+ </div><!-- home-source -->
1793
+
1794
+ </div>
1795
+
1796
+
1797
+
1798
+
1799
+ </div><!-- home-method -->
1800
+
1801
+
1802
+ <div id="method-i-hostname" class="method-detail ">
1803
+
1804
+ <div class="method-heading">
1805
+ <span class="method-name">hostname</span><span
1806
+ class="method-args">()</span>
1807
+ <span class="method-click-advice">click to toggle source</span>
1808
+ </div>
1809
+
1810
+
1811
+ <div class="method-description">
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+ <div class="method-source-code" id="hostname-source">
1818
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 144</span>
1819
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">hostname</span>
1820
+ <span class="ruby-identifier">hostname</span> = <span class="ruby-identifier">setting</span>(<span class="ruby-value">:hostname</span>)
1821
+
1822
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">hostname</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">to_s</span>
1823
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">resource</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Console</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">hostname</span>, <span class="ruby-ivar">@class_color</span>)
1824
+ <span class="ruby-identifier">logger</span> = <span class="ruby-identifier">hostname</span>
1825
+ <span class="ruby-keyword">end</span>
1826
+ <span class="ruby-identifier">hostname</span>
1827
+ <span class="ruby-keyword">end</span></pre>
1828
+ </div><!-- hostname-source -->
1829
+
1830
+ </div>
1831
+
1832
+
1833
+
1834
+
1835
+ </div><!-- hostname-method -->
1836
+
1837
+
1838
+ <div id="method-i-id" class="method-detail ">
1839
+
1840
+ <div class="method-heading">
1841
+ <span class="method-name">id</span><span
1842
+ class="method-args">(reset = false)</span>
1843
+ <span class="method-click-advice">click to toggle source</span>
1844
+ </div>
1845
+
1846
+
1847
+ <div class="method-description">
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+ <div class="method-source-code" id="id-source">
1854
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 125</span>
1855
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">id</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
1856
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:id</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">plugin_name</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">setting</span>(<span class="ruby-value">:id</span>).<span class="ruby-identifier">nil?</span> )
1857
+ <span class="ruby-identifier">setting</span>(<span class="ruby-value">:id</span>)
1858
+ <span class="ruby-keyword">end</span></pre>
1859
+ </div><!-- id-source -->
1860
+
1861
+ </div>
1862
+
1863
+
1864
+
1865
+
1866
+ </div><!-- id-method -->
1867
+
1868
+
1869
+ <div id="method-i-image" class="method-detail ">
1870
+
1871
+ <div class="method-heading">
1872
+ <span class="method-name">image</span><span
1873
+ class="method-args">(reset = false)</span>
1874
+ <span class="method-click-advice">click to toggle source</span>
1875
+ </div>
1876
+
1877
+
1878
+ <div class="method-description">
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+ <div class="method-source-code" id="image-source">
1885
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 289</span>
1886
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">image</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
1887
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:image</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">image</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">myself</span>[<span class="ruby-value">:image</span>].<span class="ruby-identifier">nil?</span> )
1888
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:image</span>]
1889
+ <span class="ruby-keyword">end</span></pre>
1890
+ </div><!-- image-source -->
1891
+
1892
+ </div>
1893
+
1894
+
1895
+
1896
+
1897
+ </div><!-- image-method -->
1898
+
1899
+
1900
+ <div id="method-i-image-3D" class="method-detail ">
1901
+
1902
+ <div class="method-heading">
1903
+ <span class="method-name">image=</span><span
1904
+ class="method-args">(image)</span>
1905
+ <span class="method-click-advice">click to toggle source</span>
1906
+ </div>
1907
+
1908
+
1909
+ <div class="method-description">
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+ <div class="method-source-code" id="image-3D-source">
1916
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 285</span>
1917
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">image=</span><span class="ruby-identifier">image</span>
1918
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:image</span>] = <span class="ruby-identifier">image</span>
1919
+ <span class="ruby-keyword">end</span></pre>
1920
+ </div><!-- image-3D-source -->
1921
+
1922
+ </div>
1923
+
1924
+
1925
+
1926
+
1927
+ </div><!-- image-3D-method -->
1928
+
1929
+
1930
+ <div id="method-i-image_id" class="method-detail ">
1931
+
1932
+ <div class="method-heading">
1933
+ <span class="method-name">image_id</span><span
1934
+ class="method-args">(image)</span>
1935
+ <span class="method-click-advice">click to toggle source</span>
1936
+ </div>
1937
+
1938
+
1939
+ <div class="method-description">
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+ <div class="method-source-code" id="image_id-source">
1946
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1238</span>
1947
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">image_id</span>(<span class="ruby-identifier">image</span>)
1948
+ <span class="ruby-identifier">image</span>.<span class="ruby-identifier">id</span>
1949
+ <span class="ruby-keyword">end</span></pre>
1950
+ </div><!-- image_id-source -->
1951
+
1952
+ </div>
1953
+
1954
+
1955
+
1956
+
1957
+ </div><!-- image_id-method -->
1958
+
1959
+
1960
+ <div id="method-i-image_search_text" class="method-detail ">
1961
+
1962
+ <div class="method-heading">
1963
+ <span class="method-name">image_search_text</span><span
1964
+ class="method-args">(image)</span>
1965
+ <span class="method-click-advice">click to toggle source</span>
1966
+ </div>
1967
+
1968
+
1969
+ <div class="method-description">
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+ <div class="method-source-code" id="image_search_text-source">
1976
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1250</span>
1977
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">image_search_text</span>(<span class="ruby-identifier">image</span>)
1978
+ <span class="ruby-identifier">image</span>.<span class="ruby-identifier">to_s</span>
1979
+ <span class="ruby-keyword">end</span></pre>
1980
+ </div><!-- image_search_text-source -->
1981
+
1982
+ </div>
1983
+
1984
+
1985
+
1986
+
1987
+ </div><!-- image_search_text-method -->
1988
+
1989
+
1990
+ <div id="method-i-images" class="method-detail ">
1991
+
1992
+ <div class="method-heading">
1993
+ <span class="method-name">images</span><span
1994
+ class="method-args">(search_terms = [], options = {})</span>
1995
+ <span class="method-click-advice">click to toggle source</span>
1996
+ </div>
1997
+
1998
+
1999
+ <div class="method-description">
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+ <div class="method-source-code" id="images-source">
2006
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 246</span>
2007
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">images</span>(<span class="ruby-identifier">search_terms</span> = [], <span class="ruby-identifier">options</span> = {})
2008
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2009
+ <span class="ruby-identifier">images</span> = []
2010
+
2011
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
2012
+ <span class="ruby-identifier">loaded_images</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">images</span>
2013
+
2014
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">loaded_images</span>
2015
+ <span class="ruby-identifier">require_all</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:require_all</span>, <span class="ruby-keyword">false</span>)
2016
+
2017
+ <span class="ruby-identifier">loaded_images</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">image</span><span class="ruby-operator">|</span>
2018
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">usable_image?</span>(<span class="ruby-identifier">image</span>)
2019
+ <span class="ruby-identifier">include_image</span> = ( <span class="ruby-identifier">search_terms</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">require_all</span> )
2020
+ <span class="ruby-identifier">image_text</span> = <span class="ruby-identifier">image_search_text</span>(<span class="ruby-identifier">image</span>)
2021
+
2022
+ <span class="ruby-identifier">search_terms</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">term</span><span class="ruby-operator">|</span>
2023
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:match_case</span>, <span class="ruby-keyword">false</span>)
2024
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">image_text</span>.<span class="ruby-identifier">match</span>(<span class="ruby-node">/#{term}/</span>)
2025
+ <span class="ruby-keyword">else</span>
2026
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">image_text</span>.<span class="ruby-identifier">match</span>(<span class="ruby-node">/#{term}/</span>)
2027
+ <span class="ruby-keyword">end</span>
2028
+
2029
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">require_all</span>
2030
+ <span class="ruby-identifier">include_image</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">success</span>
2031
+ <span class="ruby-keyword">else</span>
2032
+ <span class="ruby-identifier">include_image</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
2033
+ <span class="ruby-keyword">end</span>
2034
+ <span class="ruby-keyword">end</span>
2035
+
2036
+ <span class="ruby-identifier">images</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">image</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">include_image</span>
2037
+ <span class="ruby-keyword">end</span>
2038
+ <span class="ruby-keyword">end</span>
2039
+ <span class="ruby-keyword">end</span>
2040
+ <span class="ruby-keyword">end</span>
2041
+ <span class="ruby-identifier">images</span>
2042
+ <span class="ruby-keyword">end</span></pre>
2043
+ </div><!-- images-source -->
2044
+
2045
+ </div>
2046
+
2047
+
2048
+
2049
+
2050
+ </div><!-- images-method -->
2051
+
2052
+
2053
+ <div id="method-i-local-3F" class="method-detail ">
2054
+
2055
+ <div class="method-heading">
2056
+ <span class="method-name">local?</span><span
2057
+ class="method-args">()</span>
2058
+ <span class="method-click-advice">click to toggle source</span>
2059
+ </div>
2060
+
2061
+
2062
+ <div class="method-description">
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+ <div class="method-source-code" id="local-3F-source">
2069
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 71</span>
2070
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">local?</span>
2071
+ <span class="ruby-ivar">@local_context</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span>
2072
+ <span class="ruby-keyword">end</span></pre>
2073
+ </div><!-- local-3F-source -->
2074
+
2075
+ </div>
2076
+
2077
+
2078
+
2079
+
2080
+ </div><!-- local-3F-method -->
2081
+
2082
+
2083
+ <div id="method-i-local_machine" class="method-detail ">
2084
+
2085
+ <div class="method-heading">
2086
+ <span class="method-name">local_machine</span><span
2087
+ class="method-args">()</span>
2088
+ <span class="method-click-advice">click to toggle source</span>
2089
+ </div>
2090
+
2091
+
2092
+ <div class="method-description">
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+ <div class="method-source-code" id="local_machine-source">
2099
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 115</span>
2100
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">local_machine</span>
2101
+ <span class="ruby-ivar">@local_machine</span>
2102
+ <span class="ruby-keyword">end</span></pre>
2103
+ </div><!-- local_machine-source -->
2104
+
2105
+ </div>
2106
+
2107
+
2108
+
2109
+
2110
+ </div><!-- local_machine-method -->
2111
+
2112
+
2113
+ <div id="method-i-local_machine-3D" class="method-detail ">
2114
+
2115
+ <div class="method-heading">
2116
+ <span class="method-name">local_machine=</span><span
2117
+ class="method-args">(local_machine)</span>
2118
+ <span class="method-click-advice">click to toggle source</span>
2119
+ </div>
2120
+
2121
+
2122
+ <div class="method-description">
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+ <div class="method-source-code" id="local_machine-3D-source">
2129
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 119</span>
2130
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">local_machine=</span><span class="ruby-identifier">local_machine</span>
2131
+ <span class="ruby-ivar">@local_machine</span> = <span class="ruby-identifier">local_machine</span>
2132
+ <span class="ruby-keyword">end</span></pre>
2133
+ </div><!-- local_machine-3D-source -->
2134
+
2135
+ </div>
2136
+
2137
+
2138
+
2139
+
2140
+ </div><!-- local_machine-3D-method -->
2141
+
2142
+
2143
+ <div id="method-i-localize" class="method-detail ">
2144
+
2145
+ <div class="method-heading">
2146
+ <span class="method-name">localize</span><span
2147
+ class="method-args">()</span>
2148
+ <span class="method-click-advice">click to toggle source</span>
2149
+ </div>
2150
+
2151
+
2152
+ <div class="method-description">
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+ <div class="method-source-code" id="localize-source">
2159
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 56</span>
2160
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">localize</span>
2161
+ <span class="ruby-ivar">@local_context</span> = <span class="ruby-keyword">true</span>
2162
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">local_machine</span> = <span class="ruby-identifier">create_machine</span>(<span class="ruby-value">:local_machine</span>, <span class="ruby-value">:physical</span>)
2163
+ <span class="ruby-keyword">end</span></pre>
2164
+ </div><!-- localize-source -->
2165
+
2166
+ </div>
2167
+
2168
+
2169
+
2170
+
2171
+ </div><!-- localize-method -->
2172
+
2173
+
2174
+ <div id="method-i-lookup_array" class="method-detail ">
2175
+
2176
+ <div class="method-heading">
2177
+ <span class="method-name">lookup_array</span><span
2178
+ class="method-args">(property, default = [], options = {})</span>
2179
+ <span class="method-click-advice">click to toggle source</span>
2180
+ </div>
2181
+
2182
+
2183
+ <div class="method-description">
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+ <div class="method-source-code" id="lookup_array-source">
2190
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 816</span>
2191
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">lookup_array</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span> = [], <span class="ruby-identifier">options</span> = {})
2192
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:context</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:array</span> })
2193
+ <span class="ruby-identifier">lookup_config</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">config</span>)
2194
+ <span class="ruby-keyword">end</span></pre>
2195
+ </div><!-- lookup_array-source -->
2196
+
2197
+ </div>
2198
+
2199
+
2200
+
2201
+
2202
+ </div><!-- lookup_array-method -->
2203
+
2204
+
2205
+ <div id="method-i-lookup_config" class="method-detail ">
2206
+
2207
+ <div class="method-heading">
2208
+ <span class="method-name">lookup_config</span><span
2209
+ class="method-args">(property, default = nil, options = {})</span>
2210
+ <span class="method-click-advice">click to toggle source</span>
2211
+ </div>
2212
+
2213
+
2214
+ <div class="method-description">
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+ <div class="method-source-code" id="lookup_config-source">
2221
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 800</span>
2222
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">lookup_config</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">options</span> = {})
2223
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">local?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">bootstrap_script</span>
2224
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:property</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">property</span> })
2225
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">run</span>.<span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">config</span>)
2226
+
2227
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
2228
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">value</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">result</span>.<span class="ruby-identifier">output</span>), <span class="ruby-identifier">default</span>)
2229
+ <span class="ruby-keyword">end</span>
2230
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">default</span>
2231
+ <span class="ruby-keyword">end</span>
2232
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:hiera_scope</span>] = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">prefix</span>(<span class="ruby-string">&#39;::&#39;</span>, <span class="ruby-identifier">lookup_facts</span>, <span class="ruby-string">&#39;&#39;</span>)
2233
+ <span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">options</span>)
2234
+ <span class="ruby-keyword">end</span></pre>
2235
+ </div><!-- lookup_config-source -->
2236
+
2237
+ </div>
2238
+
2239
+
2240
+
2241
+
2242
+ </div><!-- lookup_config-method -->
2243
+
2244
+
2245
+ <div id="method-i-lookup_facts" class="method-detail ">
2246
+
2247
+ <div class="method-heading">
2248
+ <span class="method-name">lookup_facts</span><span
2249
+ class="method-args">()</span>
2250
+ <span class="method-click-advice">click to toggle source</span>
2251
+ </div>
2252
+
2253
+
2254
+ <div class="method-description">
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+ <div class="method-source-code" id="lookup_facts-source">
2261
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 787</span>
2262
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">lookup_facts</span>
2263
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">local?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">bootstrap_script</span>
2264
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">run</span>.<span class="ruby-identifier">facts</span>
2265
+
2266
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
2267
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">symbol_map</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">result</span>.<span class="ruby-identifier">output</span>))
2268
+ <span class="ruby-keyword">end</span>
2269
+ <span class="ruby-keyword">end</span>
2270
+ <span class="ruby-identifier">local?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">facts</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">custom_facts</span>
2271
+ <span class="ruby-keyword">end</span></pre>
2272
+ </div><!-- lookup_facts-source -->
2273
+
2274
+ </div>
2275
+
2276
+
2277
+
2278
+
2279
+ </div><!-- lookup_facts-method -->
2280
+
2281
+
2282
+ <div id="method-i-lookup_hash" class="method-detail ">
2283
+
2284
+ <div class="method-heading">
2285
+ <span class="method-name">lookup_hash</span><span
2286
+ class="method-args">(property, default = {}, options = {})</span>
2287
+ <span class="method-click-advice">click to toggle source</span>
2288
+ </div>
2289
+
2290
+
2291
+ <div class="method-description">
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+ <div class="method-source-code" id="lookup_hash-source">
2298
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 823</span>
2299
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">lookup_hash</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span> = {}, <span class="ruby-identifier">options</span> = {})
2300
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:context</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:hash</span> })
2301
+ <span class="ruby-identifier">lookup_config</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">config</span>)
2302
+ <span class="ruby-keyword">end</span></pre>
2303
+ </div><!-- lookup_hash-source -->
2304
+
2305
+ </div>
2306
+
2307
+
2308
+
2309
+
2310
+ </div><!-- lookup_hash-method -->
2311
+
2312
+
2313
+ <div id="method-i-machine" class="method-detail ">
2314
+
2315
+ <div class="method-heading">
2316
+ <span class="method-name">machine</span><span
2317
+ class="method-args">()</span>
2318
+ <span class="method-click-advice">click to toggle source</span>
2319
+ </div>
2320
+
2321
+
2322
+ <div class="method-description">
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+ <div class="method-source-code" id="machine-source">
2329
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 105</span>
2330
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine</span>
2331
+ <span class="ruby-ivar">@machine</span>
2332
+ <span class="ruby-keyword">end</span></pre>
2333
+ </div><!-- machine-source -->
2334
+
2335
+ </div>
2336
+
2337
+
2338
+
2339
+
2340
+ </div><!-- machine-method -->
2341
+
2342
+
2343
+ <div id="method-i-machine-3D" class="method-detail ">
2344
+
2345
+ <div class="method-heading">
2346
+ <span class="method-name">machine=</span><span
2347
+ class="method-args">(machine)</span>
2348
+ <span class="method-click-advice">click to toggle source</span>
2349
+ </div>
2350
+
2351
+
2352
+ <div class="method-description">
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+ <div class="method-source-code" id="machine-3D-source">
2359
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 109</span>
2360
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine=</span><span class="ruby-identifier">machine</span>
2361
+ <span class="ruby-ivar">@machine</span> = <span class="ruby-identifier">machine</span>
2362
+ <span class="ruby-keyword">end</span></pre>
2363
+ </div><!-- machine-3D-source -->
2364
+
2365
+ </div>
2366
+
2367
+
2368
+
2369
+
2370
+ </div><!-- machine-3D-method -->
2371
+
2372
+
2373
+ <div id="method-i-machine_config" class="method-detail ">
2374
+
2375
+ <div class="method-heading">
2376
+ <span class="method-name">machine_config</span><span
2377
+ class="method-args">() { |config| ... }</span>
2378
+ <span class="method-click-advice">click to toggle source</span>
2379
+ </div>
2380
+
2381
+
2382
+ <div class="method-description">
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+ <div class="method-source-code" id="machine_config-source">
2389
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 364</span>
2390
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine_config</span>
2391
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">setting</span>(<span class="ruby-value">:id</span>)
2392
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">setting</span>(<span class="ruby-value">:hostname</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">empty?</span>
2393
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> })
2394
+
2395
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2396
+ <span class="ruby-identifier">config</span>
2397
+ <span class="ruby-keyword">end</span></pre>
2398
+ </div><!-- machine_config-source -->
2399
+
2400
+ </div>
2401
+
2402
+
2403
+
2404
+
2405
+ </div><!-- machine_config-method -->
2406
+
2407
+
2408
+ <div id="method-i-machine_type" class="method-detail ">
2409
+
2410
+ <div class="method-heading">
2411
+ <span class="method-name">machine_type</span><span
2412
+ class="method-args">(reset = false)</span>
2413
+ <span class="method-click-advice">click to toggle source</span>
2414
+ </div>
2415
+
2416
+
2417
+ <div class="method-description">
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+ <div class="method-source-code" id="machine_type-source">
2424
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 228</span>
2425
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine_type</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
2426
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:machine_type</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">machine_type</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">myself</span>[<span class="ruby-value">:machine_type</span>].<span class="ruby-identifier">nil?</span> )
2427
+ <span class="ruby-identifier">machine_type</span> = <span class="ruby-identifier">myself</span>[<span class="ruby-value">:machine_type</span>]
2428
+
2429
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine_type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>
2430
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">types</span> = <span class="ruby-identifier">machine_types</span>
2431
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">types</span>.<span class="ruby-identifier">empty?</span>
2432
+ <span class="ruby-identifier">machine_type</span> = <span class="ruby-identifier">machine_type_id</span>(<span class="ruby-identifier">types</span>.<span class="ruby-identifier">first</span>)
2433
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:machine_type</span>] = <span class="ruby-identifier">machine_type</span>
2434
+ <span class="ruby-keyword">end</span>
2435
+ <span class="ruby-keyword">end</span>
2436
+ <span class="ruby-keyword">end</span>
2437
+
2438
+ <span class="ruby-identifier">machine_type</span>
2439
+ <span class="ruby-keyword">end</span></pre>
2440
+ </div><!-- machine_type-source -->
2441
+
2442
+ </div>
2443
+
2444
+
2445
+
2446
+
2447
+ </div><!-- machine_type-method -->
2448
+
2449
+
2450
+ <div id="method-i-machine_type_id" class="method-detail ">
2451
+
2452
+ <div class="method-heading">
2453
+ <span class="method-name">machine_type_id</span><span
2454
+ class="method-args">(machine_type)</span>
2455
+ <span class="method-click-advice">click to toggle source</span>
2456
+ </div>
2457
+
2458
+
2459
+ <div class="method-description">
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+ <div class="method-source-code" id="machine_type_id-source">
2466
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1225</span>
2467
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine_type_id</span>(<span class="ruby-identifier">machine_type</span>)
2468
+ <span class="ruby-identifier">machine_type</span>.<span class="ruby-identifier">id</span>
2469
+ <span class="ruby-keyword">end</span></pre>
2470
+ </div><!-- machine_type_id-source -->
2471
+
2472
+ </div>
2473
+
2474
+
2475
+
2476
+
2477
+ </div><!-- machine_type_id-method -->
2478
+
2479
+
2480
+ <div id="method-i-machine_types" class="method-detail ">
2481
+
2482
+ <div class="method-heading">
2483
+ <span class="method-name">machine_types</span><span
2484
+ class="method-args">()</span>
2485
+ <span class="method-click-advice">click to toggle source</span>
2486
+ </div>
2487
+
2488
+
2489
+ <div class="method-description">
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+ <div class="method-source-code" id="machine_types-source">
2496
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 224</span>
2497
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">machine_types</span> <span class="ruby-comment"># Must be set at machine level (queried)</span>
2498
+ <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">machine_types</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
2499
+ <span class="ruby-keyword">end</span></pre>
2500
+ </div><!-- machine_types-source -->
2501
+
2502
+ </div>
2503
+
2504
+
2505
+
2506
+
2507
+ </div><!-- machine_types-method -->
2508
+
2509
+
2510
+ <div id="method-i-method_missing" class="method-detail ">
2511
+
2512
+ <div class="method-heading">
2513
+ <span class="method-name">method_missing</span><span
2514
+ class="method-args">(method, *args, &code)</span>
2515
+ <span class="method-click-advice">click to toggle source</span>
2516
+ </div>
2517
+
2518
+
2519
+ <div class="method-description">
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+ <div class="method-source-code" id="method_missing-source">
2526
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 48</span>
2527
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">method</span>, *<span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">code</span>)
2528
+ <span class="ruby-identifier">action</span>(<span class="ruby-identifier">method</span>, *<span class="ruby-identifier">args</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
2529
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
2530
+ <span class="ruby-keyword">end</span>
2531
+ <span class="ruby-keyword">end</span></pre>
2532
+ </div><!-- method_missing-source -->
2533
+
2534
+ </div>
2535
+
2536
+
2537
+
2538
+
2539
+ </div><!-- method_missing-method -->
2540
+
2541
+
2542
+ <div id="method-i-normalize" class="method-detail ">
2543
+
2544
+ <div class="method-heading">
2545
+ <span class="method-name">normalize</span><span
2546
+ class="method-args">(reload)</span>
2547
+ <span class="method-click-advice">click to toggle source</span>
2548
+ </div>
2549
+
2550
+
2551
+ <div class="method-description">
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+ <div class="method-source-code" id="normalize-source">
2558
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 12</span>
2559
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">normalize</span>(<span class="ruby-identifier">reload</span>)
2560
+ <span class="ruby-keyword">super</span>
2561
+
2562
+ <span class="ruby-ivar">@class_color</span> = <span class="ruby-value">:purple</span>
2563
+
2564
+ <span class="ruby-identifier">export</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
2565
+ <span class="ruby-identifier">myself</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
2566
+ <span class="ruby-keyword">end</span>
2567
+
2568
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">resource</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Console</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">hostname</span>, <span class="ruby-ivar">@class_color</span>)
2569
+ <span class="ruby-identifier">logger</span> = <span class="ruby-identifier">hostname</span>
2570
+
2571
+ <span class="ruby-identifier">add_groups</span>([ <span class="ruby-string">&quot;all&quot;</span>, <span class="ruby-identifier">plugin_provider</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">plugin_name</span>.<span class="ruby-identifier">to_s</span> ])
2572
+
2573
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">reload</span>
2574
+ <span class="ruby-ivar">@cli_interface</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Liquid</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">method</span>, <span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">code</span><span class="ruby-operator">|</span>
2575
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">exec</span>({ <span class="ruby-value">:commands</span> =<span class="ruby-operator">&gt;</span> [ [ <span class="ruby-identifier">method</span>, <span class="ruby-identifier">args</span> ].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39; &#39;</span>) ] }) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
2576
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
2577
+ <span class="ruby-keyword">end</span>
2578
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>
2579
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">result</span>.<span class="ruby-identifier">first</span>
2580
+ <span class="ruby-identifier">alert</span>(<span class="ruby-identifier">result</span>.<span class="ruby-identifier">errors</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">empty?</span>
2581
+ <span class="ruby-keyword">end</span>
2582
+ <span class="ruby-identifier">result</span>
2583
+ <span class="ruby-keyword">end</span>
2584
+
2585
+ <span class="ruby-ivar">@action_interface</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Liquid</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">method</span>, <span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">code</span><span class="ruby-operator">|</span>
2586
+ <span class="ruby-identifier">action</span>(<span class="ruby-identifier">method</span>, *<span class="ruby-identifier">args</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
2587
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
2588
+ <span class="ruby-keyword">end</span>
2589
+ <span class="ruby-keyword">end</span>
2590
+ <span class="ruby-keyword">end</span>
2591
+ <span class="ruby-keyword">end</span></pre>
2592
+ </div><!-- normalize-source -->
2593
+
2594
+ </div>
2595
+
2596
+
2597
+
2598
+
2599
+ </div><!-- normalize-method -->
2600
+
2601
+
2602
+ <div id="method-i-private_ip" class="method-detail ">
2603
+
2604
+ <div class="method-heading">
2605
+ <span class="method-name">private_ip</span><span
2606
+ class="method-args">(reset = false)</span>
2607
+ <span class="method-click-advice">click to toggle source</span>
2608
+ </div>
2609
+
2610
+
2611
+ <div class="method-description">
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+ <div class="method-source-code" id="private_ip-source">
2618
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 137</span>
2619
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">private_ip</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
2620
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:private_ip</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">private_ip</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">setting</span>(<span class="ruby-value">:private_ip</span>).<span class="ruby-identifier">nil?</span> )
2621
+ <span class="ruby-identifier">setting</span>(<span class="ruby-value">:private_ip</span>)
2622
+ <span class="ruby-keyword">end</span></pre>
2623
+ </div><!-- private_ip-source -->
2624
+
2625
+ </div>
2626
+
2627
+
2628
+
2629
+
2630
+ </div><!-- private_ip-method -->
2631
+
2632
+
2633
+ <div id="method-i-private_key" class="method-detail ">
2634
+
2635
+ <div class="method-heading">
2636
+ <span class="method-name">private_key</span><span
2637
+ class="method-args">()</span>
2638
+ <span class="method-click-advice">click to toggle source</span>
2639
+ </div>
2640
+
2641
+
2642
+ <div class="method-description">
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+ <div class="method-source-code" id="private_key-source">
2649
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 205</span>
2650
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">private_key</span>
2651
+ <span class="ruby-identifier">config_key</span> = <span class="ruby-identifier">myself</span>[<span class="ruby-value">:private_key</span>]
2652
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">config_key</span>, <span class="ruby-identifier">network</span>.<span class="ruby-identifier">directory</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">config_key</span>
2653
+ <span class="ruby-keyword">nil</span>
2654
+ <span class="ruby-keyword">end</span></pre>
2655
+ </div><!-- private_key-source -->
2656
+
2657
+ </div>
2658
+
2659
+
2660
+
2661
+
2662
+ </div><!-- private_key-method -->
2663
+
2664
+
2665
+ <div id="method-i-private_key-3D" class="method-detail ">
2666
+
2667
+ <div class="method-heading">
2668
+ <span class="method-name">private_key=</span><span
2669
+ class="method-args">(private_key)</span>
2670
+ <span class="method-click-advice">click to toggle source</span>
2671
+ </div>
2672
+
2673
+
2674
+ <div class="method-description">
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+ <div class="method-source-code" id="private_key-3D-source">
2681
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 201</span>
2682
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">private_key=</span><span class="ruby-identifier">private_key</span>
2683
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:private_key</span>] = <span class="ruby-identifier">private_key</span>
2684
+ <span class="ruby-keyword">end</span></pre>
2685
+ </div><!-- private_key-3D-source -->
2686
+
2687
+ </div>
2688
+
2689
+
2690
+
2691
+
2692
+ </div><!-- private_key-3D-method -->
2693
+
2694
+
2695
+ <div id="method-i-profiles" class="method-detail ">
2696
+
2697
+ <div class="method-heading">
2698
+ <span class="method-name">profiles</span><span
2699
+ class="method-args">()</span>
2700
+ <span class="method-click-advice">click to toggle source</span>
2701
+ </div>
2702
+
2703
+
2704
+ <div class="method-description">
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+ <div class="method-source-code" id="profiles-source">
2711
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 310</span>
2712
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">profiles</span>
2713
+ [ <span class="ruby-identifier">array</span>(<span class="ruby-identifier">myself</span>[<span class="ruby-value">:profiles</span>]), <span class="ruby-identifier">lookup_array</span>(<span class="ruby-value">:profiles</span>).<span class="ruby-identifier">reverse</span> ].<span class="ruby-identifier">flatten</span>
2714
+ <span class="ruby-keyword">end</span></pre>
2715
+ </div><!-- profiles-source -->
2716
+
2717
+ </div>
2718
+
2719
+
2720
+
2721
+
2722
+ </div><!-- profiles-method -->
2723
+
2724
+
2725
+ <div id="method-i-profiles-3D" class="method-detail ">
2726
+
2727
+ <div class="method-heading">
2728
+ <span class="method-name">profiles=</span><span
2729
+ class="method-args">(profiles)</span>
2730
+ <span class="method-click-advice">click to toggle source</span>
2731
+ </div>
2732
+
2733
+
2734
+ <div class="method-description">
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+ <div class="method-source-code" id="profiles-3D-source">
2741
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 306</span>
2742
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">profiles=</span><span class="ruby-identifier">profiles</span>
2743
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:profiles</span>] = <span class="ruby-identifier">array</span>(<span class="ruby-identifier">profiles</span>)
2744
+ <span class="ruby-keyword">end</span></pre>
2745
+ </div><!-- profiles-3D-source -->
2746
+
2747
+ </div>
2748
+
2749
+
2750
+
2751
+
2752
+ </div><!-- profiles-3D-method -->
2753
+
2754
+
2755
+ <div id="method-i-provisioner_info" class="method-detail ">
2756
+
2757
+ <div class="method-heading">
2758
+ <span class="method-name">provisioner_info</span><span
2759
+ class="method-args">()</span>
2760
+ <span class="method-click-advice">click to toggle source</span>
2761
+ </div>
2762
+
2763
+
2764
+ <div class="method-description">
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+ <div class="method-source-code" id="provisioner_info-source">
2771
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 316</span>
2772
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">provisioner_info</span>
2773
+ <span class="ruby-identifier">provisioner_info</span> = {}
2774
+
2775
+ <span class="ruby-comment"># Compose needed provisioners and profiles</span>
2776
+ <span class="ruby-identifier">profiles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">profile</span><span class="ruby-operator">|</span>
2777
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">info</span> = <span class="ruby-constant">Plugin</span><span class="ruby-operator">::</span><span class="ruby-constant">Provisioner</span>.<span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">profile</span>)
2778
+ <span class="ruby-identifier">provider</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:provider</span>]
2779
+
2780
+ <span class="ruby-identifier">provisioner_info</span>[<span class="ruby-identifier">provider</span>] = { <span class="ruby-value">:profiles</span> =<span class="ruby-operator">&gt;</span> [] } <span class="ruby-keyword">unless</span> <span class="ruby-identifier">provisioner_info</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">provider</span>)
2781
+ <span class="ruby-identifier">provisioner_info</span>[<span class="ruby-identifier">provider</span>][<span class="ruby-value">:profiles</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">info</span>[<span class="ruby-value">:profiles</span>]
2782
+ <span class="ruby-keyword">end</span>
2783
+ <span class="ruby-keyword">end</span>
2784
+ <span class="ruby-identifier">provisioner_info</span>
2785
+ <span class="ruby-keyword">end</span></pre>
2786
+ </div><!-- provisioner_info-source -->
2787
+
2788
+ </div>
2789
+
2790
+
2791
+
2792
+
2793
+ </div><!-- provisioner_info-method -->
2794
+
2795
+
2796
+ <div id="method-i-provisioners" class="method-detail ">
2797
+
2798
+ <div class="method-heading">
2799
+ <span class="method-name">provisioners</span><span
2800
+ class="method-args">()</span>
2801
+ <span class="method-click-advice">click to toggle source</span>
2802
+ </div>
2803
+
2804
+
2805
+ <div class="method-description">
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+ <div class="method-source-code" id="provisioners-source">
2812
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 333</span>
2813
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">provisioners</span>
2814
+ <span class="ruby-identifier">provisioners</span> = {}
2815
+ <span class="ruby-identifier">provisioner_info</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">provider</span>, <span class="ruby-identifier">node_profiles</span><span class="ruby-operator">|</span>
2816
+ <span class="ruby-identifier">provisioners</span>[<span class="ruby-identifier">provider</span>] = <span class="ruby-identifier">network</span>.<span class="ruby-identifier">provisioners</span>(<span class="ruby-identifier">provider</span>)
2817
+ <span class="ruby-keyword">end</span>
2818
+ <span class="ruby-identifier">provisioners</span>
2819
+ <span class="ruby-keyword">end</span></pre>
2820
+ </div><!-- provisioners-source -->
2821
+
2822
+ </div>
2823
+
2824
+
2825
+
2826
+
2827
+ </div><!-- provisioners-method -->
2828
+
2829
+
2830
+ <div id="method-i-public_ip" class="method-detail ">
2831
+
2832
+ <div class="method-heading">
2833
+ <span class="method-name">public_ip</span><span
2834
+ class="method-args">(reset = false)</span>
2835
+ <span class="method-click-advice">click to toggle source</span>
2836
+ </div>
2837
+
2838
+
2839
+ <div class="method-description">
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+ <div class="method-source-code" id="public_ip-source">
2846
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 132</span>
2847
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">public_ip</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
2848
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:public_ip</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">public_ip</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">setting</span>(<span class="ruby-value">:public_ip</span>).<span class="ruby-identifier">nil?</span> )
2849
+ <span class="ruby-identifier">setting</span>(<span class="ruby-value">:public_ip</span>)
2850
+ <span class="ruby-keyword">end</span></pre>
2851
+ </div><!-- public_ip-source -->
2852
+
2853
+ </div>
2854
+
2855
+
2856
+
2857
+
2858
+ </div><!-- public_ip-method -->
2859
+
2860
+
2861
+ <div id="method-i-public_key" class="method-detail ">
2862
+
2863
+ <div class="method-heading">
2864
+ <span class="method-name">public_key</span><span
2865
+ class="method-args">()</span>
2866
+ <span class="method-click-advice">click to toggle source</span>
2867
+ </div>
2868
+
2869
+
2870
+ <div class="method-description">
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+ <div class="method-source-code" id="public_key-source">
2877
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 217</span>
2878
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">public_key</span>
2879
+ <span class="ruby-identifier">config_key</span> = <span class="ruby-identifier">myself</span>[<span class="ruby-value">:public_key</span>]
2880
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">config_key</span>, <span class="ruby-identifier">network</span>.<span class="ruby-identifier">directory</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">config_key</span>
2881
+ <span class="ruby-keyword">end</span></pre>
2882
+ </div><!-- public_key-source -->
2883
+
2884
+ </div>
2885
+
2886
+
2887
+
2888
+
2889
+ </div><!-- public_key-method -->
2890
+
2891
+
2892
+ <div id="method-i-public_key-3D" class="method-detail ">
2893
+
2894
+ <div class="method-heading">
2895
+ <span class="method-name">public_key=</span><span
2896
+ class="method-args">(public_key)</span>
2897
+ <span class="method-click-advice">click to toggle source</span>
2898
+ </div>
2899
+
2900
+
2901
+ <div class="method-description">
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+ <div class="method-source-code" id="public_key-3D-source">
2908
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 213</span>
2909
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">public_key=</span><span class="ruby-identifier">public_key</span>
2910
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:public_key</span>] = <span class="ruby-identifier">public_key</span>
2911
+ <span class="ruby-keyword">end</span></pre>
2912
+ </div><!-- public_key-3D-source -->
2913
+
2914
+ </div>
2915
+
2916
+
2917
+
2918
+
2919
+ </div><!-- public_key-3D-method -->
2920
+
2921
+
2922
+ <div id="method-i-reload" class="method-detail ">
2923
+
2924
+ <div class="method-heading">
2925
+ <span class="method-name">reload</span><span
2926
+ class="method-args">(options = {}) { |:config, config| ... }</span>
2927
+ <span class="method-click-advice">click to toggle source</span>
2928
+ </div>
2929
+
2930
+
2931
+ <div class="method-description">
2932
+
2933
+
2934
+
2935
+
2936
+
2937
+ <div class="method-source-code" id="reload-source">
2938
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 990</span>
2939
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reload</span>(<span class="ruby-identifier">options</span> = {})
2940
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
2941
+
2942
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">created?</span>
2943
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2944
+
2945
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:reload</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
2946
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Reloading node: #{plugin_name}&quot;</span>)
2947
+
2948
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2949
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">reload</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
2950
+
2951
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
2952
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
2953
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
2954
+ <span class="ruby-keyword">end</span>
2955
+
2956
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
2957
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:reload_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
2958
+ <span class="ruby-keyword">end</span>
2959
+ <span class="ruby-keyword">end</span>
2960
+ <span class="ruby-keyword">else</span>
2961
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not created so cannot be reloaded&quot;</span>)
2962
+ <span class="ruby-keyword">end</span>
2963
+ <span class="ruby-identifier">success</span>
2964
+ <span class="ruby-keyword">end</span></pre>
2965
+ </div><!-- reload-source -->
2966
+
2967
+ </div>
2968
+
2969
+
2970
+
2971
+
2972
+ </div><!-- reload-method -->
2973
+
2974
+
2975
+ <div id="method-i-remove_plugin" class="method-detail ">
2976
+
2977
+ <div class="method-heading">
2978
+ <span class="method-name">remove_plugin</span><span
2979
+ class="method-args">()</span>
2980
+ <span class="method-click-advice">click to toggle source</span>
2981
+ </div>
2982
+
2983
+
2984
+ <div class="method-description">
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+ <div class="method-source-code" id="remove_plugin-source">
2991
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 63</span>
2992
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remove_plugin</span>
2993
+ <span class="ruby-constant">CORL</span>.<span class="ruby-identifier">remove_plugin</span>(<span class="ruby-identifier">local_machine</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">local_machine</span>
2994
+ <span class="ruby-constant">CORL</span>.<span class="ruby-identifier">remove_plugin</span>(<span class="ruby-identifier">machine</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
2995
+ <span class="ruby-keyword">end</span></pre>
2996
+ </div><!-- remove_plugin-source -->
2997
+
2998
+ </div>
2999
+
3000
+
3001
+
3002
+
3003
+ </div><!-- remove_plugin-method -->
3004
+
3005
+
3006
+ <div id="method-i-render_image" class="method-detail ">
3007
+
3008
+ <div class="method-heading">
3009
+ <span class="method-name">render_image</span><span
3010
+ class="method-args">(image)</span>
3011
+ <span class="method-click-advice">click to toggle source</span>
3012
+ </div>
3013
+
3014
+
3015
+ <div class="method-description">
3016
+
3017
+
3018
+
3019
+
3020
+
3021
+ <div class="method-source-code" id="render_image-source">
3022
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1244</span>
3023
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">render_image</span>(<span class="ruby-identifier">image</span>)
3024
+ <span class="ruby-string">&#39;&#39;</span>
3025
+ <span class="ruby-keyword">end</span></pre>
3026
+ </div><!-- render_image-source -->
3027
+
3028
+ </div>
3029
+
3030
+
3031
+
3032
+
3033
+ </div><!-- render_image-method -->
3034
+
3035
+
3036
+ <div id="method-i-render_machine_type" class="method-detail ">
3037
+
3038
+ <div class="method-heading">
3039
+ <span class="method-name">render_machine_type</span><span
3040
+ class="method-args">(machine_type)</span>
3041
+ <span class="method-click-advice">click to toggle source</span>
3042
+ </div>
3043
+
3044
+
3045
+ <div class="method-description">
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+ <div class="method-source-code" id="render_machine_type-source">
3052
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1231</span>
3053
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">render_machine_type</span>(<span class="ruby-identifier">machine_type</span>)
3054
+ <span class="ruby-string">&#39;&#39;</span>
3055
+ <span class="ruby-keyword">end</span></pre>
3056
+ </div><!-- render_machine_type-source -->
3057
+
3058
+ </div>
3059
+
3060
+
3061
+
3062
+
3063
+ </div><!-- render_machine_type-method -->
3064
+
3065
+
3066
+ <div id="method-i-run" class="method-detail ">
3067
+
3068
+ <div class="method-heading">
3069
+ <span class="method-name">run</span><span
3070
+ class="method-args">()</span>
3071
+ <span class="method-click-advice">click to toggle source</span>
3072
+ </div>
3073
+
3074
+
3075
+ <div class="method-description">
3076
+
3077
+
3078
+
3079
+
3080
+
3081
+ <div class="method-source-code" id="run-source">
3082
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 746</span>
3083
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">run</span>
3084
+ <span class="ruby-ivar">@action_interface</span>
3085
+ <span class="ruby-keyword">end</span></pre>
3086
+ </div><!-- run-source -->
3087
+
3088
+ </div>
3089
+
3090
+
3091
+
3092
+
3093
+ </div><!-- run-method -->
3094
+
3095
+
3096
+ <div id="method-i-save" class="method-detail ">
3097
+
3098
+ <div class="method-heading">
3099
+ <span class="method-name">save</span><span
3100
+ class="method-args">(options = {}) { |config| ... }</span>
3101
+ <span class="method-click-advice">click to toggle source</span>
3102
+ </div>
3103
+
3104
+
3105
+ <div class="method-description">
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+ <div class="method-source-code" id="save-source">
3112
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 922</span>
3113
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">save</span>(<span class="ruby-identifier">options</span> = {})
3114
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
3115
+
3116
+ <span class="ruby-comment"># Record machine parameters</span>
3117
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
3118
+ <span class="ruby-comment"># Provider or external configuration preparation</span>
3119
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>)
3120
+ <span class="ruby-keyword">else</span>
3121
+ <span class="ruby-comment"># Default configuration preparation</span>
3122
+ <span class="ruby-identifier">id</span>(<span class="ruby-keyword">true</span>)
3123
+ <span class="ruby-identifier">public_ip</span>(<span class="ruby-keyword">true</span>)
3124
+ <span class="ruby-identifier">private_ip</span>(<span class="ruby-keyword">true</span>)
3125
+ <span class="ruby-identifier">state</span>(<span class="ruby-keyword">true</span>)
3126
+
3127
+ <span class="ruby-identifier">machine_type</span>(<span class="ruby-keyword">false</span>)
3128
+ <span class="ruby-identifier">image</span>(<span class="ruby-keyword">false</span>)
3129
+ <span class="ruby-keyword">end</span>
3130
+
3131
+ <span class="ruby-identifier">network</span>.<span class="ruby-identifier">save</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({
3132
+ <span class="ruby-value">:commit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
3133
+ <span class="ruby-value">:allow_empty</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
3134
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:message</span>, <span class="ruby-node">&quot;Saving #{plugin_provider} node #{plugin_name}&quot;</span>),
3135
+ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:remote</span>, <span class="ruby-value">:edit</span>)
3136
+ }))
3137
+ <span class="ruby-keyword">end</span></pre>
3138
+ </div><!-- save-source -->
3139
+
3140
+ </div>
3141
+
3142
+
3143
+
3144
+
3145
+ </div><!-- save-method -->
3146
+
3147
+
3148
+ <div id="method-i-send_files" class="method-detail ">
3149
+
3150
+ <div class="method-heading">
3151
+ <span class="method-name">send_files</span><span
3152
+ class="method-args">(local_path, remote_path, files = nil, permission = '0644', &code)</span>
3153
+ <span class="method-click-advice">click to toggle source</span>
3154
+ </div>
3155
+
3156
+
3157
+ <div class="method-description">
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+ <div class="method-source-code" id="send_files-source">
3164
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 586</span>
3165
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">send_files</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">remote_path</span>, <span class="ruby-identifier">files</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">permission</span> = <span class="ruby-string">&#39;0644&#39;</span>, &amp;<span class="ruby-identifier">code</span>)
3166
+ <span class="ruby-identifier">local_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">local_path</span>)
3167
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">local_path</span>)
3168
+
3169
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
3170
+
3171
+ <span class="ruby-identifier">send_file</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">local_file</span>, <span class="ruby-identifier">remote_file</span><span class="ruby-operator">|</span>
3172
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">local_file</span>, <span class="ruby-identifier">remote_file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">options</span><span class="ruby-operator">|</span>
3173
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">op</span>, <span class="ruby-identifier">options</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
3174
+ <span class="ruby-keyword">end</span>
3175
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">cli_check</span>(<span class="ruby-value">:chmod</span>, <span class="ruby-identifier">permission</span>, <span class="ruby-identifier">remote_file</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">send_success</span>
3176
+ <span class="ruby-identifier">send_success</span>
3177
+ <span class="ruby-keyword">end</span>
3178
+
3179
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">files</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
3180
+ <span class="ruby-identifier">files</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rel_file_name</span><span class="ruby-operator">|</span>
3181
+ <span class="ruby-identifier">local_file</span> = <span class="ruby-node">&quot;#{local_path}/#{rel_file_name}&quot;</span>
3182
+ <span class="ruby-identifier">remote_file</span> = <span class="ruby-node">&quot;#{remote_path}/#{rel_file_name}&quot;</span>
3183
+
3184
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">local_file</span>)
3185
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">send_file</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">local_file</span>, <span class="ruby-identifier">remote_file</span>)
3186
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">send_success</span>
3187
+ <span class="ruby-keyword">end</span>
3188
+ <span class="ruby-keyword">end</span>
3189
+ <span class="ruby-keyword">else</span>
3190
+ <span class="ruby-identifier">send_success</span> = <span class="ruby-identifier">send_file</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">remote_path</span>)
3191
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">send_success</span>
3192
+ <span class="ruby-keyword">end</span>
3193
+ <span class="ruby-identifier">success</span>
3194
+ <span class="ruby-keyword">end</span></pre>
3195
+ </div><!-- send_files-source -->
3196
+
3197
+ </div>
3198
+
3199
+
3200
+
3201
+
3202
+ </div><!-- send_files-method -->
3203
+
3204
+
3205
+ <div id="method-i-ssh_path" class="method-detail ">
3206
+
3207
+ <div class="method-heading">
3208
+ <span class="method-name">ssh_path</span><span
3209
+ class="method-args">(home_env_var = 'HOME', reset = false)</span>
3210
+ <span class="method-click-advice">click to toggle source</span>
3211
+ </div>
3212
+
3213
+
3214
+ <div class="method-description">
3215
+
3216
+
3217
+
3218
+
3219
+
3220
+ <div class="method-source-code" id="ssh_path-source">
3221
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 194</span>
3222
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ssh_path</span>(<span class="ruby-identifier">home_env_var</span> = <span class="ruby-string">&#39;HOME&#39;</span>, <span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
3223
+ <span class="ruby-identifier">home</span> = <span class="ruby-identifier">home</span>(<span class="ruby-identifier">home_env_var</span>, <span class="ruby-identifier">reset</span>)
3224
+ <span class="ruby-identifier">home</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">home</span>, <span class="ruby-string">&#39;.ssh&#39;</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
3225
+ <span class="ruby-keyword">end</span></pre>
3226
+ </div><!-- ssh_path-source -->
3227
+
3228
+ </div>
3229
+
3230
+
3231
+
3232
+
3233
+ </div><!-- ssh_path-method -->
3234
+
3235
+
3236
+ <div id="method-i-ssh_port" class="method-detail ">
3237
+
3238
+ <div class="method-heading">
3239
+ <span class="method-name">ssh_port</span><span
3240
+ class="method-args">()</span>
3241
+ <span class="method-click-advice">click to toggle source</span>
3242
+ </div>
3243
+
3244
+
3245
+ <div class="method-description">
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+ <div class="method-source-code" id="ssh_port-source">
3252
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 178</span>
3253
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ssh_port</span>
3254
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:ssh_port</span>] = <span class="ruby-value">22</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">myself</span>[<span class="ruby-value">:ssh_port</span>].<span class="ruby-identifier">nil?</span>
3255
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:ssh_port</span>]
3256
+ <span class="ruby-keyword">end</span></pre>
3257
+ </div><!-- ssh_port-source -->
3258
+
3259
+ </div>
3260
+
3261
+
3262
+
3263
+
3264
+ </div><!-- ssh_port-method -->
3265
+
3266
+
3267
+ <div id="method-i-ssh_port-3D" class="method-detail ">
3268
+
3269
+ <div class="method-heading">
3270
+ <span class="method-name">ssh_port=</span><span
3271
+ class="method-args">(ssh_port)</span>
3272
+ <span class="method-click-advice">click to toggle source</span>
3273
+ </div>
3274
+
3275
+
3276
+ <div class="method-description">
3277
+
3278
+
3279
+
3280
+
3281
+
3282
+ <div class="method-source-code" id="ssh_port-3D-source">
3283
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 173</span>
3284
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ssh_port=</span><span class="ruby-identifier">ssh_port</span>
3285
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:ssh_port</span>] = <span class="ruby-identifier">ssh_port</span>
3286
+ <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">init_ssh</span>(<span class="ruby-identifier">ssh_port</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
3287
+ <span class="ruby-keyword">end</span></pre>
3288
+ </div><!-- ssh_port-3D-source -->
3289
+
3290
+ </div>
3291
+
3292
+
3293
+
3294
+
3295
+ </div><!-- ssh_port-3D-method -->
3296
+
3297
+
3298
+ <div id="method-i-start" class="method-detail ">
3299
+
3300
+ <div class="method-heading">
3301
+ <span class="method-name">start</span><span
3302
+ class="method-args">(options = {}) { |:config, config| ... }</span>
3303
+ <span class="method-click-advice">click to toggle source</span>
3304
+ </div>
3305
+
3306
+
3307
+ <div class="method-description">
3308
+
3309
+
3310
+
3311
+
3312
+
3313
+ <div class="method-source-code" id="start-source">
3314
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 950</span>
3315
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">start</span>(<span class="ruby-identifier">options</span> = {})
3316
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
3317
+
3318
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span>
3319
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
3320
+
3321
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:start</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3322
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Starting node: #{plugin_name}&quot;</span>)
3323
+
3324
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
3325
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">start</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
3326
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
3327
+
3328
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
3329
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:bootstrap</span>, <span class="ruby-keyword">true</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">bootstrap_script</span>
3330
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">command</span>(<span class="ruby-node">&quot;HOSTNAME=&#39;#{hostname}&#39; #{bootstrap_script}&quot;</span>, { <span class="ruby-value">:as_admin</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
3331
+ <span class="ruby-keyword">yield</span>(<span class="ruby-node">&quot;bootstrap_#{op}&quot;</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
3332
+ <span class="ruby-identifier">data</span>
3333
+ <span class="ruby-keyword">end</span>
3334
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">reload</span>
3335
+ <span class="ruby-keyword">end</span>
3336
+ <span class="ruby-keyword">end</span>
3337
+
3338
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
3339
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
3340
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
3341
+ <span class="ruby-keyword">end</span>
3342
+
3343
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
3344
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:start_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3345
+ <span class="ruby-keyword">end</span>
3346
+ <span class="ruby-keyword">end</span>
3347
+ <span class="ruby-keyword">else</span>
3348
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine so cannot be started&quot;</span>)
3349
+ <span class="ruby-keyword">end</span>
3350
+ <span class="ruby-identifier">success</span>
3351
+ <span class="ruby-keyword">end</span></pre>
3352
+ </div><!-- start-source -->
3353
+
3354
+ </div>
3355
+
3356
+
3357
+
3358
+
3359
+ </div><!-- start-method -->
3360
+
3361
+
3362
+ <div id="method-i-state" class="method-detail ">
3363
+
3364
+ <div class="method-heading">
3365
+ <span class="method-name">state</span><span
3366
+ class="method-args">(reset = false)</span>
3367
+ <span class="method-click-advice">click to toggle source</span>
3368
+ </div>
3369
+
3370
+
3371
+ <div class="method-description">
3372
+
3373
+
3374
+
3375
+
3376
+
3377
+ <div class="method-source-code" id="state-source">
3378
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 156</span>
3379
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">state</span>(<span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
3380
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:state</span>] = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">state</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">setting</span>(<span class="ruby-value">:state</span>).<span class="ruby-identifier">nil?</span> )
3381
+ <span class="ruby-identifier">setting</span>(<span class="ruby-value">:state</span>)
3382
+ <span class="ruby-keyword">end</span></pre>
3383
+ </div><!-- state-source -->
3384
+
3385
+ </div>
3386
+
3387
+
3388
+
3389
+
3390
+ </div><!-- state-method -->
3391
+
3392
+
3393
+ <div id="method-i-stop" class="method-detail ">
3394
+
3395
+ <div class="method-heading">
3396
+ <span class="method-name">stop</span><span
3397
+ class="method-args">(options = {}) { |:config, config| ... }</span>
3398
+ <span class="method-click-advice">click to toggle source</span>
3399
+ </div>
3400
+
3401
+
3402
+ <div class="method-description">
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+ <div class="method-source-code" id="stop-source">
3409
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1049</span>
3410
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">stop</span>(<span class="ruby-identifier">options</span> = {})
3411
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
3412
+
3413
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
3414
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
3415
+
3416
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:stop</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3417
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Stopping node: #{plugin_name}&quot;</span>)
3418
+
3419
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
3420
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">stop</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
3421
+
3422
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">machine</span> = <span class="ruby-keyword">nil</span>
3423
+
3424
+ <span class="ruby-identifier">override_settings</span> = <span class="ruby-keyword">false</span>
3425
+ <span class="ruby-identifier">override_settings</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:finalize</span>, <span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
3426
+
3427
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">override_settings</span>
3428
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:id</span>)
3429
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:public_ip</span>)
3430
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:private_ip</span>)
3431
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:ssh_port</span>)
3432
+ <span class="ruby-identifier">delete_setting</span>(<span class="ruby-value">:build</span>)
3433
+
3434
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:state</span>] = <span class="ruby-value">:stopped</span>
3435
+ <span class="ruby-keyword">end</span>
3436
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">save</span>(<span class="ruby-identifier">config</span>)
3437
+
3438
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
3439
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">config</span>)
3440
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
3441
+ <span class="ruby-keyword">end</span>
3442
+
3443
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
3444
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:stop_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3445
+ <span class="ruby-keyword">end</span>
3446
+ <span class="ruby-keyword">end</span>
3447
+ <span class="ruby-keyword">else</span>
3448
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot be stopped&quot;</span>)
3449
+ <span class="ruby-keyword">end</span>
3450
+ <span class="ruby-identifier">success</span>
3451
+ <span class="ruby-keyword">end</span></pre>
3452
+ </div><!-- stop-source -->
3453
+
3454
+ </div>
3455
+
3456
+
3457
+
3458
+
3459
+ </div><!-- stop-method -->
3460
+
3461
+
3462
+ <div id="method-i-terminal" class="method-detail ">
3463
+
3464
+ <div class="method-heading">
3465
+ <span class="method-name">terminal</span><span
3466
+ class="method-args">(options = {})</span>
3467
+ <span class="method-click-advice">click to toggle source</span>
3468
+ </div>
3469
+
3470
+
3471
+ <div class="method-description">
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+ <div class="method-source-code" id="terminal-source">
3478
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 752</span>
3479
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">terminal</span>(<span class="ruby-identifier">options</span> = {})
3480
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">unknown_status</span>
3481
+
3482
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
3483
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
3484
+
3485
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:terminal</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3486
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Launching terminal for node: #{plugin_name}&quot;</span>)
3487
+
3488
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">local?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">local_machine</span>
3489
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">local_machine</span>
3490
+
3491
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:info_prefix</span>] = <span class="ruby-node">&quot;[#{hostname}] &quot;</span>
3492
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:error_prefix</span>] = <span class="ruby-node">&quot;[#{hostname}] &quot;</span>
3493
+ <span class="ruby-keyword">else</span>
3494
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">machine</span>
3495
+ <span class="ruby-keyword">end</span>
3496
+
3497
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:private_keys</span>] = <span class="ruby-identifier">private_key</span>
3498
+ <span class="ruby-identifier">config</span>[<span class="ruby-value">:port</span>] = <span class="ruby-identifier">ssh_port</span>
3499
+
3500
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">active_machine</span>.<span class="ruby-identifier">terminal</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)
3501
+
3502
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
3503
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:exec_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3504
+ <span class="ruby-keyword">end</span>
3505
+ <span class="ruby-keyword">end</span>
3506
+ <span class="ruby-keyword">else</span>
3507
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot launch terminal&quot;</span>)
3508
+ <span class="ruby-keyword">end</span>
3509
+ <span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
3510
+ <span class="ruby-keyword">end</span></pre>
3511
+ </div><!-- terminal-source -->
3512
+
3513
+ </div>
3514
+
3515
+
3516
+
3517
+
3518
+ </div><!-- terminal-method -->
3519
+
3520
+
3521
+ <div id="method-i-translate_reference" class="method-detail ">
3522
+
3523
+ <div class="method-heading">
3524
+ <span class="method-name">translate_reference</span><span
3525
+ class="method-args">(reference)</span>
3526
+ <span class="method-click-advice">click to toggle source</span>
3527
+ </div>
3528
+
3529
+
3530
+ <div class="method-description">
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+ <div class="method-source-code" id="translate_reference-source">
3537
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 1192</span>
3538
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>)
3539
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>)
3540
+ <span class="ruby-keyword">end</span></pre>
3541
+ </div><!-- translate_reference-source -->
3542
+
3543
+ </div>
3544
+
3545
+
3546
+
3547
+
3548
+ </div><!-- translate_reference-method -->
3549
+
3550
+
3551
+ <div id="method-i-upload" class="method-detail ">
3552
+
3553
+ <div class="method-heading">
3554
+ <span class="method-name">upload</span><span
3555
+ class="method-args">(local_path, remote_path, options = {}) { |:config, hook_config| ... }</span>
3556
+ <span class="method-click-advice">click to toggle source</span>
3557
+ </div>
3558
+
3559
+
3560
+ <div class="method-description">
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+ <div class="method-source-code" id="upload-source">
3567
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 548</span>
3568
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">remote_path</span>, <span class="ruby-identifier">options</span> = {})
3569
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
3570
+
3571
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">machine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">machine</span>.<span class="ruby-identifier">running?</span>
3572
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
3573
+ <span class="ruby-identifier">hook_config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value">:local_path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">local_path</span>, <span class="ruby-value">:remote_path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote_path</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
3574
+
3575
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:upload</span>, <span class="ruby-identifier">hook_config</span>)
3576
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Uploading to #{plugin_name}&quot;</span>)
3577
+
3578
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;Starting upload of #{local_path} to #{remote_path}&quot;</span>)
3579
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:config</span>, <span class="ruby-identifier">hook_config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
3580
+
3581
+ <span class="ruby-identifier">active_machine</span> = <span class="ruby-identifier">local?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">local_machine</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">machine</span>
3582
+
3583
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">active_machine</span>.<span class="ruby-identifier">upload</span>(<span class="ruby-identifier">local_path</span>, <span class="ruby-identifier">remote_path</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">sent</span>, <span class="ruby-identifier">total</span><span class="ruby-operator">|</span>
3584
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;#{name}: Sent #{sent} of #{total}&quot;</span>)
3585
+ <span class="ruby-keyword">yield</span>(<span class="ruby-value">:progress</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:sent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sent</span>, <span class="ruby-value">:total</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">total</span> })
3586
+ <span class="ruby-keyword">end</span>
3587
+
3588
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
3589
+ <span class="ruby-identifier">render</span>(<span class="ruby-node">&quot;Successfully finished upload of #{local_path} to #{remote_path}&quot;</span>)
3590
+ <span class="ruby-identifier">process_success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">hook_config</span>)
3591
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">process_success</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">process_success</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>
3592
+ <span class="ruby-keyword">end</span>
3593
+
3594
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
3595
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:upload_success</span>, <span class="ruby-identifier">hook_config</span>)
3596
+ <span class="ruby-keyword">end</span>
3597
+ <span class="ruby-keyword">end</span>
3598
+ <span class="ruby-keyword">else</span>
3599
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Node #{plugin_name} does not have an attached machine or is not running so cannot upload&quot;</span>)
3600
+ <span class="ruby-keyword">end</span>
3601
+ <span class="ruby-identifier">success</span>
3602
+ <span class="ruby-keyword">end</span></pre>
3603
+ </div><!-- upload-source -->
3604
+
3605
+ </div>
3606
+
3607
+
3608
+
3609
+
3610
+ </div><!-- upload-method -->
3611
+
3612
+
3613
+ <div id="method-i-usable_image-3F" class="method-detail ">
3614
+
3615
+ <div class="method-heading">
3616
+ <span class="method-name">usable_image?</span><span
3617
+ class="method-args">(image)</span>
3618
+ <span class="method-click-advice">click to toggle source</span>
3619
+ </div>
3620
+
3621
+
3622
+ <div class="method-description">
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+ <div class="method-source-code" id="usable_image-3F-source">
3629
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 77</span>
3630
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">usable_image?</span>(<span class="ruby-identifier">image</span>)
3631
+ <span class="ruby-keyword">true</span>
3632
+ <span class="ruby-keyword">end</span></pre>
3633
+ </div><!-- usable_image-3F-source -->
3634
+
3635
+ </div>
3636
+
3637
+
3638
+
3639
+
3640
+ </div><!-- usable_image-3F-method -->
3641
+
3642
+
3643
+ <div id="method-i-user" class="method-detail ">
3644
+
3645
+ <div class="method-heading">
3646
+ <span class="method-name">user</span><span
3647
+ class="method-args">()</span>
3648
+ <span class="method-click-advice">click to toggle source</span>
3649
+ </div>
3650
+
3651
+
3652
+ <div class="method-description">
3653
+
3654
+
3655
+
3656
+
3657
+
3658
+ <div class="method-source-code" id="user-source">
3659
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 167</span>
3660
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">user</span>
3661
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:user</span>]
3662
+ <span class="ruby-keyword">end</span></pre>
3663
+ </div><!-- user-source -->
3664
+
3665
+ </div>
3666
+
3667
+
3668
+
3669
+
3670
+ </div><!-- user-method -->
3671
+
3672
+
3673
+ <div id="method-i-user-3D" class="method-detail ">
3674
+
3675
+ <div class="method-heading">
3676
+ <span class="method-name">user=</span><span
3677
+ class="method-args">(user)</span>
3678
+ <span class="method-click-advice">click to toggle source</span>
3679
+ </div>
3680
+
3681
+
3682
+ <div class="method-description">
3683
+
3684
+
3685
+
3686
+
3687
+
3688
+ <div class="method-source-code" id="user-3D-source">
3689
+ <pre><span class="ruby-comment"># File lib/core/plugin/node.rb, line 163</span>
3690
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">user=</span><span class="ruby-identifier">user</span>
3691
+ <span class="ruby-identifier">myself</span>[<span class="ruby-value">:user</span>] = <span class="ruby-identifier">user</span>
3692
+ <span class="ruby-keyword">end</span></pre>
3693
+ </div><!-- user-3D-source -->
3694
+
3695
+ </div>
3696
+
3697
+
3698
+
3699
+
3700
+ </div><!-- user-3D-method -->
3701
+
3702
+
3703
+ </section><!-- public-instance-method-details -->
3704
+
3705
+ </section><!-- 5Buntitled-5D -->
3706
+
3707
+ </div><!-- documentation -->
3708
+
3709
+
3710
+ <footer id="validator-badges">
3711
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
3712
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
3713
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
3714
+ </footer>
3715
+