elevage 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +21 -0
  4. data/.rubocop.yml +8 -0
  5. data/.ruby-version +1 -0
  6. data/.simplecov +8 -0
  7. data/.travis.yml +3 -0
  8. data/.yardoc/checksums +12 -0
  9. data/.yardoc/object_types +0 -0
  10. data/.yardoc/objects/root.dat +0 -0
  11. data/.yardoc/proxy_types +0 -0
  12. data/Gemfile +4 -0
  13. data/Guardfile +10 -0
  14. data/LICENSE.txt +203 -0
  15. data/README.md +112 -0
  16. data/Rakefile +20 -0
  17. data/bin/elevage +4 -0
  18. data/coverage/.resultset.json.lock +0 -0
  19. data/doc/Elevage/Build.html +435 -0
  20. data/doc/Elevage/CLI.html +282 -0
  21. data/doc/Elevage/Environment.html +950 -0
  22. data/doc/Elevage/Generate.html +346 -0
  23. data/doc/Elevage/Health.html +359 -0
  24. data/doc/Elevage/New.html +411 -0
  25. data/doc/Elevage/Platform.html +1119 -0
  26. data/doc/Elevage/Provisioner.html +804 -0
  27. data/doc/Elevage/ProvisionerRunQueue.html +765 -0
  28. data/doc/Elevage/Runner.html +319 -0
  29. data/doc/Elevage.html +501 -0
  30. data/doc/_index.html +239 -0
  31. data/doc/class_list.html +58 -0
  32. data/doc/css/common.css +1 -0
  33. data/doc/css/full_list.css +57 -0
  34. data/doc/css/style.css +339 -0
  35. data/doc/file.README.html +187 -0
  36. data/doc/file_list.html +60 -0
  37. data/doc/frames.html +26 -0
  38. data/doc/index.html +187 -0
  39. data/doc/js/app.js +219 -0
  40. data/doc/js/full_list.js +181 -0
  41. data/doc/js/jquery.js +4 -0
  42. data/doc/method_list.html +369 -0
  43. data/doc/top-level-namespace.html +112 -0
  44. data/elevage.gemspec +39 -0
  45. data/features/archive +314 -0
  46. data/features/build.feature +237 -0
  47. data/features/elevage.feature +24 -0
  48. data/features/generate.feature +235 -0
  49. data/features/health_env_failure.feature +292 -0
  50. data/features/health_failure.feature +291 -0
  51. data/features/health_success.feature +279 -0
  52. data/features/list.feature +315 -0
  53. data/features/new.feature +68 -0
  54. data/features/step_definitions/elevage_steps.rb +27 -0
  55. data/features/support/env.rb +9 -0
  56. data/lib/elevage/build.rb +109 -0
  57. data/lib/elevage/constants.rb +113 -0
  58. data/lib/elevage/environment.rb +223 -0
  59. data/lib/elevage/generate.rb +48 -0
  60. data/lib/elevage/health.rb +27 -0
  61. data/lib/elevage/new.rb +30 -0
  62. data/lib/elevage/platform.rb +105 -0
  63. data/lib/elevage/provisioner.rb +169 -0
  64. data/lib/elevage/provisionerrunqueue.rb +114 -0
  65. data/lib/elevage/runner.rb +39 -0
  66. data/lib/elevage/templates/compute.yml.tt +18 -0
  67. data/lib/elevage/templates/environment.yml.tt +20 -0
  68. data/lib/elevage/templates/network.yml.tt +16 -0
  69. data/lib/elevage/templates/platform.yml.tt +110 -0
  70. data/lib/elevage/templates/vcenter.yml.tt +77 -0
  71. data/lib/elevage/version.rb +4 -0
  72. data/lib/elevage.rb +45 -0
  73. data/spec/spec_helper.rb +4 -0
  74. metadata +357 -0
