openstudio-aws 0.1.26 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (351) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +33 -34
  4. data/lib/openstudio/aws/aws.rb +148 -24
  5. data/lib/openstudio/aws/config.rb +1 -0
  6. data/lib/openstudio/aws/version.rb +1 -1
  7. data/lib/openstudio/lib/ami_list.rb +1 -1
  8. data/lib/openstudio/lib/openstudio_aws_instance.rb +260 -26
  9. data/lib/openstudio/lib/openstudio_aws_logger.rb +0 -18
  10. data/lib/openstudio/lib/openstudio_aws_wrapper.rb +111 -75
  11. data/lib/openstudio/lib/os-aws.rb +14 -6
  12. data/lib/openstudio/lib/server_script.sh +40 -26
  13. data/lib/openstudio/lib/worker_script.sh.template +26 -16
  14. data/lib/openstudio-aws.rb +2 -0
  15. data/spec/aws_instances/aws_spec_api.rb +80 -4
  16. data/spec/openstudio-aws/aws_instance_spec.rb +19 -0
  17. data/spec/openstudio-aws/aws_spec.rb +32 -11
  18. data/spec/openstudio-aws/aws_wrapper_spec.rb +5 -5
  19. data/spec/openstudio-aws/config_spec.rb +1 -1
  20. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.0.xml +11 -0
  21. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.1.xml +11 -0
  22. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.10.xml +11 -0
  23. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.11.xml +11 -0
  24. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.12.xml +11 -0
  25. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.13.xml +11 -0
  26. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.2.xml +11 -0
  27. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.3.xml +11 -0
  28. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.4.xml +11 -0
  29. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.5.xml +11 -0
  30. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.6.xml +11 -0
  31. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.7.xml +11 -0
  32. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.8.xml +11 -0
  33. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.9.xml +11 -0
  34. data/spec/reports/SPEC-OpenStudio-Aws-Aws-ami-lists.xml +11 -0
  35. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.0.xml +26 -0
  36. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.xml +35 -0
  37. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-ebs-storage.0.xml +14 -0
  38. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-ebs-storage.xml +14 -0
  39. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.0.xml +14 -0
  40. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.1.xml +21 -0
  41. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.2.xml +11 -0
  42. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.3.xml +11 -0
  43. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.4.xml +11 -0
  44. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.5.xml +11 -0
  45. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.6.xml +11 -0
  46. data/spec/reports/SPEC-OpenStudio-Aws-Aws-custom-keys.xml +16 -0
  47. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.0.xml +13 -0
  48. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.1.xml +13 -0
  49. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.10.xml +13 -0
  50. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.11.xml +13 -0
  51. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.12.xml +13 -0
  52. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.13.xml +13 -0
  53. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.2.xml +13 -0
  54. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.3.xml +13 -0
  55. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.4.xml +13 -0
  56. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.5.xml +13 -0
  57. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.6.xml +13 -0
  58. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.7.xml +13 -0
  59. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.8.xml +13 -0
  60. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.9.xml +13 -0
  61. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.xml +13 -0
  62. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.0.xml +9 -0
  63. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.1.xml +9 -0
  64. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.10.xml +9 -0
  65. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.11.xml +9 -0
  66. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.12.xml +9 -0
  67. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.13.xml +9 -0
  68. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.2.xml +9 -0
  69. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.3.xml +9 -0
  70. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.4.xml +9 -0
  71. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.5.xml +9 -0
  72. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.6.xml +9 -0
  73. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.7.xml +9 -0
  74. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.8.xml +9 -0
  75. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.9.xml +9 -0
  76. data/spec/reports/SPEC-OpenStudio-Aws-Aws-should-error.xml +9 -0
  77. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.0.xml +9 -0
  78. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.1.xml +9 -0
  79. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.10.xml +9 -0
  80. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.11.xml +9 -0
  81. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.12.xml +9 -0
  82. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.13.xml +9 -0
  83. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.2.xml +9 -0
  84. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.3.xml +9 -0
  85. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.4.xml +9 -0
  86. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.5.xml +9 -0
  87. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.6.xml +9 -0
  88. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.7.xml +9 -0
  89. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.8.xml +9 -0
  90. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.9.xml +9 -0
  91. data/spec/reports/SPEC-OpenStudio-Aws-Aws-version-testing.xml +9 -0
  92. data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.0.xml +9 -0
  93. data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.xml +9 -0
  94. data/spec/reports/SPEC-OpenStudio-Aws-Aws.0.xml +7 -0
  95. data/spec/reports/SPEC-OpenStudio-Aws-Aws.1.xml +7 -0
  96. data/spec/reports/SPEC-OpenStudio-Aws-Aws.10.xml +7 -0
  97. data/spec/reports/SPEC-OpenStudio-Aws-Aws.11.xml +7 -0
  98. data/spec/reports/SPEC-OpenStudio-Aws-Aws.12.xml +7 -0
  99. data/spec/reports/SPEC-OpenStudio-Aws-Aws.13.xml +7 -0
  100. data/spec/reports/SPEC-OpenStudio-Aws-Aws.14.xml +7 -0
  101. data/spec/reports/SPEC-OpenStudio-Aws-Aws.15.xml +7 -0
  102. data/spec/reports/SPEC-OpenStudio-Aws-Aws.2.xml +7 -0
  103. data/spec/reports/SPEC-OpenStudio-Aws-Aws.3.xml +7 -0
  104. data/spec/reports/SPEC-OpenStudio-Aws-Aws.4.xml +7 -0
  105. data/spec/reports/SPEC-OpenStudio-Aws-Aws.5.xml +7 -0
  106. data/spec/reports/SPEC-OpenStudio-Aws-Aws.6.xml +7 -0
  107. data/spec/reports/SPEC-OpenStudio-Aws-Aws.7.xml +7 -0
  108. data/spec/reports/SPEC-OpenStudio-Aws-Aws.8.xml +7 -0
  109. data/spec/reports/SPEC-OpenStudio-Aws-Aws.9.xml +7 -0
  110. data/spec/reports/SPEC-OpenStudio-Aws-Aws.xml +7 -0
  111. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.0.xml +9 -0
  112. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.1.xml +9 -0
  113. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.10.xml +9 -0
  114. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.11.xml +9 -0
  115. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.12.xml +9 -0
  116. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.2.xml +9 -0
  117. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.3.xml +9 -0
  118. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.4.xml +9 -0
  119. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.5.xml +9 -0
  120. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.6.xml +9 -0
  121. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.7.xml +9 -0
  122. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.8.xml +9 -0
  123. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.9.xml +9 -0
  124. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.xml +9 -0
  125. data/spec/reports/SPEC-OpenStudio-Aws-Config.0.xml +7 -0
  126. data/spec/reports/SPEC-OpenStudio-Aws-Config.1.xml +7 -0
  127. data/spec/reports/SPEC-OpenStudio-Aws-Config.10.xml +7 -0
  128. data/spec/reports/SPEC-OpenStudio-Aws-Config.11.xml +7 -0
  129. data/spec/reports/SPEC-OpenStudio-Aws-Config.12.xml +7 -0
  130. data/spec/reports/SPEC-OpenStudio-Aws-Config.2.xml +7 -0
  131. data/spec/reports/SPEC-OpenStudio-Aws-Config.3.xml +7 -0
  132. data/spec/reports/SPEC-OpenStudio-Aws-Config.4.xml +7 -0
  133. data/spec/reports/SPEC-OpenStudio-Aws-Config.5.xml +7 -0
  134. data/spec/reports/SPEC-OpenStudio-Aws-Config.6.xml +7 -0
  135. data/spec/reports/SPEC-OpenStudio-Aws-Config.7.xml +7 -0
  136. data/spec/reports/SPEC-OpenStudio-Aws-Config.8.xml +7 -0
  137. data/spec/reports/SPEC-OpenStudio-Aws-Config.9.xml +7 -0
  138. data/spec/reports/SPEC-OpenStudio-Aws-Config.xml +7 -0
  139. data/spec/reports/SPEC-OpenStudioAmis-version-1.0.xml +13 -0
  140. data/spec/reports/SPEC-OpenStudioAmis-version-1.1.xml +13 -0
  141. data/spec/reports/SPEC-OpenStudioAmis-version-1.10.xml +13 -0
  142. data/spec/reports/SPEC-OpenStudioAmis-version-1.11.xml +13 -0
  143. data/spec/reports/SPEC-OpenStudioAmis-version-1.12.xml +13 -0
  144. data/spec/reports/SPEC-OpenStudioAmis-version-1.13.xml +13 -0
  145. data/spec/reports/SPEC-OpenStudioAmis-version-1.2.xml +13 -0
  146. data/spec/reports/SPEC-OpenStudioAmis-version-1.3.xml +13 -0
  147. data/spec/reports/SPEC-OpenStudioAmis-version-1.4.xml +13 -0
  148. data/spec/reports/SPEC-OpenStudioAmis-version-1.5.xml +13 -0
  149. data/spec/reports/SPEC-OpenStudioAmis-version-1.6.xml +13 -0
  150. data/spec/reports/SPEC-OpenStudioAmis-version-1.7.xml +13 -0
  151. data/spec/reports/SPEC-OpenStudioAmis-version-1.8.xml +13 -0
  152. data/spec/reports/SPEC-OpenStudioAmis-version-1.9.xml +13 -0
  153. data/spec/reports/SPEC-OpenStudioAmis-version-1.xml +13 -0
  154. data/spec/reports/SPEC-OpenStudioAmis-version-2.0.xml +9 -0
  155. data/spec/reports/SPEC-OpenStudioAmis-version-2.1.xml +9 -0
  156. data/spec/reports/SPEC-OpenStudioAmis-version-2.10.xml +9 -0
  157. data/spec/reports/SPEC-OpenStudioAmis-version-2.11.xml +9 -0
  158. data/spec/reports/SPEC-OpenStudioAmis-version-2.12.xml +9 -0
  159. data/spec/reports/SPEC-OpenStudioAmis-version-2.13.xml +9 -0
  160. data/spec/reports/SPEC-OpenStudioAmis-version-2.2.xml +9 -0
  161. data/spec/reports/SPEC-OpenStudioAmis-version-2.3.xml +9 -0
  162. data/spec/reports/SPEC-OpenStudioAmis-version-2.4.xml +9 -0
  163. data/spec/reports/SPEC-OpenStudioAmis-version-2.5.xml +9 -0
  164. data/spec/reports/SPEC-OpenStudioAmis-version-2.6.xml +9 -0
  165. data/spec/reports/SPEC-OpenStudioAmis-version-2.7.xml +9 -0
  166. data/spec/reports/SPEC-OpenStudioAmis-version-2.8.xml +9 -0
  167. data/spec/reports/SPEC-OpenStudioAmis-version-2.9.xml +9 -0
  168. data/spec/reports/SPEC-OpenStudioAmis-version-2.xml +9 -0
  169. data/spec/reports/SPEC-OpenStudioAmis.0.xml +7 -0
  170. data/spec/reports/SPEC-OpenStudioAmis.1.xml +7 -0
  171. data/spec/reports/SPEC-OpenStudioAmis.10.xml +7 -0
  172. data/spec/reports/SPEC-OpenStudioAmis.11.xml +7 -0
  173. data/spec/reports/SPEC-OpenStudioAmis.12.xml +7 -0
  174. data/spec/reports/SPEC-OpenStudioAmis.13.xml +7 -0
  175. data/spec/reports/SPEC-OpenStudioAmis.2.xml +7 -0
  176. data/spec/reports/SPEC-OpenStudioAmis.3.xml +7 -0
  177. data/spec/reports/SPEC-OpenStudioAmis.4.xml +7 -0
  178. data/spec/reports/SPEC-OpenStudioAmis.5.xml +7 -0
  179. data/spec/reports/SPEC-OpenStudioAmis.6.xml +7 -0
  180. data/spec/reports/SPEC-OpenStudioAmis.7.xml +7 -0
  181. data/spec/reports/SPEC-OpenStudioAmis.8.xml +7 -0
  182. data/spec/reports/SPEC-OpenStudioAmis.9.xml +7 -0
  183. data/spec/reports/SPEC-OpenStudioAmis.xml +7 -0
  184. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.0.xml +21 -0
  185. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.1.xml +11 -0
  186. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.10.xml +11 -0
  187. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.11.xml +11 -0
  188. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.2.xml +11 -0
  189. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.3.xml +25 -0
  190. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.4.xml +11 -0
  191. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.5.xml +11 -0
  192. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.6.xml +11 -0
  193. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.7.xml +11 -0
  194. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.8.xml +11 -0
  195. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.9.xml +11 -0
  196. data/spec/reports/SPEC-OpenStudioAwsInstance-processors.xml +25 -0
  197. data/spec/reports/SPEC-OpenStudioAwsInstance.0.xml +7 -0
  198. data/spec/reports/SPEC-OpenStudioAwsInstance.1.xml +7 -0
  199. data/spec/reports/SPEC-OpenStudioAwsInstance.10.xml +7 -0
  200. data/spec/reports/SPEC-OpenStudioAwsInstance.11.xml +7 -0
  201. data/spec/reports/SPEC-OpenStudioAwsInstance.2.xml +7 -0
  202. data/spec/reports/SPEC-OpenStudioAwsInstance.3.xml +7 -0
  203. data/spec/reports/SPEC-OpenStudioAwsInstance.4.xml +7 -0
  204. data/spec/reports/SPEC-OpenStudioAwsInstance.5.xml +7 -0
  205. data/spec/reports/SPEC-OpenStudioAwsInstance.6.xml +7 -0
  206. data/spec/reports/SPEC-OpenStudioAwsInstance.7.xml +7 -0
  207. data/spec/reports/SPEC-OpenStudioAwsInstance.8.xml +7 -0
  208. data/spec/reports/SPEC-OpenStudioAwsInstance.9.xml +7 -0
  209. data/spec/reports/SPEC-OpenStudioAwsInstance.xml +7 -0
  210. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.0.xml +11 -0
  211. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.1.xml +11 -0
  212. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.xml +11 -0
  213. data/spec/reports/SPEC-OpenStudioAwsMethods.0.xml +7 -0
  214. data/spec/reports/SPEC-OpenStudioAwsMethods.1.xml +7 -0
  215. data/spec/reports/SPEC-OpenStudioAwsMethods.xml +7 -0
  216. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.0.xml +9 -0
  217. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.1.xml +9 -0
  218. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.10.xml +9 -0
  219. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.11.xml +9 -0
  220. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.12.xml +9 -0
  221. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.2.xml +9 -0
  222. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.3.xml +9 -0
  223. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.4.xml +9 -0
  224. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.5.xml +9 -0
  225. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.6.xml +9 -0
  226. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.7.xml +9 -0
  227. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.8.xml +9 -0
  228. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.9.xml +9 -0
  229. data/spec/reports/SPEC-OpenStudioAwsWrapper-ami-list.xml +9 -0
  230. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.0.xml +11 -0
  231. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.1.xml +11 -0
  232. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.10.xml +11 -0
  233. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.11.xml +11 -0
  234. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.12.xml +11 -0
  235. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.13.xml +11 -0
  236. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.2.xml +11 -0
  237. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.3.xml +11 -0
  238. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.4.xml +11 -0
  239. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.5.xml +11 -0
  240. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.6.xml +11 -0
  241. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.7.xml +11 -0
  242. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.8.xml +11 -0
  243. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.9.xml +11 -0
  244. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.xml +11 -0
  245. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.0.xml +11 -0
  246. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.1.xml +11 -0
  247. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.10.xml +11 -0
  248. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.11.xml +11 -0
  249. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.12.xml +11 -0
  250. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.13.xml +11 -0
  251. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.2.xml +11 -0
  252. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.3.xml +11 -0
  253. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.4.xml +11 -0
  254. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.5.xml +11 -0
  255. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.6.xml +9 -0
  256. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.7.xml +11 -0
  257. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.8.xml +11 -0
  258. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.9.xml +11 -0
  259. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.xml +11 -0
  260. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.0.xml +9 -0
  261. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.1.xml +9 -0
  262. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.10.xml +9 -0
  263. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.11.xml +9 -0
  264. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.12.xml +9 -0
  265. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.13.xml +9 -0
  266. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.2.xml +9 -0
  267. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.3.xml +9 -0
  268. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.4.xml +9 -0
  269. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.5.xml +9 -0
  270. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.6.xml +9 -0
  271. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.7.xml +9 -0
  272. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.8.xml +9 -0
  273. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.9.xml +9 -0
  274. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.xml +9 -0
  275. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.0.xml +103 -0
  276. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.1.xml +103 -0
  277. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.10.xml +107 -0
  278. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.11.xml +107 -0
  279. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.12.xml +107 -0
  280. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.2.xml +103 -0
  281. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.3.xml +103 -0
  282. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.4.xml +107 -0
  283. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.5.xml +107 -0
  284. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.6.xml +107 -0
  285. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.7.xml +107 -0
  286. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.8.xml +107 -0
  287. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.9.xml +107 -0
  288. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.xml +103 -0
  289. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.0.xml +1111 -0
  290. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.1.xml +1111 -0
  291. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.10.xml +1113 -0
  292. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.11.xml +1113 -0
  293. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.12.xml +1133 -0
  294. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.2.xml +1111 -0
  295. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.3.xml +1111 -0
  296. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.4.xml +1113 -0
  297. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.5.xml +1113 -0
  298. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.6.xml +1113 -0
  299. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.7.xml +1113 -0
  300. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.8.xml +1113 -0
  301. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.9.xml +1113 -0
  302. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.xml +1111 -0
  303. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.0.xml +7 -0
  304. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.1.xml +7 -0
  305. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.10.xml +7 -0
  306. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.11.xml +7 -0
  307. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.12.xml +7 -0
  308. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.13.xml +7 -0
  309. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.2.xml +7 -0
  310. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.3.xml +7 -0
  311. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.4.xml +7 -0
  312. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.5.xml +7 -0
  313. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.6.xml +7 -0
  314. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.7.xml +7 -0
  315. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.8.xml +7 -0
  316. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.9.xml +7 -0
  317. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.xml +7 -0
  318. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.0.xml +9 -0
  319. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.1.xml +9 -0
  320. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.10.xml +9 -0
  321. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.11.xml +9 -0
  322. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.12.xml +9 -0
  323. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.13.xml +9 -0
  324. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.2.xml +9 -0
  325. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.3.xml +9 -0
  326. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.4.xml +9 -0
  327. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.5.xml +9 -0
  328. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.6.xml +9 -0
  329. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.7.xml +9 -0
  330. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.8.xml +9 -0
  331. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.9.xml +9 -0
  332. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.xml +9 -0
  333. data/spec/reports/SPEC-OpenStudioAwsWrapper.0.xml +7 -0
  334. data/spec/reports/SPEC-OpenStudioAwsWrapper.1.xml +7 -0
  335. data/spec/reports/SPEC-OpenStudioAwsWrapper.10.xml +7 -0
  336. data/spec/reports/SPEC-OpenStudioAwsWrapper.11.xml +7 -0
  337. data/spec/reports/SPEC-OpenStudioAwsWrapper.12.xml +7 -0
  338. data/spec/reports/SPEC-OpenStudioAwsWrapper.13.xml +7 -0
  339. data/spec/reports/SPEC-OpenStudioAwsWrapper.2.xml +7 -0
  340. data/spec/reports/SPEC-OpenStudioAwsWrapper.3.xml +7 -0
  341. data/spec/reports/SPEC-OpenStudioAwsWrapper.4.xml +7 -0
  342. data/spec/reports/SPEC-OpenStudioAwsWrapper.5.xml +7 -0
  343. data/spec/reports/SPEC-OpenStudioAwsWrapper.6.xml +7 -0
  344. data/spec/reports/SPEC-OpenStudioAwsWrapper.7.xml +7 -0
  345. data/spec/reports/SPEC-OpenStudioAwsWrapper.8.xml +7 -0
  346. data/spec/reports/SPEC-OpenStudioAwsWrapper.9.xml +7 -0
  347. data/spec/reports/SPEC-OpenStudioAwsWrapper.xml +7 -0
  348. data/spec/resources/upload_me.sh +5 -0
  349. metadata +664 -7
  350. data/lib/openstudio/lib/openstudio_aws_methods.rb +0 -237
  351. data/spec/openstudio-aws/aws_methods_spec.rb +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6440da99b4622bfa5010fcd957a30dd3ff27581
