corl 0.5.0 → 0.5.1

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