@@ -0,0 +1,435 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: Elevage::Build
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!Elevage/Build.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (B)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Elevage.html" title="Elevage (module)">Elevage</a></span></span>
36
+ &raquo;
37
+ <span class="title">Build</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: Elevage::Build
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Thor::Group</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Thor::Group</li>
82
+
83
+ <li class="next">Elevage::Build</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2">Thor::Actions</dd>
97
+
98
+
99
+
100
+
101
+
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/elevage/build.rb</dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>Create new platform definition files and environments folder structure</p>
112
+
113
+
114
+ </div>
115
+ </div>
116
+ <div class="tags">
117
+
118
+
119
+ </div>
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ <h2>
128
+ Class Method Summary
129
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
130
+ </h2>
131
+
132
+ <ul class="summary">
133
+
134
+ <li class="public ">
135
+ <span class="summary_signature">
136
+
137
+ <a href="#source_root-class_method" title="source_root (class method)">+ (Object) <strong>source_root</strong> </a>
138
+
139
+
140
+
141
+ </span>
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+ <span class="summary_desc"><div class='inline'>
152
+ <p>rubocop:enable LineLength.</p>
153
+ </div></span>
154
+
155
+ </li>
156
+
157
+
158
+ </ul>
159
+
160
+ <h2>
161
+ Instance Method Summary
162
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
163
+ </h2>
164
+
165
+ <ul class="summary">
166
+
167
+ <li class="public ">
168
+ <span class="summary_signature">
169
+
170
+ <a href="#build-instance_method" title="#build (instance method)">- (Object) <strong>build</strong> </a>
171
+
172
+
173
+
174
+ </span>
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+ <span class="summary_desc"><div class='inline'>
185
+ <p>rubocop:disable MethodLength, LineLength, CyclomaticComplexity,
186
+ PerceivedComplexity.</p>
187
+ </div></span>
188
+
189
+ </li>
190
+
191
+
192
+ </ul>
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <div id="class_method_details" class="method_details_list">
200
+ <h2>Class Method Details</h2>
201
+
202
+
203
+ <div class="method_details first">
204
+ <h3 class="signature first" id="source_root-class_method">
205
+
206
+ + (<tt>Object</tt>) <strong>source_root</strong>
207
+
208
+
209
+
210
+
211
+
212
+ </h3><div class="docstring">
213
+ <div class="discussion">
214
+
215
+ <p>rubocop:enable LineLength</p>
216
+
217
+
218
+ </div>
219
+ </div>
220
+ <div class="tags">
221
+
222
+
223
+ </div><table class="source_code">
224
+ <tr>
225
+ <td>
226
+ <pre class="lines">
227
+
228
+
229
+ 33
230
+ 34
231
+ 35</pre>
232
+ </td>
233
+ <td>
234
+ <pre class="code"><span class="info file"># File 'lib/elevage/build.rb', line 33</span>
235
+
236
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_source_root'>source_root</span>
237
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span>
238
+ <span class='kw'>end</span></pre>
239
+ </td>
240
+ </tr>
241
+ </table>
242
+ </div>
243
+
244
+ </div>
245
+
246
+ <div id="instance_method_details" class="method_details_list">
247
+ <h2>Instance Method Details</h2>
248
+
249
+
250
+ <div class="method_details first">
251
+ <h3 class="signature first" id="build-instance_method">
252
+
253
+ - (<tt>Object</tt>) <strong>build</strong>
254
+
255
+
256
+
257
+
258
+
259
+ </h3><div class="docstring">
260
+ <div class="discussion">
261
+
262
+ <p>rubocop:disable MethodLength, LineLength, CyclomaticComplexity,
263
+ PerceivedComplexity</p>
264
+
265
+
266
+ </div>
267
+ </div>
268
+ <div class="tags">
269
+
270
+
271
+ </div><table class="source_code">
272
+ <tr>
273
+ <td>
274
+ <pre class="lines">
275
+
276
+
277
+ 38
278
+ 39
279
+ 40
280
+ 41
281
+ 42
282
+ 43
283
+ 44
284
+ 45
285
+ 46
286
+ 47
287
+ 48
288
+ 49
289
+ 50
290
+ 51
291
+ 52
292
+ 53
293
+ 54
294
+ 55
295
+ 56
296
+ 57
297
+ 58
298
+ 59
299
+ 60
300
+ 61
301
+ 62
302
+ 63
303
+ 64
304
+ 65
305
+ 66
306
+ 67
307
+ 68
308
+ 69
309
+ 70
310
+ 71
311
+ 72
312
+ 73
313
+ 74
314
+ 75
315
+ 76
316
+ 77
317
+ 78
318
+ 79
319
+ 80
320
+ 81
321
+ 82
322
+ 83
323
+ 84
324
+ 85
325
+ 86
326
+ 87
327
+ 88
328
+ 89
329
+ 90
330
+ 91
331
+ 92
332
+ 93
333
+ 94
334
+ 95
335
+ 96
336
+ 97
337
+ 98
338
+ 99
339
+ 100
340
+ 101
341
+ 102
342
+ 103
343
+ 104
344
+ 105
345
+ 106</pre>
346
+ </td>
347
+ <td>
348
+ <pre class="code"><span class="info file"># File 'lib/elevage/build.rb', line 38</span>
349
+
350
+ <span class='kw'>def</span> <span class='id identifier rubyid_build'>build</span>
351
+ <span class='comment'># Make the logfile directory if it doesn&#39;t exist
352
+ </span> <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:logfiles</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:logfiles</span><span class='rbracket'>]</span><span class='rparen'>)</span>
353
+
354
+ <span class='comment'># Fetch the environment and make sure it passes basic health checks
355
+ </span> <span class='ivar'>@environment</span> <span class='op'>=</span> <span class='const'>Elevage</span><span class='op'>::</span><span class='const'>Environment</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
356
+ <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='const'>IOError</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='ivar'>@environment</span><span class='period'>.</span><span class='id identifier rubyid_healthy?'>healthy?</span>
357
+
358
+ <span class='comment'># =============================================================
359
+ </span> <span class='comment'># Option sanity checking.
360
+ </span> <span class='comment'>#
361
+ </span> <span class='comment'># What are we going to reject as invalid options?
362
+ </span> <span class='comment'>#
363
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span>
364
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>The --all, --tier and --component options may not be specified together.</span><span class='tstring_end'>&#39;</span></span>
365
+ <span class='id identifier rubyid_exit'>exit</span> <span class='kw'>false</span>
366
+ <span class='kw'>end</span>
367
+
368
+ <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:node</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span>
369
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>When requesting a --node you must specify which --component.</span><span class='tstring_end'>&#39;</span></span>
370
+ <span class='id identifier rubyid_exit'>exit</span> <span class='kw'>false</span>
371
+ <span class='kw'>end</span>
372
+
373
+ <span class='kw'>unless</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span>
374
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>You must specify one of --all, --tier=&lt;tier&gt;, or --component=&lt;component&gt;</span><span class='tstring_end'>&#39;</span></span>
375
+ <span class='id identifier rubyid_exit'>exit</span> <span class='kw'>false</span>
376
+ <span class='kw'>end</span>
377
+
378
+ <span class='comment'># Determine what, exactly, we&#39;re supposed to build
379
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span>
380
+ <span class='comment'># =============================================================
381
+ </span> <span class='comment'># Build ALL THE THINGS!
382
+ </span> <span class='comment'>#
383
+ </span> <span class='ivar'>@environment</span><span class='period'>.</span><span class='id identifier rubyid_provision'>provision</span><span class='lparen'>(</span><span class='label'>type:</span> <span class='symbol'>:all</span><span class='comma'>,</span>
384
+ <span class='label'>options:</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
385
+
386
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span>
387
+ <span class='comment'># =============================================================
388
+ </span> <span class='comment'># Build most of the things...
389
+ </span> <span class='comment'>#
390
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_eql?'>eql?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tier</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
391
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Was asked to build a tier, but was not told which one!</span><span class='tstring_end'>&#39;</span></span>
392
+ <span class='id identifier rubyid_exit'>exit</span> <span class='kw'>false</span>
393
+ <span class='kw'>end</span>
394
+ <span class='ivar'>@environment</span><span class='period'>.</span><span class='id identifier rubyid_provision'>provision</span><span class='lparen'>(</span><span class='label'>type:</span> <span class='symbol'>:tier</span><span class='comma'>,</span>
395
+ <span class='label'>tier:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:tier</span><span class='rbracket'>]</span><span class='comma'>,</span>
396
+ <span class='label'>options:</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
397
+
398
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span>
399
+ <span class='comment'># =============================================================
400
+ </span> <span class='comment'># Build a few things...
401
+ </span> <span class='comment'>#
402
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_eql?'>eql?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>component</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
403
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Was asked to build a component, but was not told which one!</span><span class='tstring_end'>&#39;</span></span>
404
+ <span class='id identifier rubyid_exit'>exit</span> <span class='kw'>false</span>
405
+ <span class='kw'>end</span>
406
+ <span class='comment'># See if we&#39;re actually only supposed to build just one thing...
407
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:node</span><span class='rbracket'>]</span>
408
+ <span class='ivar'>@environment</span><span class='period'>.</span><span class='id identifier rubyid_provision'>provision</span><span class='lparen'>(</span><span class='label'>type:</span> <span class='symbol'>:node</span><span class='comma'>,</span>
409
+ <span class='label'>component:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span><span class='comma'>,</span>
410
+ <span class='label'>instance:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:node</span><span class='rbracket'>]</span><span class='comma'>,</span>
411
+ <span class='label'>options:</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
412
+ <span class='kw'>else</span>
413
+ <span class='ivar'>@environment</span><span class='period'>.</span><span class='id identifier rubyid_provision'>provision</span><span class='lparen'>(</span><span class='label'>type:</span> <span class='symbol'>:component</span><span class='comma'>,</span>
414
+ <span class='label'>component:</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:component</span><span class='rbracket'>]</span><span class='comma'>,</span>
415
+ <span class='label'>options:</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
416
+ <span class='kw'>end</span>
417
+ <span class='kw'>end</span>
418
+ <span class='kw'>end</span></pre>
419
+ </td>
420
+ </tr>
421
+ </table>
422
+ </div>
423
+
424
+ </div>
425
+
426
+ </div>
427
+
428
+ <div id="footer">
429
+ Generated on Tue Nov 11 17:39:23 2014 by
430
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
431
+ 0.8.7.6 (ruby-2.1.2).
432
+ </div>
433
+
434
+ </body>
435
+ </html>