4
- data.tar.gz: 840fbca886816df6a5d6994c90b8799ef25dbb01
3
+ metadata.gz: 3a6943903d87487ab5447ec19e96377828e2521b
4
+ data.tar.gz: 76dbc1bbe397a96f2324d2955dc7810dbf0bd210
5
5
  SHA512:
6
- metadata.gz: 491563e8b5dac430f43bb89c7db36430c65263da3778c4f6334cb06811a13e546a59f49b3dbaa229d6d2e3052d8daf4db601c9caec862ce956f754fb5025d6d5
7
- data.tar.gz: 1410e466c2c92c0f8ada366361aa37ca20ca3fbe297d4c2fe3e8598ee2b9c52cf197f9b40a9e82460095698f7e787fe60d32abc9ef76216075b5c6a13200cb8d
6
+ metadata.gz: 032ae2643fc3a677c1d20f21c25f8aa47e4393894beb0a704d31ddeab50fbb9b0116c0021cd6e40c5a43581c07b8a996d541304f91d55d39ff7fb652734d6a5c
7
+ data.tar.gz: 1945051b63a42f00ab601879e88bd12c5dcd47f5b0571860653014ead0334182a43ab3248c09a8f709e04ce8c9268f8254baddbfd93b03ca6bb8a49acecd1076
data/README.md CHANGED
@@ -17,4 +17,4 @@ Development Notes
17
17
  There is an underlying attempt to merge several OpenStudio based gems into one and have a general
18
18
  OpenStudio namespace for ruby classes.
19
19
 
20
- The AWS SDK gem is custom built and distributed with this gem in order to remove the JSON dependency. If you are running ruby 1.9 or greater, then JSON is installed in teh std lib and should be called out in the gemspec.
20
+ The AWS SDK gem is custom built and distributed with this gem in order to remove the JSON dependency. If you are running ruby 1.9 or greater, then JSON is installed in the std lib and should be called out in the gemspec.
data/Rakefile CHANGED
@@ -1,76 +1,75 @@
1
- require "bundler"
1
+ require 'bundler'
2
2
  Bundler.setup
3
3
 
4
- require "rake"
5
- require "rspec/core/rake_task"
4
+ require 'rake'
5
+ require 'rspec/core/rake_task'
6
6
 
7
- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
8
- require "openstudio/aws/version"
7
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
8
+ require 'openstudio/aws/version'
9
9
 
10
- task :gem => :build
10
+ task gem: :build
11
11
  task :build do
12
- system "gem build openstudio-aws.gemspec"
12
+ system 'gem build openstudio-aws.gemspec'
13
13
  end
14
14
 
15
- desc "build and install gem locally"
16
- task :install => :build do
15
+ desc 'build and install gem locally'
16
+ task install: :build do
17
17
  system "gem install openstudio-aws-#{OpenStudio::Aws::VERSION}.gem --no-ri --no-rdoc"
18
18
  end
19
19
 
20
- desc "build and release the gem using rubygems and git tags"
21
- task :release => :build do
20
+ desc 'build and release the gem using rubygems and git tags'
21
+ task release: :build do
22
22
  system "git tag -a v#{OpenStudio::Aws::VERSION} -m 'Tagging #{OpenStudio::Aws::VERSION}'"
23
- system "git push --tags"
23
+ system 'git push --tags'
24
24
  system "gem push openstudio-aws-#{OpenStudio::Aws::VERSION}.gem"
25
25
  system "rm openstudio-aws-#{OpenStudio::Aws::VERSION}.gem"
26
26
  end
27
27
 
28
- RSpec::Core::RakeTask.new("spec") do |spec|
28
+ RSpec::Core::RakeTask.new('spec') do |spec|
29
29
  spec.rspec_opts = %w(--format progress --format CI::Reporter::RSpec)
30
- spec.pattern = "spec/**/*_spec.rb"
30
+ spec.pattern = 'spec/**/*_spec.rb'
31
31
  end
32
32
 
33
- RSpec::Core::RakeTask.new("spec:api") do |spec|
33
+ RSpec::Core::RakeTask.new('spec:api') do |spec|
34
34
  spec.rspec_opts = %w(--format progress --format CI::Reporter::RSpec)
35
- spec.pattern = "spec/**/*_spec_api.rb"
35
+ spec.pattern = 'spec/**/*_spec_api.rb'
36
36
  end
37
37
 
38
- task :default => :spec
38
+ task default: :spec
39
39
 
40
- desc "import files from other repos"
40
+ desc 'import files from other repos'
41
41
  task :import_files do
42
- puts "Importing data from other repos until this repo is self contained"
42
+ puts 'Importing data from other repos until this repo is self contained'
43
43
  # Copy data from github openstudio source
44
-
44
+
45
45
  # this has been forked at the moment until openstudio team supports the new aws-sdk gem
46
- #os_file = "./lib/openstudio/lib/os-aws.rb"
47
- #system "curl -S -s -L -o #{os_file} https://raw.github.com/NREL/OpenStudio/develop/openstudiocore/ruby/cloud/aws.rb.in"
48
- #if File.exists?(os_file)
46
+ # os_file = "./lib/openstudio/lib/os-aws.rb"
47
+ # system "curl -S -s -L -o #{os_file} https://raw.github.com/NREL/OpenStudio/develop/openstudiocore/ruby/cloud/aws.rb.in"
48
+ # if File.exists?(os_file)
49
49
  # system "ruby -i -pe 'puts \"# NOTE: Do not modify this file as it is copied over. Modify the source file and rerun rake import_files\" if $.==1' #{os_file}"
50
50
  # system "sed -i '' 's/\${CMAKE_VERSION_MAJOR}.\${CMAKE_VERSION_MINOR}.\${CMAKE_VERSION_PATCH}/#{OpenStudio::Aws::OPENSTUDIO_VERSION}/g' #{os_file}"
51
- #end
51
+ # end
52
52
  #
53
- os_file = "./lib/openstudio/lib/mongoid.yml.template"
53
+ os_file = './lib/openstudio/lib/mongoid.yml.template'
54
54
  system "curl -S -s -L -o #{os_file} https://raw.github.com/NREL/OpenStudio/develop/openstudiocore/ruby/cloud/mongoid.yml.template"
55
55
 
56
- os_file = "./lib/openstudio/lib/server_script.sh"
56
+ os_file = './lib/openstudio/lib/server_script.sh'
57
57
  system "curl -S -s -L -o #{os_file} https://raw.github.com/NREL/OpenStudio/develop/openstudiocore/ruby/cloud/server_script.sh"
58
- if File.exists?(os_file)
58
+ if File.exist?(os_file)
59
59
  system "ruby -i -pe 'puts \"# NOTE: Do not modify this file as it is copied over. Modify the source file and rerun rake import_files\" if $.==2' #{os_file}"
60
60
  end
61
61
 
62
- os_file = "./lib/openstudio/lib/worker_script.sh.template"
62
+ os_file = './lib/openstudio/lib/worker_script.sh.template'
63
63
  system "curl -S -s -L -o #{os_file} https://raw.github.com/NREL/OpenStudio/develop/openstudiocore/ruby/cloud/worker_script.sh.template"
64
- if File.exists?(os_file)
64
+ if File.exist?(os_file)
65
65
  system "ruby -i -pe 'puts \"# NOTE: Do not modify this file as it is copied over. Modify the source file and rerun rake import_files\" if $.==2' #{os_file}"
66
66
  end
67
67
  end
68
68
 
69
- desc "uninstall all openstudio-aws gems"
69
+ desc 'uninstall all openstudio-aws gems'
70
70
  task :uninstall do
71
- system "gem uninstall openstudio-aws -a"
71
+ system 'gem uninstall openstudio-aws -a'
72
72
  end
73
73
 
74
- desc "reinstall the gem (uninstall, build, and reinstall"
75
- task :reinstall => [:uninstall, :install]
76
-
74
+ desc 'reinstall the gem (uninstall, build, and reinstall'
75
+ task reinstall: [:uninstall, :install]
@@ -7,6 +7,7 @@ module OpenStudio
7
7
  ]
8
8
 
9
9
  class Aws
10
+ # Deprecate OS_AWS object
10
11
  attr_reader :os_aws
11
12
  attr_reader :default_amis
12
13
 
@@ -26,7 +27,7 @@ module OpenStudio
26
27
  region: 'us-east-1',
27
28
  ssl_verify_peer: false,
28
29
  host: 'developer.nrel.gov',
29
- url: '/downloads/buildings/openstudio/api'
30
+ url: '/downloads/buildings/openstudio/api',
30
31
  }
31
32
  options = defaults.merge(options)
32
33
 
@@ -65,7 +66,8 @@ module OpenStudio
65
66
  # puts "Final options are: #{options.inspect}"
66
67
 
67
68
  @os_aws = OpenStudioAwsWrapper.new(options)
68
- @local_key_file_name = nil
69
+
70
+ @instances_json = nil
69
71
 
70
72
  # this will grab the default version of openstudio ami versions
71
73
  # get the arugments for the AMI lookup
@@ -78,44 +80,92 @@ module OpenStudio
78
80
  @default_amis = OpenStudioAmis.new(options[:ami_lookup_version], ami_options).get_amis
79
81
  end
80
82
 
83
+ # def load_data_from_json(json_filename)
84
+ # @os_aws.load_data_from_json
85
+ #
86
+ #
87
+ # end
88
+
81
89
  # command line call to create a new instance. This should be more tightly integrated with teh os-aws.rb gem
82
- def create_server(instance_data = {}, server_json_filename = 'server_data.json', user_id = 'unknown_user')
83
- defaults = { instance_type: 'm2.xlarge', image_id: @default_amis[:server] }
84
- instance_data = defaults.merge(instance_data)
90
+ def create_server(options = {}, instances_json = 'server_data.json')
91
+ defaults = {
92
+ instance_type: 'm2.xlarge',
93
+ security_group: 'openstudio-worker-sg-v1',
94
+ image_id: @default_amis[:server],
95
+ user_id: 'unknown_user',
96
+
97
+ # optional -- will default later
98
+ ebs_volume_id: nil,
99
+ aws_key_pair_name: nil,
100
+ private_key_file_name: nil, # required if using an existing "aws_key_pair_name"
101
+ }
102
+ options = defaults.merge(options)
103
+
104
+ if options[:aws_key_pair_name]
105
+ fail 'Must pass in the private_key_file_name' unless options[:private_key_file_name]
106
+ fail "Private key was not found: #{options[:private_key_file_name]}" unless File.exist? options[:private_key_file_name]
107
+ end
108
+
109
+ @os_aws.create_or_retrieve_security_group options[:security_group]
110
+ @os_aws.create_or_retrieve_key_pair options[:aws_key_pair_name]
85
111
 
86
- @os_aws.create_or_retrieve_security_group('openstudio-worker-sg-v1')
87
- @os_aws.create_or_retrieve_key_pair
112
+ # If using an already_existing key_pair, then you must pass in the private key file name
113
+ if options[:aws_key_pair_name]
114
+ @os_aws.load_private_key options[:private_key_file_name]
115
+ @os_aws.private_key_file_name = options[:private_key_file_name]
116
+ else
117
+ # Save the private key if you did not pass in an already existing key_pair_name
118
+ @os_aws.save_private_key('ec2_server_key.pem')
119
+ end
88
120
 
89
- @local_key_file_name = 'ec2_server_key.pem'
90
- @os_aws.save_private_key(@local_key_file_name)
91
- @os_aws.launch_server(instance_data[:image_id], instance_data[:instance_type], user_id: user_id)
121
+ server_options = { user_id: options[:user_id] }
122
+ # if instance_data[:ebs_volume_id]
123
+ # server_options[:ebs_volume_id] = instance_data[:ebs_volume_id]
124
+ # end
92
125
 
93
- puts @os_aws.server.to_os_hash.to_json
126
+ @os_aws.launch_server(options[:image_id], options[:instance_type], server_options)
94
127
 
95
- File.open(server_json_filename, 'w') { |f| f << JSON.pretty_generate(@os_aws.server.to_os_hash) }
128
+ @instances_json = instances_json
129
+ File.open(@instances_json, 'w') { |f| f << JSON.pretty_generate(@os_aws.server.to_os_hash) }
96
130
 
97
131
  # Print out some debugging commands (probably work on mac/linux only)
98
132
  puts ''
99
133
  puts 'Server SSH Command:'
100
134
 
101
- puts "ssh -i #{@local_key_file_name} ubuntu@#{@os_aws.server.data[:dns]}"
135
+ puts "ssh -i #{@os_aws.private_key_file_name} ubuntu@#{@os_aws.server.data[:dns]}"
102
136
  end
103
137
 
104
- def create_workers(number_of_instances, instance_data = {}, user_id = 'unknown_user')
105
- defaults = { instance_type: 'm2.4xlarge' }
106
- instance_data = defaults.merge(instance_data)
138
+ def create_workers(number_of_instances, options = {}, _user_id = 'unknown_user')
139
+ defaults = {
140
+ instance_type: 'm2.4xlarge',
141
+ security_group: 'openstudio-worker-sg-v1',
142
+ image_id: @default_amis[:server],
143
+ user_id: 'unknown_user',
107
144
 
108
- if instance_data[:image_id].nil?
109
- if instance_data[:instance_type] =~ /cc2|c3/
110
- instance_data[:image_id] = @default_amis[:cc2worker]
145
+ # optional -- will default later
146
+ ebs_volume_id: nil,
147
+ aws_key_pair_name: nil,
148
+ private_key_file_name: nil, # required if using an existing "aws_key_pair_name"
149
+ }
150
+ options = defaults.merge(options)
151
+
152
+ # Get the right worker AMI ids based on the type of instance
153
+ if options[:image_id].nil?
154
+ if options[:instance_type] =~ /cc2|c3/
155
+ options[:image_id] = @default_amis[:cc2worker]
111
156
  else
112
- instance_data[:image_id] = @default_amis[:worker]
157
+ options[:image_id] = @default_amis[:worker]
113
158
  end
114
159
  end
115
160
 
116
161
  fail "Can't create workers without a server instance running" if @os_aws.server.nil?
117
162
 
118
- @os_aws.launch_workers(instance_data[:image_id], instance_data[:instance_type], number_of_instances, user_id: user_id)
163
+ worker_options = { user_id: options[:user_id] }
164
+ # if options[:ebs_volume_size]
165
+ # worker_options[:ebs_volume_size] = options[:ebs_volume_size]
166
+ # end
167
+
168
+ @os_aws.launch_workers(options[:image_id], options[:instance_type], number_of_instances, worker_options)
119
169
 
120
170
  ## append the information to the server_data hash that already exists
121
171
  # @server_data[:instance_type] = instance_data[:instance_type]
@@ -129,10 +179,15 @@ module OpenStudio
129
179
  # File.open("worker_data.json", "w") { |f| f << JSON.pretty_generate(worker_data) }
130
180
  #
131
181
  ## Print out some debugging commands (probably work on mac/linux only)
182
+ # Add the worker data to the JSON
183
+ h = JSON.parse(File.read(@instances_json))
184
+ h[:workers] = @os_aws.to_os_worker_hash[:workers]
185
+ File.open(@instances_json, 'w') { |f| f << JSON.pretty_generate(h) }
186
+
132
187
  puts ''
133
188
  puts 'Worker SSH Command:'
134
189
  @os_aws.workers.each do |worker|
135
- puts "ssh -i #{@local_key_file_name} ubuntu@#{worker.data[:dns]}"
190
+ puts "ssh -i #{@os_aws.private_key_file_name} ubuntu@#{worker.data[:dns]}"
136
191
  end
137
192
 
138
193
  puts ''
@@ -141,8 +196,77 @@ module OpenStudio
141
196
  @os_aws.configure_server_and_workers
142
197
  end
143
198
 
144
- def kill_instances
145
- # Add this method to kill all the running instances
199
+ # openstudio_instance_type as symbol
200
+ def stop_instances(group_id, openstudio_instance_type)
201
+ instances = @os_aws.describe_running_instances(group_id, openstudio_instance_type.to_sym)
202
+ ids = instances.map { |k, _| k[:instance_id] }
203
+
204
+ resp = []
205
+ resp = @os_aws.stop_instances(ids).to_hash unless ids.empty?
206
+ resp
207
+ end
208
+
209
+ # @params(ids): array of instances
210
+ def terminate_instances(ids)
211
+ puts "Terminating the following instances #{ids}"
212
+ resp = []
213
+ resp = @os_aws.terminate_instances(ids).to_hash unless ids.empty?
214
+ resp
215
+ end
216
+
217
+ # Warning, this appears that it terminates all the instances of the openstudio_instance_type
218
+ def terminate_instances_by_group_id(group_id, openstudio_instance_type)
219
+ instances = @os_aws.describe_running_instances(group_id, openstudio_instance_type.to_sym)
220
+ ids = instances.map { |k, _| k[:instance_id] }
221
+
222
+ puts "Terminating the following instances #{ids}"
223
+ resp = []
224
+ resp = @os_aws.terminate_instances(ids).to_hash unless ids.empty?
225
+ resp
226
+ end
227
+
228
+ def load_instance_info_from_file(filename)
229
+ fail 'Could not find instance description JSON file' unless File.exist? filename
230
+
231
+ h = JSON.parse(File.read(filename), symbolize_names: true)
232
+ @os_aws.find_server(h)
233
+
234
+ # load the worker nodes someday
235
+ end
236
+
237
+ # Send a file to the server or worker nodes
238
+ def upload_file(server_or_workers, local_file, remote_file)
239
+ case server_or_workers
240
+ when :server
241
+ fail 'Server node is nil' unless @os_aws.server
242
+ return @os_aws.server.upload_file(local_file, remote_file)
243
+ when :worker
244
+ fail 'Worker list is empty' if @os_aws.workers.empty?
245
+ return @os_aws.workers.each { |w| w.upload_file(local_file, remote_file) }
246
+ end
247
+ end
248
+
249
+ def shell_command(server_or_workers, command, load_env = true)
250
+ case server_or_workers
251
+ when :server
252
+ fail 'Server node is nil' unless @os_aws.server
253
+ return @os_aws.server.shell_command(command, load_env)
254
+ when :worker
255
+ fail 'Worker list is empty' if @os_aws.workers.empty?
256
+ return @os_aws.workers.each { |w| w.shell_command(command, load_env) }
257
+ end
258
+ end
259
+
260
+ # Download remote files that are on the server or worker. note that the worker at the moment
261
+ # will not work because it would simply overwrite the downloaded filas at this time.
262
+ def download_remote_file(server_or_workers, remote_file, local_file)
263
+ case server_or_workers
264
+ when :server
265
+ fail 'Server node is nil' unless @os_aws.server
266
+ return @os_aws.server.download_file(remote_file, local_file)
267
+ when :worker
268
+ fail 'Worker file download is not available'
269
+ end
146
270
  end
147
271
 
148
272
  private
@@ -7,6 +7,7 @@ module OpenStudio
7
7
  def initialize(yml_config_file = nil)
8
8
  @yml_config_file = yml_config_file
9
9
  @config = nil
10
+
10
11
  if @yml_config_file.nil?
11
12
  @yml_config_file = File.join(File.expand_path('~'), 'aws_config.yml')
12
13
  unless File.exist?(@yml_config_file)
@@ -1,5 +1,5 @@
1
1
  module OpenStudio
2
2
  module Aws
3
- VERSION = '0.1.26'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -98,7 +98,7 @@ class OpenStudioAmis
98
98
  if @options[:openstudio_server_version].to_sym == :default
99
99
  # just grab the most recent server
100
100
  # need to do a sort to get the most recent because we can't promise that they are in order
101
- json[:openstudio].each do |k, v|
101
+ json[:openstudio].each do |_k, _v|
102
102
 
103
103
  end
104
104
  key, value = json[:openstudio_server].first