openstudio-aws 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openstudio/aws/aws.rb +45 -24
  3. data/lib/openstudio/aws/version.rb +1 -1
  4. data/lib/openstudio/lib/ami_list.rb +5 -3
  5. data/lib/openstudio/lib/openstudio_aws_instance.rb +3 -2
  6. data/lib/openstudio/lib/openstudio_aws_methods.rb +25 -11
  7. data/lib/openstudio/lib/openstudio_aws_wrapper.rb +182 -55
  8. data/lib/openstudio-aws.rb +1 -0
  9. data/spec/aws_instances/aws_spec_api.rb +4 -8
  10. data/spec/openstudio-aws/ami_list_spec.rb +7 -12
  11. data/spec/openstudio-aws/aws_spec.rb +64 -0
  12. data/spec/openstudio-aws/aws_wrapper_spec.rb +39 -16
  13. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.2.xml +73 -0
  14. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.3.xml +28 -0
  15. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.4.xml +28 -0
  16. data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.5.xml +32 -0
  17. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.0.xml +16 -0
  18. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.1.xml +18 -0
  19. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.10.xml +21 -0
  20. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.11.xml +18 -0
  21. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.12.xml +29 -0
  22. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.13.xml +11 -0
  23. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.14.xml +11 -0
  24. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.15.xml +11 -0
  25. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.16.xml +11 -0
  26. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.17.xml +11 -0
  27. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.18.xml +11 -0
  28. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.19.xml +23 -0
  29. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.2.xml +19 -0
  30. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.20.xml +23 -0
  31. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.21.xml +13 -0
  32. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.22.xml +13 -0
  33. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.23.xml +13 -0
  34. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.24.xml +13 -0
  35. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.3.xml +17 -0
  36. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.4.xml +16 -0
  37. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.5.xml +16 -0
  38. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.6.xml +17 -0
  39. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.7.xml +21 -0
  40. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.8.xml +21 -0
  41. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.9.xml +21 -0
  42. data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.xml +18 -0
  43. data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.2.xml +18 -0
  44. data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.3.xml +9 -0
  45. data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.4.xml +9 -0
  46. data/spec/reports/SPEC-OpenStudio-Aws-Aws.10.xml +7 -0
  47. data/spec/reports/SPEC-OpenStudio-Aws-Aws.11.xml +7 -0
  48. data/spec/reports/SPEC-OpenStudio-Aws-Aws.12.xml +7 -0
  49. data/spec/reports/SPEC-OpenStudio-Aws-Aws.13.xml +7 -0
  50. data/spec/reports/SPEC-OpenStudio-Aws-Aws.14.xml +7 -0
  51. data/spec/reports/SPEC-OpenStudio-Aws-Aws.15.xml +7 -0
  52. data/spec/reports/SPEC-OpenStudio-Aws-Aws.16.xml +7 -0
  53. data/spec/reports/SPEC-OpenStudio-Aws-Aws.17.xml +7 -0
  54. data/spec/reports/SPEC-OpenStudio-Aws-Aws.18.xml +7 -0
  55. data/spec/reports/SPEC-OpenStudio-Aws-Aws.19.xml +7 -0
  56. data/spec/reports/SPEC-OpenStudio-Aws-Aws.2.xml +7 -0
  57. data/spec/reports/SPEC-OpenStudio-Aws-Aws.20.xml +7 -0
  58. data/spec/reports/SPEC-OpenStudio-Aws-Aws.21.xml +7 -0
  59. data/spec/reports/SPEC-OpenStudio-Aws-Aws.22.xml +7 -0
  60. data/spec/reports/SPEC-OpenStudio-Aws-Aws.23.xml +7 -0
  61. data/spec/reports/SPEC-OpenStudio-Aws-Aws.24.xml +7 -0
  62. data/spec/reports/SPEC-OpenStudio-Aws-Aws.25.xml +7 -0
  63. data/spec/reports/SPEC-OpenStudio-Aws-Aws.26.xml +7 -0
  64. data/spec/reports/SPEC-OpenStudio-Aws-Aws.27.xml +7 -0
  65. data/spec/reports/SPEC-OpenStudio-Aws-Aws.28.xml +7 -0
  66. data/spec/reports/SPEC-OpenStudio-Aws-Aws.29.xml +7 -0
  67. data/spec/reports/SPEC-OpenStudio-Aws-Aws.3.xml +7 -0
  68. data/spec/reports/SPEC-OpenStudio-Aws-Aws.4.xml +7 -0
  69. data/spec/reports/SPEC-OpenStudio-Aws-Aws.5.xml +7 -0
  70. data/spec/reports/SPEC-OpenStudio-Aws-Aws.6.xml +7 -0
  71. data/spec/reports/SPEC-OpenStudio-Aws-Aws.7.xml +7 -0
  72. data/spec/reports/SPEC-OpenStudio-Aws-Aws.8.xml +7 -0
  73. data/spec/reports/SPEC-OpenStudio-Aws-Aws.9.xml +7 -0
  74. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.11.xml +9 -0
  75. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.12.xml +9 -0
  76. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.13.xml +9 -0
  77. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.14.xml +9 -0
  78. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.15.xml +9 -0
  79. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.16.xml +9 -0
  80. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.17.xml +9 -0
  81. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.18.xml +9 -0
  82. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.19.xml +9 -0
  83. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.20.xml +9 -0
  84. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.21.xml +9 -0
  85. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.22.xml +9 -0
  86. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.23.xml +9 -0
  87. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.24.xml +9 -0
  88. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.25.xml +9 -0
  89. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.26.xml +9 -0
  90. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.27.xml +9 -0
  91. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.28.xml +9 -0
  92. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.29.xml +9 -0
  93. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.30.xml +9 -0
  94. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.31.xml +9 -0
  95. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.32.xml +9 -0
  96. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.33.xml +9 -0
  97. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.34.xml +9 -0
  98. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.35.xml +9 -0
  99. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.36.xml +9 -0
  100. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.37.xml +9 -0
  101. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.38.xml +9 -0
  102. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.39.xml +9 -0
  103. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.40.xml +9 -0
  104. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.41.xml +9 -0
  105. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.42.xml +9 -0
  106. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.43.xml +9 -0
  107. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.44.xml +9 -0
  108. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.45.xml +9 -0
  109. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.46.xml +9 -0
  110. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.47.xml +9 -0
  111. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.48.xml +9 -0
  112. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.49.xml +9 -0
  113. data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.50.xml +9 -0
  114. data/spec/reports/SPEC-OpenStudio-Aws-Config.11.xml +7 -0
  115. data/spec/reports/SPEC-OpenStudio-Aws-Config.12.xml +7 -0
  116. data/spec/reports/SPEC-OpenStudio-Aws-Config.13.xml +7 -0
  117. data/spec/reports/SPEC-OpenStudio-Aws-Config.14.xml +7 -0
  118. data/spec/reports/SPEC-OpenStudio-Aws-Config.15.xml +7 -0
  119. data/spec/reports/SPEC-OpenStudio-Aws-Config.16.xml +7 -0
  120. data/spec/reports/SPEC-OpenStudio-Aws-Config.17.xml +7 -0
  121. data/spec/reports/SPEC-OpenStudio-Aws-Config.18.xml +7 -0
  122. data/spec/reports/SPEC-OpenStudio-Aws-Config.19.xml +7 -0
  123. data/spec/reports/SPEC-OpenStudio-Aws-Config.20.xml +7 -0
  124. data/spec/reports/SPEC-OpenStudio-Aws-Config.21.xml +7 -0
  125. data/spec/reports/SPEC-OpenStudio-Aws-Config.22.xml +7 -0
  126. data/spec/reports/SPEC-OpenStudio-Aws-Config.23.xml +7 -0
  127. data/spec/reports/SPEC-OpenStudio-Aws-Config.24.xml +7 -0
  128. data/spec/reports/SPEC-OpenStudio-Aws-Config.25.xml +7 -0
  129. data/spec/reports/SPEC-OpenStudio-Aws-Config.26.xml +7 -0
  130. data/spec/reports/SPEC-OpenStudio-Aws-Config.27.xml +7 -0
  131. data/spec/reports/SPEC-OpenStudio-Aws-Config.28.xml +7 -0
  132. data/spec/reports/SPEC-OpenStudio-Aws-Config.29.xml +7 -0
  133. data/spec/reports/SPEC-OpenStudio-Aws-Config.30.xml +7 -0
  134. data/spec/reports/SPEC-OpenStudio-Aws-Config.31.xml +7 -0
  135. data/spec/reports/SPEC-OpenStudio-Aws-Config.32.xml +7 -0
  136. data/spec/reports/SPEC-OpenStudio-Aws-Config.33.xml +7 -0
  137. data/spec/reports/SPEC-OpenStudio-Aws-Config.34.xml +7 -0
  138. data/spec/reports/SPEC-OpenStudio-Aws-Config.35.xml +7 -0
  139. data/spec/reports/SPEC-OpenStudio-Aws-Config.36.xml +7 -0
  140. data/spec/reports/SPEC-OpenStudio-Aws-Config.37.xml +7 -0
  141. data/spec/reports/SPEC-OpenStudio-Aws-Config.38.xml +7 -0
  142. data/spec/reports/SPEC-OpenStudio-Aws-Config.39.xml +7 -0
  143. data/spec/reports/SPEC-OpenStudio-Aws-Config.40.xml +7 -0
  144. data/spec/reports/SPEC-OpenStudio-Aws-Config.41.xml +7 -0
  145. data/spec/reports/SPEC-OpenStudio-Aws-Config.42.xml +7 -0
  146. data/spec/reports/SPEC-OpenStudio-Aws-Config.43.xml +7 -0
  147. data/spec/reports/SPEC-OpenStudio-Aws-Config.44.xml +7 -0
  148. data/spec/reports/SPEC-OpenStudio-Aws-Config.45.xml +7 -0
  149. data/spec/reports/SPEC-OpenStudio-Aws-Config.46.xml +7 -0
  150. data/spec/reports/SPEC-OpenStudio-Aws-Config.47.xml +7 -0
  151. data/spec/reports/SPEC-OpenStudio-Aws-Config.48.xml +7 -0
  152. data/spec/reports/SPEC-OpenStudio-Aws-Config.49.xml +7 -0
  153. data/spec/reports/SPEC-OpenStudio-Aws-Config.50.xml +7 -0
  154. data/spec/reports/SPEC-OpenStudioAmis-version-1.11.xml +13 -0
  155. data/spec/reports/SPEC-OpenStudioAmis-version-1.12.xml +13 -0
  156. data/spec/reports/SPEC-OpenStudioAmis-version-1.13.xml +39 -0
  157. data/spec/reports/SPEC-OpenStudioAmis-version-1.14.xml +39 -0
  158. data/spec/reports/SPEC-OpenStudioAmis-version-1.15.xml +39 -0
  159. data/spec/reports/SPEC-OpenStudioAmis-version-1.16.xml +39 -0
  160. data/spec/reports/SPEC-OpenStudioAmis-version-1.17.xml +39 -0
  161. data/spec/reports/SPEC-OpenStudioAmis-version-1.18.xml +39 -0
  162. data/spec/reports/SPEC-OpenStudioAmis-version-1.19.xml +39 -0
  163. data/spec/reports/SPEC-OpenStudioAmis-version-1.20.xml +39 -0
  164. data/spec/reports/SPEC-OpenStudioAmis-version-1.21.xml +39 -0
  165. data/spec/reports/SPEC-OpenStudioAmis-version-1.22.xml +39 -0
  166. data/spec/reports/SPEC-OpenStudioAmis-version-1.23.xml +39 -0
  167. data/spec/reports/SPEC-OpenStudioAmis-version-1.24.xml +13 -0
  168. data/spec/reports/SPEC-OpenStudioAmis-version-1.25.xml +13 -0
  169. data/spec/reports/SPEC-OpenStudioAmis-version-1.26.xml +13 -0
  170. data/spec/reports/SPEC-OpenStudioAmis-version-1.27.xml +13 -0
  171. data/spec/reports/SPEC-OpenStudioAmis-version-1.28.xml +13 -0
  172. data/spec/reports/SPEC-OpenStudioAmis-version-1.29.xml +13 -0
  173. data/spec/reports/SPEC-OpenStudioAmis-version-1.30.xml +13 -0
  174. data/spec/reports/SPEC-OpenStudioAmis-version-1.31.xml +13 -0
  175. data/spec/reports/SPEC-OpenStudioAmis-version-1.32.xml +13 -0
  176. data/spec/reports/SPEC-OpenStudioAmis-version-1.33.xml +13 -0
  177. data/spec/reports/SPEC-OpenStudioAmis-version-1.34.xml +13 -0
  178. data/spec/reports/SPEC-OpenStudioAmis-version-1.35.xml +13 -0
  179. data/spec/reports/SPEC-OpenStudioAmis-version-1.36.xml +13 -0
  180. data/spec/reports/SPEC-OpenStudioAmis-version-1.37.xml +13 -0
  181. data/spec/reports/SPEC-OpenStudioAmis-version-1.38.xml +13 -0
  182. data/spec/reports/SPEC-OpenStudioAmis-version-1.39.xml +13 -0
  183. data/spec/reports/SPEC-OpenStudioAmis-version-1.40.xml +13 -0
  184. data/spec/reports/SPEC-OpenStudioAmis-version-1.41.xml +13 -0
  185. data/spec/reports/SPEC-OpenStudioAmis-version-1.42.xml +13 -0
  186. data/spec/reports/SPEC-OpenStudioAmis-version-1.43.xml +13 -0
  187. data/spec/reports/SPEC-OpenStudioAmis-version-1.44.xml +13 -0
  188. data/spec/reports/SPEC-OpenStudioAmis-version-1.45.xml +13 -0
  189. data/spec/reports/SPEC-OpenStudioAmis-version-1.46.xml +13 -0
  190. data/spec/reports/SPEC-OpenStudioAmis-version-1.47.xml +13 -0
  191. data/spec/reports/SPEC-OpenStudioAmis-version-1.48.xml +13 -0
  192. data/spec/reports/SPEC-OpenStudioAmis-version-1.49.xml +13 -0
  193. data/spec/reports/SPEC-OpenStudioAmis-version-1.50.xml +13 -0
  194. data/spec/reports/SPEC-OpenStudioAmis-version-1.51.xml +13 -0
  195. data/spec/reports/SPEC-OpenStudioAmis-version-2.10.xml +9 -0
  196. data/spec/reports/SPEC-OpenStudioAmis-version-2.11.xml +9 -0
  197. data/spec/reports/SPEC-OpenStudioAmis-version-2.12.xml +9 -0
  198. data/spec/reports/SPEC-OpenStudioAmis-version-2.13.xml +9 -0
  199. data/spec/reports/SPEC-OpenStudioAmis-version-2.14.xml +9 -0
  200. data/spec/reports/SPEC-OpenStudioAmis-version-2.15.xml +9 -0
  201. data/spec/reports/SPEC-OpenStudioAmis-version-2.16.xml +9 -0
  202. data/spec/reports/SPEC-OpenStudioAmis-version-2.17.xml +9 -0
  203. data/spec/reports/SPEC-OpenStudioAmis-version-2.18.xml +9 -0
  204. data/spec/reports/SPEC-OpenStudioAmis-version-2.19.xml +9 -0
  205. data/spec/reports/SPEC-OpenStudioAmis-version-2.20.xml +9 -0
  206. data/spec/reports/SPEC-OpenStudioAmis-version-2.21.xml +9 -0
  207. data/spec/reports/SPEC-OpenStudioAmis-version-2.22.xml +9 -0
  208. data/spec/reports/SPEC-OpenStudioAmis-version-2.23.xml +9 -0
  209. data/spec/reports/SPEC-OpenStudioAmis-version-2.24.xml +9 -0
  210. data/spec/reports/SPEC-OpenStudioAmis-version-2.25.xml +9 -0
  211. data/spec/reports/SPEC-OpenStudioAmis-version-2.26.xml +9 -0
  212. data/spec/reports/SPEC-OpenStudioAmis-version-2.27.xml +9 -0
  213. data/spec/reports/SPEC-OpenStudioAmis-version-2.28.xml +9 -0
  214. data/spec/reports/SPEC-OpenStudioAmis-version-2.29.xml +9 -0
  215. data/spec/reports/SPEC-OpenStudioAmis-version-2.30.xml +9 -0
  216. data/spec/reports/SPEC-OpenStudioAmis-version-2.31.xml +9 -0
  217. data/spec/reports/SPEC-OpenStudioAmis-version-2.32.xml +9 -0
  218. data/spec/reports/SPEC-OpenStudioAmis-version-2.33.xml +9 -0
  219. data/spec/reports/SPEC-OpenStudioAmis-version-2.34.xml +9 -0
  220. data/spec/reports/SPEC-OpenStudioAmis-version-2.35.xml +9 -0
  221. data/spec/reports/SPEC-OpenStudioAmis-version-2.36.xml +9 -0
  222. data/spec/reports/SPEC-OpenStudioAmis-version-2.37.xml +9 -0
  223. data/spec/reports/SPEC-OpenStudioAmis-version-2.38.xml +9 -0
  224. data/spec/reports/SPEC-OpenStudioAmis-version-2.39.xml +9 -0
  225. data/spec/reports/SPEC-OpenStudioAmis-version-2.40.xml +9 -0
  226. data/spec/reports/SPEC-OpenStudioAmis-version-2.41.xml +9 -0
  227. data/spec/reports/SPEC-OpenStudioAmis-version-2.42.xml +9 -0
  228. data/spec/reports/SPEC-OpenStudioAmis-version-2.43.xml +9 -0
  229. data/spec/reports/SPEC-OpenStudioAmis-version-2.44.xml +9 -0
  230. data/spec/reports/SPEC-OpenStudioAmis-version-2.45.xml +9 -0
  231. data/spec/reports/SPEC-OpenStudioAmis-version-2.46.xml +9 -0
  232. data/spec/reports/SPEC-OpenStudioAmis-version-2.47.xml +9 -0
  233. data/spec/reports/SPEC-OpenStudioAmis-version-2.48.xml +9 -0
  234. data/spec/reports/SPEC-OpenStudioAmis-version-2.49.xml +9 -0
  235. data/spec/reports/SPEC-OpenStudioAmis-version-2.9.xml +9 -0
  236. data/spec/reports/SPEC-OpenStudioAmis.11.xml +7 -0
  237. data/spec/reports/SPEC-OpenStudioAmis.12.xml +7 -0
  238. data/spec/reports/SPEC-OpenStudioAmis.13.xml +7 -0
  239. data/spec/reports/SPEC-OpenStudioAmis.14.xml +7 -0
  240. data/spec/reports/SPEC-OpenStudioAmis.15.xml +7 -0
  241. data/spec/reports/SPEC-OpenStudioAmis.16.xml +7 -0
  242. data/spec/reports/SPEC-OpenStudioAmis.17.xml +7 -0
  243. data/spec/reports/SPEC-OpenStudioAmis.18.xml +7 -0
  244. data/spec/reports/SPEC-OpenStudioAmis.19.xml +7 -0
  245. data/spec/reports/SPEC-OpenStudioAmis.20.xml +7 -0
  246. data/spec/reports/SPEC-OpenStudioAmis.21.xml +7 -0
  247. data/spec/reports/SPEC-OpenStudioAmis.22.xml +7 -0
  248. data/spec/reports/SPEC-OpenStudioAmis.23.xml +7 -0
  249. data/spec/reports/SPEC-OpenStudioAmis.24.xml +7 -0
  250. data/spec/reports/SPEC-OpenStudioAmis.25.xml +7 -0
  251. data/spec/reports/SPEC-OpenStudioAmis.26.xml +7 -0
  252. data/spec/reports/SPEC-OpenStudioAmis.27.xml +7 -0
  253. data/spec/reports/SPEC-OpenStudioAmis.28.xml +7 -0
  254. data/spec/reports/SPEC-OpenStudioAmis.29.xml +7 -0
  255. data/spec/reports/SPEC-OpenStudioAmis.30.xml +7 -0
  256. data/spec/reports/SPEC-OpenStudioAmis.31.xml +7 -0
  257. data/spec/reports/SPEC-OpenStudioAmis.32.xml +7 -0
  258. data/spec/reports/SPEC-OpenStudioAmis.33.xml +7 -0
  259. data/spec/reports/SPEC-OpenStudioAmis.34.xml +7 -0
  260. data/spec/reports/SPEC-OpenStudioAmis.35.xml +7 -0
  261. data/spec/reports/SPEC-OpenStudioAmis.36.xml +7 -0
  262. data/spec/reports/SPEC-OpenStudioAmis.37.xml +7 -0
  263. data/spec/reports/SPEC-OpenStudioAmis.38.xml +7 -0
  264. data/spec/reports/SPEC-OpenStudioAmis.39.xml +7 -0
  265. data/spec/reports/SPEC-OpenStudioAmis.40.xml +7 -0
  266. data/spec/reports/SPEC-OpenStudioAmis.41.xml +7 -0
  267. data/spec/reports/SPEC-OpenStudioAmis.42.xml +7 -0
  268. data/spec/reports/SPEC-OpenStudioAmis.43.xml +7 -0
  269. data/spec/reports/SPEC-OpenStudioAmis.44.xml +7 -0
  270. data/spec/reports/SPEC-OpenStudioAmis.45.xml +7 -0
  271. data/spec/reports/SPEC-OpenStudioAmis.46.xml +7 -0
  272. data/spec/reports/SPEC-OpenStudioAmis.47.xml +7 -0
  273. data/spec/reports/SPEC-OpenStudioAmis.48.xml +7 -0
  274. data/spec/reports/SPEC-OpenStudioAmis.49.xml +7 -0
  275. data/spec/reports/SPEC-OpenStudioAmis.50.xml +7 -0
  276. data/spec/reports/SPEC-OpenStudioAmis.51.xml +7 -0
  277. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.11.xml +11 -0
  278. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.12.xml +11 -0
  279. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.13.xml +11 -0
  280. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.14.xml +11 -0
  281. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.15.xml +11 -0
  282. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.16.xml +11 -0
  283. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.17.xml +11 -0
  284. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.18.xml +11 -0
  285. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.19.xml +11 -0
  286. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.20.xml +11 -0
  287. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.21.xml +11 -0
  288. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.22.xml +11 -0
  289. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.23.xml +11 -0
  290. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.24.xml +11 -0
  291. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.25.xml +11 -0
  292. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.26.xml +11 -0
  293. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.27.xml +11 -0
  294. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.28.xml +11 -0
  295. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.29.xml +11 -0
  296. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.30.xml +11 -0
  297. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.31.xml +11 -0
  298. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.32.xml +11 -0
  299. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.33.xml +11 -0
  300. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.34.xml +11 -0
  301. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.35.xml +11 -0
  302. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.36.xml +11 -0
  303. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.37.xml +11 -0
  304. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.38.xml +11 -0
  305. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.39.xml +11 -0
  306. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.40.xml +11 -0
  307. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.41.xml +11 -0
  308. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.42.xml +11 -0
  309. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.43.xml +11 -0
  310. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.44.xml +11 -0
  311. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.45.xml +11 -0
  312. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.46.xml +11 -0
  313. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.47.xml +11 -0
  314. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.48.xml +11 -0
  315. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.49.xml +11 -0
  316. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.50.xml +11 -0
  317. data/spec/reports/SPEC-OpenStudioAwsMethods-processors.51.xml +11 -0
  318. data/spec/reports/SPEC-OpenStudioAwsMethods.11.xml +7 -0
  319. data/spec/reports/SPEC-OpenStudioAwsMethods.12.xml +7 -0
  320. data/spec/reports/SPEC-OpenStudioAwsMethods.13.xml +7 -0
  321. data/spec/reports/SPEC-OpenStudioAwsMethods.14.xml +7 -0
  322. data/spec/reports/SPEC-OpenStudioAwsMethods.15.xml +7 -0
  323. data/spec/reports/SPEC-OpenStudioAwsMethods.16.xml +7 -0
  324. data/spec/reports/SPEC-OpenStudioAwsMethods.17.xml +7 -0
  325. data/spec/reports/SPEC-OpenStudioAwsMethods.18.xml +7 -0
  326. data/spec/reports/SPEC-OpenStudioAwsMethods.19.xml +7 -0
  327. data/spec/reports/SPEC-OpenStudioAwsMethods.20.xml +7 -0
  328. data/spec/reports/SPEC-OpenStudioAwsMethods.21.xml +7 -0
  329. data/spec/reports/SPEC-OpenStudioAwsMethods.22.xml +7 -0
  330. data/spec/reports/SPEC-OpenStudioAwsMethods.23.xml +7 -0
  331. data/spec/reports/SPEC-OpenStudioAwsMethods.24.xml +7 -0
  332. data/spec/reports/SPEC-OpenStudioAwsMethods.25.xml +7 -0
  333. data/spec/reports/SPEC-OpenStudioAwsMethods.26.xml +7 -0
  334. data/spec/reports/SPEC-OpenStudioAwsMethods.27.xml +7 -0
  335. data/spec/reports/SPEC-OpenStudioAwsMethods.28.xml +7 -0
  336. data/spec/reports/SPEC-OpenStudioAwsMethods.29.xml +7 -0
  337. data/spec/reports/SPEC-OpenStudioAwsMethods.30.xml +7 -0
  338. data/spec/reports/SPEC-OpenStudioAwsMethods.31.xml +7 -0
  339. data/spec/reports/SPEC-OpenStudioAwsMethods.32.xml +7 -0
  340. data/spec/reports/SPEC-OpenStudioAwsMethods.33.xml +7 -0
  341. data/spec/reports/SPEC-OpenStudioAwsMethods.34.xml +7 -0
  342. data/spec/reports/SPEC-OpenStudioAwsMethods.35.xml +7 -0
  343. data/spec/reports/SPEC-OpenStudioAwsMethods.36.xml +7 -0
  344. data/spec/reports/SPEC-OpenStudioAwsMethods.37.xml +7 -0
  345. data/spec/reports/SPEC-OpenStudioAwsMethods.38.xml +7 -0
  346. data/spec/reports/SPEC-OpenStudioAwsMethods.39.xml +7 -0
  347. data/spec/reports/SPEC-OpenStudioAwsMethods.40.xml +7 -0
  348. data/spec/reports/SPEC-OpenStudioAwsMethods.41.xml +7 -0
  349. data/spec/reports/SPEC-OpenStudioAwsMethods.42.xml +7 -0
  350. data/spec/reports/SPEC-OpenStudioAwsMethods.43.xml +7 -0
  351. data/spec/reports/SPEC-OpenStudioAwsMethods.44.xml +7 -0
  352. data/spec/reports/SPEC-OpenStudioAwsMethods.45.xml +7 -0
  353. data/spec/reports/SPEC-OpenStudioAwsMethods.46.xml +7 -0
  354. data/spec/reports/SPEC-OpenStudioAwsMethods.47.xml +7 -0
  355. data/spec/reports/SPEC-OpenStudioAwsMethods.48.xml +7 -0
  356. data/spec/reports/SPEC-OpenStudioAwsMethods.49.xml +7 -0
  357. data/spec/reports/SPEC-OpenStudioAwsMethods.50.xml +7 -0
  358. data/spec/reports/SPEC-OpenStudioAwsMethods.51.xml +7 -0
  359. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.11.xml +11 -0
  360. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.12.xml +11 -0
  361. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.13.xml +23 -0
  362. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.14.xml +23 -0
  363. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.15.xml +23 -0
  364. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.16.xml +23 -0
  365. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.17.xml +23 -0
  366. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.18.xml +23 -0
  367. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.19.xml +23 -0
  368. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.20.xml +23 -0
  369. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.21.xml +23 -0
  370. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.22.xml +23 -0
  371. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.23.xml +23 -0
  372. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.24.xml +11 -0
  373. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.25.xml +11 -0
  374. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.26.xml +11 -0
  375. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.27.xml +11 -0
  376. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.28.xml +11 -0
  377. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.29.xml +11 -0
  378. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.30.xml +11 -0
  379. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.31.xml +11 -0
  380. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.32.xml +11 -0
  381. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.33.xml +11 -0
  382. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.34.xml +11 -0
  383. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.35.xml +11 -0
  384. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.36.xml +25 -0
  385. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.37.xml +25 -0
  386. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.38.xml +25 -0
  387. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.39.xml +25 -0
  388. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.40.xml +11 -0
  389. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.41.xml +25 -0
  390. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.42.xml +25 -0
  391. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.43.xml +25 -0
  392. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.44.xml +21 -0
  393. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.45.xml +21 -0
  394. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.46.xml +11 -0
  395. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.47.xml +11 -0
  396. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.48.xml +11 -0
  397. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.49.xml +11 -0
  398. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.50.xml +11 -0
  399. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.10.xml +26 -0
  400. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.11.xml +26 -0
  401. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.12.xml +26 -0
  402. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.13.xml +26 -0
  403. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.14.xml +26 -0
  404. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.15.xml +26 -0
  405. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.16.xml +11 -0
  406. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.17.xml +11 -0
  407. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.18.xml +11 -0
  408. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.19.xml +11 -0
  409. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.20.xml +11 -0
  410. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.21.xml +11 -0
  411. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.22.xml +11 -0
  412. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.23.xml +11 -0
  413. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.24.xml +11 -0
  414. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.25.xml +11 -0
  415. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.26.xml +11 -0
  416. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.27.xml +11 -0
  417. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.28.xml +25 -0
  418. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.29.xml +25 -0
  419. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.3.xml +11 -0
  420. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.30.xml +25 -0
  421. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.31.xml +25 -0
  422. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.32.xml +11 -0
  423. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.33.xml +25 -0
  424. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.34.xml +25 -0
  425. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.35.xml +25 -0
  426. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.36.xml +21 -0
  427. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.37.xml +21 -0
  428. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.38.xml +11 -0
  429. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.39.xml +11 -0
  430. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.4.xml +11 -0
  431. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.40.xml +11 -0
  432. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.41.xml +11 -0
  433. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.42.xml +11 -0
  434. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.5.xml +26 -0
  435. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.6.xml +26 -0
  436. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.7.xml +26 -0
  437. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.8.xml +26 -0
  438. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.9.xml +26 -0
  439. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.11.xml +9 -0
  440. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.12.xml +9 -0
  441. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.13.xml +9 -0
  442. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.14.xml +9 -0
  443. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.15.xml +9 -0
  444. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.16.xml +9 -0
  445. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.17.xml +9 -0
  446. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.18.xml +9 -0
  447. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.19.xml +9 -0
  448. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.20.xml +9 -0
  449. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.21.xml +9 -0
  450. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.22.xml +9 -0
  451. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.23.xml +9 -0
  452. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.24.xml +9 -0
  453. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.25.xml +9 -0
  454. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.26.xml +9 -0
  455. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.27.xml +9 -0
  456. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.28.xml +9 -0
  457. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.29.xml +9 -0
  458. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.30.xml +9 -0
  459. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.31.xml +9 -0
  460. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.32.xml +9 -0
  461. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.33.xml +9 -0
  462. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.34.xml +9 -0
  463. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.35.xml +9 -0
  464. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.36.xml +16 -0
  465. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.37.xml +16 -0
  466. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.38.xml +16 -0
  467. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.39.xml +16 -0
  468. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.40.xml +9 -0
  469. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.41.xml +16 -0
  470. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.42.xml +16 -0
  471. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.43.xml +16 -0
  472. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.44.xml +14 -0
  473. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.45.xml +9 -0
  474. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.46.xml +9 -0
  475. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.47.xml +9 -0
  476. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.48.xml +9 -0
  477. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.49.xml +9 -0
  478. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.50.xml +9 -0
  479. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.0.xml +9 -0
  480. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.xml +9 -0
  481. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.0.xml +9 -0
  482. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.xml +9 -0
  483. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.11.xml +7 -0
  484. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.12.xml +7 -0
  485. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.13.xml +7 -0
  486. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.14.xml +7 -0
  487. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.15.xml +7 -0
  488. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.16.xml +7 -0
  489. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.17.xml +7 -0
  490. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.18.xml +7 -0
  491. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.19.xml +7 -0
  492. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.20.xml +7 -0
  493. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.21.xml +7 -0
  494. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.22.xml +7 -0
  495. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.23.xml +7 -0
  496. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.24.xml +7 -0
  497. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.25.xml +7 -0
  498. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.26.xml +7 -0
  499. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.27.xml +7 -0
  500. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.28.xml +7 -0
  501. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.29.xml +7 -0
  502. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.30.xml +7 -0
  503. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.31.xml +7 -0
  504. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.32.xml +7 -0
  505. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.33.xml +7 -0
  506. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.34.xml +7 -0
  507. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.35.xml +7 -0
  508. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.36.xml +7 -0
  509. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.37.xml +7 -0
  510. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.38.xml +7 -0
  511. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.39.xml +7 -0
  512. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.40.xml +7 -0
  513. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.41.xml +7 -0
  514. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.42.xml +7 -0
  515. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.43.xml +7 -0
  516. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.44.xml +7 -0
  517. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.45.xml +7 -0
  518. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.46.xml +7 -0
  519. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.47.xml +7 -0
  520. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.48.xml +7 -0
  521. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.49.xml +7 -0
  522. data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.50.xml +7 -0
  523. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.0.xml +11 -0
  524. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.1.xml +25 -0
  525. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.2.xml +39 -0
  526. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.3.xml +25 -0
  527. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.4.xml +25 -0
  528. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.5.xml +25 -0
  529. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.6.xml +25 -0
  530. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.7.xml +25 -0
  531. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.8.xml +25 -0
  532. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.9.xml +25 -0
  533. data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.xml +9 -0
  534. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.11.xml +9 -0
  535. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.12.xml +9 -0
  536. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.13.xml +9 -0
  537. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.14.xml +9 -0
  538. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.15.xml +9 -0
  539. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.16.xml +9 -0
  540. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.17.xml +9 -0
  541. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.18.xml +9 -0
  542. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.19.xml +9 -0
  543. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.20.xml +9 -0
  544. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.21.xml +9 -0
  545. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.22.xml +9 -0
  546. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.23.xml +9 -0
  547. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.24.xml +9 -0
  548. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.25.xml +9 -0
  549. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.26.xml +9 -0
  550. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.27.xml +9 -0
  551. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.28.xml +9 -0
  552. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.29.xml +9 -0
  553. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.30.xml +9 -0
  554. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.31.xml +9 -0
  555. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.32.xml +9 -0
  556. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.33.xml +9 -0
  557. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.34.xml +9 -0
  558. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.35.xml +9 -0
  559. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.36.xml +9 -0
  560. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.37.xml +16 -0
  561. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.38.xml +16 -0
  562. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.39.xml +16 -0
  563. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.40.xml +16 -0
  564. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.41.xml +9 -0
  565. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.42.xml +16 -0
  566. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.43.xml +9 -0
  567. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.44.xml +9 -0
  568. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.45.xml +9 -0
  569. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.46.xml +9 -0
  570. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.47.xml +9 -0
  571. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.48.xml +9 -0
  572. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.49.xml +9 -0
  573. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.50.xml +9 -0
  574. data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.51.xml +9 -0
  575. data/spec/reports/SPEC-OpenStudioAwsWrapper.11.xml +7 -0
  576. data/spec/reports/SPEC-OpenStudioAwsWrapper.12.xml +7 -0
  577. data/spec/reports/SPEC-OpenStudioAwsWrapper.13.xml +7 -0
  578. data/spec/reports/SPEC-OpenStudioAwsWrapper.14.xml +7 -0
  579. data/spec/reports/SPEC-OpenStudioAwsWrapper.15.xml +7 -0
  580. data/spec/reports/SPEC-OpenStudioAwsWrapper.16.xml +7 -0
  581. data/spec/reports/SPEC-OpenStudioAwsWrapper.17.xml +7 -0
  582. data/spec/reports/SPEC-OpenStudioAwsWrapper.18.xml +7 -0
  583. data/spec/reports/SPEC-OpenStudioAwsWrapper.19.xml +7 -0
  584. data/spec/reports/SPEC-OpenStudioAwsWrapper.20.xml +7 -0
  585. data/spec/reports/SPEC-OpenStudioAwsWrapper.21.xml +7 -0
  586. data/spec/reports/SPEC-OpenStudioAwsWrapper.22.xml +7 -0
  587. data/spec/reports/SPEC-OpenStudioAwsWrapper.23.xml +7 -0
  588. data/spec/reports/SPEC-OpenStudioAwsWrapper.24.xml +7 -0
  589. data/spec/reports/SPEC-OpenStudioAwsWrapper.25.xml +7 -0
  590. data/spec/reports/SPEC-OpenStudioAwsWrapper.26.xml +7 -0
  591. data/spec/reports/SPEC-OpenStudioAwsWrapper.27.xml +7 -0
  592. data/spec/reports/SPEC-OpenStudioAwsWrapper.28.xml +7 -0
  593. data/spec/reports/SPEC-OpenStudioAwsWrapper.29.xml +7 -0
  594. data/spec/reports/SPEC-OpenStudioAwsWrapper.30.xml +7 -0
  595. data/spec/reports/SPEC-OpenStudioAwsWrapper.31.xml +7 -0
  596. data/spec/reports/SPEC-OpenStudioAwsWrapper.32.xml +7 -0
  597. data/spec/reports/SPEC-OpenStudioAwsWrapper.33.xml +7 -0
  598. data/spec/reports/SPEC-OpenStudioAwsWrapper.34.xml +7 -0
  599. data/spec/reports/SPEC-OpenStudioAwsWrapper.35.xml +7 -0
  600. data/spec/reports/SPEC-OpenStudioAwsWrapper.36.xml +7 -0
  601. data/spec/reports/SPEC-OpenStudioAwsWrapper.37.xml +7 -0
  602. data/spec/reports/SPEC-OpenStudioAwsWrapper.38.xml +7 -0
  603. data/spec/reports/SPEC-OpenStudioAwsWrapper.39.xml +7 -0
  604. data/spec/reports/SPEC-OpenStudioAwsWrapper.40.xml +7 -0
  605. data/spec/reports/SPEC-OpenStudioAwsWrapper.41.xml +7 -0
  606. data/spec/reports/SPEC-OpenStudioAwsWrapper.42.xml +7 -0
  607. data/spec/reports/SPEC-OpenStudioAwsWrapper.43.xml +7 -0
  608. data/spec/reports/SPEC-OpenStudioAwsWrapper.44.xml +7 -0
  609. data/spec/reports/SPEC-OpenStudioAwsWrapper.45.xml +7 -0
  610. data/spec/reports/SPEC-OpenStudioAwsWrapper.46.xml +7 -0
  611. data/spec/reports/SPEC-OpenStudioAwsWrapper.47.xml +7 -0
  612. data/spec/reports/SPEC-OpenStudioAwsWrapper.48.xml +7 -0
  613. data/spec/reports/SPEC-OpenStudioAwsWrapper.49.xml +7 -0
  614. data/spec/reports/SPEC-OpenStudioAwsWrapper.50.xml +7 -0
  615. data/spec/reports/SPEC-OpenStudioAwsWrapper.51.xml +7 -0
  616. metadata +1224 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09422f52cf5335909cdd51b4c434a08427483560
4
- data.tar.gz: d2e3c74b74a510bb1b4c9fa4f971c835316a48a7
3
+ metadata.gz: c999ae868853c9646c3e8ca5d7cd30a757256e95
4
+ data.tar.gz: 031ffc958eee37bc0ed1b09574e6af924d76ef52
5
5
  SHA512:
6
- metadata.gz: 16eea5517088408b78c3f24c287b8658f7f00ecc5c3a40e511070e43ea23da04ac46a63f4764f0d8283cb2de29f546c7062f60d16f5a9b66e366be0fe7a7c72d
7
- data.tar.gz: 23b80ec6b869b088fdf7f864a237461537b98e0ecd325e952b33ab3e40e37952719eee1d57233a368b1f84817d6e13f742f6b726073b397f8e76d3f0bba1bf7e
6
+ metadata.gz: 1b9349832295aa0587313d84520d4c81f9bb08f60f4e12863347dd14576f9682a348ba1493c2188552a15e57111b0415cb4cc67ad35a5231e24edb3c313a40b1
7
+ data.tar.gz: 9554df0d318b4edf1658a18b13d8575ae76aedc79fac926ed3e0a47427b5eecb33db85d153d4ca37d1e725c0f0938bec37c74bda52110b77cd1727a45db0b385
@@ -1,15 +1,56 @@
1
1
  # This class is a wrapper around the command line version that is in the OpenStudio repository.
2
2
  module OpenStudio
3
3
  module Aws
4
+ VALID_OPTIONS = [
5
+ :proxy, :credentials
6
+ ]
7
+
4
8
  class Aws
5
9
  attr_reader :os_aws
6
10
 
7
- def initialize()
11
+ # default constructor to create the AWS class that can spin up server and worker instances.
12
+ # options are optional with the following support:
13
+ # credentials => {:access_key_id, :secret_access_key, :region, :ssl_verify_peer}
14
+ # proxy => {:host => "192.168.0.1", :port => "8808", :username => "user", :password => "password"}}
15
+ def initialize(options = {})
16
+ invalid_options = options.keys - VALID_OPTIONS
17
+ if invalid_options.any?
18
+ raise ArgumentError, "invalid option(s): #{invalid_options.join(', ')}"
19
+ end
20
+
8
21
  # read in the config.yml file to get the secret/private key
9
- @config = OpenStudio::Aws::Config.new()
22
+ if !options[:credentials]
23
+ config_file = OpenStudio::Aws::Config.new()
24
+
25
+ # populate the credentials
26
+ options = {
27
+ :credentials =>
28
+ {
29
+ :access_key_id => config_file.access_key,
30
+ :secret_access_key => config_file.secret_key,
31
+ :region => "us-east-1", #todo: move this to a default
32
+ :ssl_verify_peer => false
33
+ }
34
+ }
35
+ end
36
+
37
+ if options[:proxy]
38
+ proxy_uri = nil
39
+ if options[:proxy][:username]
40
+ proxy_uri = "https://#{options[:proxy][:username]}:#{options[:proxy][:password]}@#{options[:proxy][:host]}:#{options[:proxy][:port]}"
41
+ else
42
+ proxy_uri = "https://#{options[:proxy][:host]}:#{options[:proxy][:port]}"
43
+ end
44
+ # todo: remove this proxy_uri and make a method to format correctly
45
+ options[:proxy_uri] = proxy_uri
10
46
 
11
- config = {:access_key_id => @config.access_key, :secret_access_key => @config.secret_key, :region => "us-east-1", :ssl_verify_peer => false}
12
- @os_aws = OpenStudioAwsWrapper.new(config)
47
+ #todo: do we need to escape a couple of the argument of username and password
48
+
49
+ #todo: set some environment variables for system based proxy
50
+
51
+ end
52
+
53
+ @os_aws = OpenStudioAwsWrapper.new(options)
13
54
  @local_key_file_name = nil
14
55
 
15
56
  # this will grab the default version of openstudio ami versions
@@ -30,26 +71,6 @@ module OpenStudio
30
71
 
31
72
  puts @os_aws.server.to_os_hash.to_json
32
73
 
33
- # Call the openstudio script to start the ec2 instance
34
- #start_string = "ruby #{os_aws_file_location} #{@config.access_key} #{@config.secret_key} us-east-1 EC2 launch_server \"#{instance_string}\""
35
- #puts "Server Command: #{start_string}"
36
- #server_data_str = `#{start_string}`
37
- #@server_data = JSON.parse(server_data_str, :symbolize_names => true)
38
-
39
- # Save pieces of the data for passing to the worker node
40
-
41
- #File.open(server_key_file, "w") { |f| f << @server_data[:private_key] }
42
- #File.chmod(0600, server_key_file)
43
-
44
- # Save off the server data to be loaded into the worker nodes. The Private key needs to e read from a
45
- # file in the worker node, so save that name instead in the HASH along with a couple other changes
46
- #@server_data[:private_key] = server_key_file
47
- #if @server_data[:server]
48
- # @server_data[:server_id] = @server_data[:server][:id]
49
- # @server_data[:server_ip] = @server_data[:server][:ip]
50
- # @server_data[:server_dns] = @server_data[:server][:dns]
51
- #end
52
-
53
74
  File.open(server_json_filename, "w") { |f| f << JSON.pretty_generate(@os_aws.server.to_os_hash) }
54
75
 
55
76
  # Print out some debugging commands (probably work on mac/linux only)
@@ -1,6 +1,6 @@
1
1
  module OpenStudio
2
2
  module Aws
3
- VERSION = "0.1.13"
3
+ VERSION = "0.1.14"
4
4
  OPENSTUDIO_VERSION = "1.2.1"
5
5
  end
6
6
  end
@@ -24,8 +24,8 @@ class OpenStudioAmis
24
24
 
25
25
  def initialize(version = 1, openstudio_version = 'default', openstudio_server_version = 'default')
26
26
  @version = 1
27
- @openstudio_version = openstudio_version
28
- @openstudio_server_version = openstudio_server_version
27
+ @openstudio_version = openstudio_version.to_sym
28
+ @openstudio_server_version = openstudio_server_version.to_sym
29
29
  end
30
30
 
31
31
  def list
@@ -85,12 +85,14 @@ class OpenStudioAmis
85
85
  end
86
86
 
87
87
  private
88
+
89
+
88
90
 
89
91
  def retrieve_json(endpoint)
90
92
  result = nil
91
93
  resp = Net::HTTP.get_response('developer.nrel.gov', endpoint)
92
94
  if resp.code == '200'
93
- result = JSON.parse(resp.body)
95
+ result = JSON.parse(resp.body, :symbolize_names => true)
94
96
  else
95
97
  raise "#{resp.code} Unable to download AMI IDs"
96
98
  end
@@ -22,6 +22,7 @@ require 'securerandom'
22
22
  require_relative 'openstudio_aws_logger'
23
23
  require_relative 'openstudio_aws_methods'
24
24
 
25
+
25
26
  class OpenStudioAwsInstance
26
27
  include Logging
27
28
  include OpenStudioAwsMethods
@@ -29,7 +30,7 @@ class OpenStudioAwsInstance
29
30
  attr_reader :openstudio_instance_type
30
31
  attr_reader :data
31
32
 
32
- def initialize(aws_session, openstudio_instance_type, key_pair_name, security_group_name, group_uuid, private_key)
33
+ def initialize(aws_session, openstudio_instance_type, key_pair_name, security_group_name, group_uuid, private_key, proxy = nil, options = {})
33
34
  @data = nil # stored information about the instance
34
35
  @aws = aws_session
35
36
  @openstudio_instance_type = openstudio_instance_type # :server, :worker
@@ -37,9 +38,9 @@ class OpenStudioAwsInstance
37
38
  @security_group_name = security_group_name
38
39
  @group_uuid = group_uuid.to_s
39
40
  @private_key = private_key
41
+ @proxy = proxy
40
42
  end
41
43
 
42
-
43
44
  def launch_instance(image_id, instance_type, user_data)
44
45
  #logger.info("user_data #{user_data.inspect}")
45
46
  instance = {
@@ -30,10 +30,11 @@
30
30
  # Member Variables:
31
31
  # private_key : the in memory private key
32
32
  # logger : logger class in which to write log messages
33
- #
33
+ # @proxy : proxy setting if available
34
34
  ######################################################################
35
35
 
36
36
  module OpenStudioAwsMethods
37
+ # This list of processors can be pulled out of the ../../doc/amazon_prices.xlsx file
37
38
  def find_processors(instance)
38
39
  lookup = {
39
40
  "m3.xlarge" => 4,
@@ -71,11 +72,24 @@ module OpenStudioAwsMethods
71
72
  processors
72
73
  end
73
74
 
74
-
75
+ def get_proxy()
76
+ proxy = nil
77
+ if @proxy
78
+ if @proxy[:username]
79
+ proxy = Net::SSH::Proxy::HTTP.new(@proxy[:host], @proxy[:port], :user => @proxy[:username], :password => proxy[:password])
80
+ else
81
+ proxy = Net::SSH::Proxy::HTTP.new(@proxy[:host], @proxy[:port])
82
+ end
83
+ end
84
+
85
+ proxy
86
+ end
87
+
88
+
75
89
  def upload_file(host, local_path, remote_path)
76
90
  retries = 0
77
91
  begin
78
- Net::SCP.start(host, 'ubuntu', :key_data => [@private_key]) do |scp|
92
+ Net::SCP.start(host, 'ubuntu', :proxy => get_proxy, :key_data => [@private_key]) do |scp|
79
93
  scp.upload! local_path, remote_path
80
94
  end
81
95
  rescue SystemCallError, Timeout::Error => e
@@ -98,7 +112,7 @@ module OpenStudioAwsMethods
98
112
  #retries = 0
99
113
  begin
100
114
  output = ''
101
- Net::SSH.start(host, 'ubuntu', :key_data => [@private_key]) do |ssh|
115
+ Net::SSH.start(host, 'ubuntu', :proxy => get_proxy, :key_data => [@private_key]) do |ssh|
102
116
  response = ssh.exec!(command)
103
117
  output += response if !response.nil?
104
118
  end
@@ -124,13 +138,13 @@ module OpenStudioAwsMethods
124
138
  end
125
139
  end
126
140
 
127
- #======================= send command ======================#
128
- # Send a command through SSH Shell to an instance.
129
- # Need to pass instance object and the command as a string.
141
+ #======================= send command ======================#
142
+ # Send a command through SSH Shell to an instance.
143
+ # Need to pass instance object and the command as a string.
130
144
  def shell_command(host, command)
131
145
  begin
132
146
  @logger.info("ssh_command #{command}")
133
- Net::SSH.start(host, 'ubuntu', :key_data => [@private_key]) do |ssh|
147
+ Net::SSH.start(host, 'ubuntu', :proxy => get_proxy, :key_data => [@private_key]) do |ssh|
134
148
  channel = ssh.open_channel do |ch|
135
149
  ch.exec "#{command}" do |ch, success|
136
150
  raise "could not execute #{command}" unless success
@@ -167,7 +181,7 @@ module OpenStudioAwsMethods
167
181
  flag = 0
168
182
  while flag == 0 do
169
183
  @logger.info("wait_command #{command}")
170
- Net::SSH.start(host, 'ubuntu', :key_data => [@private_key]) do |ssh|
184
+ Net::SSH.start(host, 'ubuntu', :proxy => get_proxy, :key_data => [@private_key]) do |ssh|
171
185
  channel = ssh.open_channel do |ch|
172
186
  ch.exec "#{command}" do |ch, success|
173
187
  raise "could not execute #{command}" unless success
@@ -205,7 +219,7 @@ module OpenStudioAwsMethods
205
219
  rescue SystemCallError, Timeout::Error => e
206
220
  # port 22 might not be available immediately after the instance finishes launching
207
221
  sleep 5
208
- @logger.info("Not Yet")
222
+ @logger.info("Timeout. Perhaps there is a communication error to EC2? Will try again")
209
223
  retry
210
224
  end
211
225
  end
@@ -213,7 +227,7 @@ module OpenStudioAwsMethods
213
227
  def download_file(host, remote_path, local_path)
214
228
  retries = 0
215
229
  begin
216
- Net::SCP.start(host, 'ubuntu', :key_data => [@private_key]) do |scp|
230
+ Net::SCP.start(host, 'ubuntu', :proxy => get_proxy, :key_data => [@private_key]) do |scp|
217
231
  scp.download! remote_path, local_path
218
232
  end
219
233
  rescue SystemCallError, Timeout::Error => e
@@ -41,13 +41,19 @@ require_relative 'openstudio_aws_logger'
41
41
  class OpenStudioAwsWrapper
42
42
  include Logging
43
43
 
44
- attr_reader :group_uuid
44
+ attr_reader :group_uuid
45
45
  attr_reader :security_group_name
46
46
  attr_reader :key_pair_name
47
47
  attr_reader :server
48
48
  attr_reader :workers
49
+ attr_reader :proxy
49
50
 
50
- def initialize(credentials = nil, group_uuid = nil)
51
+ # todo: put this into a module
52
+ VALID_OPTIONS = [
53
+ :proxy, :credentials
54
+ ]
55
+
56
+ def initialize(options = {}, group_uuid = nil)
51
57
  @group_uuid = group_uuid || Time.now.to_i.to_s
52
58
 
53
59
  @security_group_name = nil
@@ -56,10 +62,11 @@ class OpenStudioAwsWrapper
56
62
  @server = nil
57
63
  @workers = []
58
64
 
59
- # If you already set the credentials in another script in memory, then you won't have to do it here, but
60
- # it won't hurt if you do
61
- Aws.config = credentials if credentials
62
- @aws = Aws::EC2.new
65
+ # store an instance variable with the proxy for passing to instances for use in scp/ssh
66
+ @proxy = options[:proxy] ? options[:proxy] : nil
67
+
68
+ # need to remove the prxoy information here
69
+ @aws = Aws::EC2.new(options[:credentials])
63
70
  end
64
71
 
65
72
  def create_or_retrieve_security_group(sg_name = nil)
@@ -160,6 +167,42 @@ class OpenStudioAwsWrapper
160
167
  instance_data
161
168
  end
162
169
 
170
+ def describe_amis(filter = nil, image_ids = [], owned_by_me = true)
171
+ resp = nil
172
+
173
+ # todo: test the filter. i don't think that it is exposed in the AWS gem?
174
+ if owned_by_me
175
+ if filter
176
+ resp = @aws.describe_images({:owners => [:self], :filter => filter}).data
177
+ else
178
+ resp = @aws.describe_images({:owners => [:self]}).data
179
+ end
180
+ else
181
+ if filter
182
+ resp = @aws.describe_images({:filter => filter}).data
183
+ else
184
+ resp = @aws.describe_images({:image_ids => image_ids}).data
185
+ end
186
+ end
187
+
188
+ resp = resp.to_hash
189
+
190
+ # map the tags to hashes
191
+ resp[:images].each do |image|
192
+ image[:tags_hash] = {}
193
+ image[:tags_hash][:tags] = []
194
+ image[:tags].each do |tag|
195
+ if tag[:value]
196
+ image[:tags_hash][tag[:key].to_sym] = tag[:value]
197
+ else
198
+ image[:tags_hash][:tags] << tag[:key]
199
+ end
200
+ end
201
+ end
202
+
203
+ resp
204
+ end
205
+
163
206
  def create_or_retrieve_key_pair(key_pair_name = nil, private_key_file = nil)
164
207
  tmp_name = key_pair_name || "os-key-pair-#{@group_uuid}"
165
208
 
@@ -170,21 +213,21 @@ class OpenStudioAwsWrapper
170
213
  raise "looks like there are 2 key pairs with the same name" if resp.key_pairs.size >= 2
171
214
  rescue
172
215
  logger.info "could not find key pair '#{tmp_name}'"
173
- end
174
-
216
+ end
217
+
175
218
  if resp.nil? || resp.key_pairs.size == 0
176
219
  # create the new key_pair
177
220
  # check if the key pair name exists
178
221
  # create a new key pair everytime
179
222
  keypair = @aws.create_key_pair({:key_name => tmp_name})
180
-
223
+
181
224
  # save the private key to memory (which can later be persisted via the save_private_key method)
182
225
  @private_key = keypair.data.key_material
183
226
  @key_pair_name = keypair.data.key_name
184
227
  else
185
228
  logger.info "found existing keypair #{resp.key_pairs.first}"
186
229
  @key_pair_name = resp.key_pairs.first[:key_name]
187
-
230
+
188
231
  if File.exists(private_key_file)
189
232
  @private_key = File.read(private_key_file, 'r')
190
233
  else
@@ -192,7 +235,7 @@ class OpenStudioAwsWrapper
192
235
  logger.error "Could not find the private key file to load from #{private_key_file}"
193
236
  end
194
237
  end
195
-
238
+
196
239
  logger.info("create key pair: #{@key_pair_name}")
197
240
  end
198
241
 
@@ -202,13 +245,13 @@ class OpenStudioAwsWrapper
202
245
  File.chmod(0600, filename)
203
246
  else
204
247
  logger.error "no private key found in which to persist"
205
- end
248
+ end
206
249
  end
207
250
 
208
251
  def launch_server(image_id, instance_type)
209
252
  user_data = File.read(File.expand_path(File.dirname(__FILE__))+'/server_script.sh')
210
- @server = OpenStudioAwsInstance.new(@aws, :server, @key_pair_name, @security_group_name, @group_uuid, @private_key)
211
-
253
+ @server = OpenStudioAwsInstance.new(@aws, :server, @key_pair_name, @security_group_name, @group_uuid, @private_key, @proxy)
254
+
212
255
  raise "image_id is nil" if not image_id
213
256
  raise "instance type is nil" if not instance_type
214
257
  @server.launch_instance(image_id, instance_type, user_data)
@@ -220,11 +263,11 @@ class OpenStudioAwsWrapper
220
263
  user_data.gsub!(/SERVER_HOSTNAME/, 'master')
221
264
  user_data.gsub!(/SERVER_ALIAS/, '')
222
265
  logger.info("worker user_data #{user_data.inspect}")
223
-
266
+
224
267
  # thread the launching of the workers
225
-
268
+
226
269
  num.times do
227
- @workers << OpenStudioAwsInstance.new(@aws, :worker, @key_pair_name, @security_group_name, @group_uuid, @private_key)
270
+ @workers << OpenStudioAwsInstance.new(@aws, :worker, @key_pair_name, @security_group_name, @group_uuid, @private_key, @proxy)
228
271
  end
229
272
 
230
273
  threads = []
@@ -238,7 +281,7 @@ class OpenStudioAwsWrapper
238
281
  # todo: do we need to have a flag if the worker node is successful?
239
282
  # todo: do we need to check the current list of running workers?
240
283
  end
241
-
284
+
242
285
  # blocking method that waits for servers and workers to be fully configured (i.e. execution of user_data has
243
286
  # occured on all nodes)
244
287
  def configure_server_and_workers
@@ -251,7 +294,7 @@ class OpenStudioAwsWrapper
251
294
  ips = "master|#{@server.data.ip}|#{@server.data.dns}|#{@server.data.procs}|ubuntu|ubuntu\n"
252
295
  @workers.each { |worker| ips << "worker|#{worker.data.ip}|#{worker.data.dns}|#{worker.data.procs}|ubuntu|ubuntu|true\n" }
253
296
  file = Tempfile.new('ip_addresses')
254
- file.write(ips)
297
+ file.write(ips)
255
298
  file.close
256
299
  @server.upload_file(@server.data.ip, file.path, 'ip_addresses')
257
300
  file.unlink
@@ -272,31 +315,11 @@ class OpenStudioAwsWrapper
272
315
  # Does this command crash it?
273
316
  @server.shell_command(@server.data.ip, 'chmod 664 /mnt/openstudio/rails-models/mongoid.yml')
274
317
  @workers.each { |worker| worker.shell_command(worker.data.ip, 'chmod 664 /mnt/openstudio/rails-models/mongoid.yml') }
275
-
318
+
276
319
  true
277
320
  end
278
321
 
279
- def describe_amis(filter = nil, image_ids = [], owned_by_me = true)
280
- resp = nil
281
322
 
282
- if owned_by_me
283
- if filter
284
- resp = @aws.describe_images({:owners => [:self], :filter => filter}).data
285
- else
286
- resp = @aws.describe_images({:owners => [:self]}).data
287
- end
288
- else
289
- if filter
290
- resp = @aws.describe_images({:filter => filter}).data
291
- else
292
- resp = @aws.describe_images({:image_ids => image_ids}).data
293
- end
294
- end
295
-
296
-
297
- resp
298
- end
299
-
300
323
  # method to query the amazon api to find the server (if it exists), based on the group id
301
324
  # if it is found, then it will set the @server member variable.
302
325
  # Note that the information around keys and security groups is pulled from the instance information.
@@ -305,7 +328,7 @@ class OpenStudioAwsWrapper
305
328
 
306
329
  logger.info "finding the server for groupid of #{group_uuid}"
307
330
  raise "no group uuid defined either in member variable or method argument" if group_uuid.nil?
308
-
331
+
309
332
  resp = describe_running_instances(group_uuid, :server)
310
333
  if resp
311
334
  raise "more than one server running with group uuid of #{group_uuid} found, expecting only one" if resp.size > 1
@@ -321,27 +344,45 @@ class OpenStudioAwsWrapper
321
344
  raise "could not find a running server instance"
322
345
  end
323
346
  end
324
-
325
-
347
+
326
348
  # method to hit the existing list of available amis and compare to the list of AMIs on Amazon and then generate the
327
349
  # new ami list
328
350
  def create_new_ami_json(version = 1)
351
+ # get the list of existing amis from developer.nrel.gov
329
352
  existing_amis = OpenStudioAmis.new(version).list
330
- logger.info existing_amis
331
-
353
+
354
+ # list of available AMIs from AWS
355
+ available_amis = describe_amis()
356
+
357
+ amis = transform_ami_lists(existing_amis, available_amis)
358
+
332
359
  if version == 1
333
- # check if the AMIs still exist (anywhere)
334
- #test_ami = @os_aws.describe_amis(nil, )
360
+ version1 = {}
361
+
362
+ # grab the old AMIs that are in the 0.0.1 section
363
+ amis[:openstudio_server]["0.0.1".to_sym].each do |a|
364
+ next if a[:deprecate]
365
+
366
+ version1[a[:openstudio_version]] = a[:amis]
367
+ end
368
+
369
+ # now grab the good keys - they should be sorted newest to older... so go backwards
370
+ amis[:openstudio_server].keys.reverse.each do |key|
371
+ next if key == "0.0.1".to_sym
372
+
373
+ a = amis[:openstudio_server][key]
374
+ # this will override any of the old ami/os version
375
+ version1[a[:openstudio_version].to_sym] = a[:amis]
376
+ end
377
+
378
+ amis = version1
335
379
  elsif version == 2
380
+ # don't need to transform anything right now
336
381
  end
337
-
338
382
 
339
- # check if the existing AMIs still exist
340
- #existing_amis
341
- available_amis = describe_amis()
342
- logger.info available_amis
383
+ amis
343
384
  end
344
-
385
+
345
386
  def to_os_worker_hash
346
387
  worker_hash = []
347
388
  @workers.each { |worker|
@@ -352,12 +393,98 @@ class OpenStudioAwsWrapper
352
393
  :procs => worker.data.procs
353
394
  })
354
395
  }
355
-
396
+
356
397
  out = {:workers => worker_hash}
357
398
  logger.info out
358
-
399
+
359
400
  out
360
401
  end
361
402
 
403
+ private
404
+
405
+ # transform the available amis into an easier to read format
406
+ def transform_ami_lists(existing, available)
407
+ # initialize ami hash
408
+ amis = {:openstudio_server => {}, :openstudio => {}}
409
+
410
+ available[:images].each do |ami|
411
+ sv = ami[:tags_hash][:openstudio_server_version]
412
+ sv = "0.0.1" if sv.nil?
413
+
414
+ a = nil
415
+ #initialize hashes
416
+ if sv == "0.0.1" # unknown is an array
417
+ amis[:openstudio_server][sv.to_sym] = [] if !amis[:openstudio_server][sv.to_sym]
418
+ amis[:openstudio_server][sv.to_sym] << {}
419
+ a = amis[:openstudio_server][sv.to_sym].last
420
+ else
421
+ amis[:openstudio_server][sv.to_sym] = {} if !amis[:openstudio_server][sv.to_sym]
422
+ a = amis[:openstudio_server][sv.to_sym]
423
+ end
424
+
425
+ # initialize ami hash
426
+ a[:amis] = {} if !a[:amis]
427
+
428
+ # fill in data (this will override data currently)
429
+ a[:deprecate] = true if sv == "0.0.1"
430
+ a[:openstudio_version] = ami[:tags_hash][:openstudio_version] if ami[:tags_hash][:openstudio_version]
431
+ a[:openstudio_version_sha] = ami[:tags_hash][:openstudio_version_sha] if ami[:tags_hash][:openstudio_version_sha]
432
+ a[:user_uuid] = ami[:tags_hash][:user_uuid] if ami[:tags_hash][:user_uuid]
433
+ a[:deprecate] = ami[:tags_hash][:deprecate] if ami[:tags_hash][:deprecate]
434
+ a[:created_on] = ami[:tags_hash][:created_on] if ami[:tags_hash][:created_on]
435
+
436
+ if ami[:name] =~ /Worker|Cluster/
437
+ if ami[:virtualization_type] == "paravirtual"
438
+ a[:amis][:worker] = ami[:image_id]
439
+ elsif ami[:virtualization_type] == "hvm"
440
+ a[:amis][:cc2worker] = ami[:image_id]
441
+ else
442
+ raise "unknown virtualization_type in #{ami[:name]}"
443
+ end
444
+ elsif ami[:name] =~ /Server/
445
+ a[:amis][:server] = ami[:image_id]
446
+ end
447
+ end
448
+
449
+ # dump the existing amis into the 'unknown category, but don't flag them as 'deprecate'
450
+ existing.keys.each do |ami_key|
451
+ next if ami_key == "default".to_sym # ignore default
452
+
453
+ amis[:openstudio_server]["0.0.1".to_sym] = [] if !amis[:openstudio_server]["0.0.1".to_sym]
454
+ amis[:openstudio_server]["0.0.1".to_sym] << {}
455
+ a = amis[:openstudio_server]["0.0.1".to_sym].last
456
+ a[:amis] = {} if !a[:amis]
457
+
458
+ a[:openstudio_version] = ami_key
459
+ a[:amis][:server] = existing[ami_key][:server]
460
+ a[:amis][:worker] = existing[ami_key][:worker]
461
+ a[:amis][:cc2worker] = existing[ami_key][:cc2worker]
462
+ end
463
+
464
+ # flip these around for openstudio section
465
+ amis[:openstudio_server].keys.each do |key|
466
+ next if key == "0.0.1".to_sym
467
+ a = amis[:openstudio_server][key]
468
+ ov = a[:openstudio_version]
469
+
470
+ amis[:openstudio][ov] = {} if !amis[:openstudio][ov]
471
+ osv = key
472
+ amis[:openstudio][ov][osv] = {} if !amis[:openstudio][ov][osv]
473
+ amis[:openstudio][ov][osv][:amis] = {} if !amis[:openstudio][ov][osv][:amis]
474
+ amis[:openstudio][ov][osv][:amis][:server] = a[:amis][:server]
475
+ amis[:openstudio][ov][osv][:amis][:worker] = a[:amis][:worker]
476
+ amis[:openstudio][ov][osv][:amis][:cc2worker] = a[:amis][:cc2worker]
477
+ end
478
+
479
+ # sort on the semantic version so that grabbing the key will be the most recent
480
+ amis[:openstudio_server].sort_by { |k, _| Semantic::Version.new(k.to_s) }
481
+
482
+ # determine the defaults - for now just grab the most recent in each openstudio version
483
+ amis[:openstudio].keys.each do |key|
484
+ amis[:openstudio][key][:default] = amis[:openstudio][key].keys[0]
485
+ end
486
+
487
+ amis
488
+ end
362
489
 
363
490
  end
@@ -3,6 +3,7 @@ require 'net/scp'
3
3
  require 'net/http'
4
4
  require 'yaml'
5
5
  require 'logger'
6
+ require 'semantic'
6
7
 
7
8
  # AWS SDK CORE
8
9
  begin
@@ -11,24 +11,20 @@ describe OpenStudio::Aws::Aws do
11
11
  @aws.should_not be_nil
12
12
  end
13
13
 
14
+
14
15
  it "should ask the user to create a new config file" do
15
16
  end
16
17
 
17
18
  it "should create a server" do
18
19
  # use the default instance type
19
- options = {instance_type: "t1.micro", image_id: "ami-fb301292"}
20
+ options = {instance_type: "m1.small", image_id: "ami-29faca40"}
20
21
 
21
- #options = {instance_type: "m1.small" }
22
22
  @aws.create_server(options)
23
23
  expect(@aws.os_aws.server).not_to be_nil
24
24
  end
25
25
 
26
26
  it "should create a 1 worker" do
27
- options = {instance_type: "t1.micro", image_id: "ami-21301248"}
28
- #options = {instance_type: "m1.small" }
29
- #server_json[:instance_type] = "m2.4xlarge"
30
- #server_json[:instance_type] = "m2.2xlarge"
31
- #server_json[:instance_type] = "t1.micro"
27
+ options = {instance_type: "m1.small", image_id: "ami-95f9c9fc"}
32
28
 
33
29
  @aws.create_workers(1, options)
34
30
 
@@ -37,7 +33,7 @@ describe OpenStudio::Aws::Aws do
37
33
  end
38
34
 
39
35
  it "should be able to connect a worker to an existing server" do
40
- options = {instance_type: "t1.micro", image_id: "ami-a9e4ccc0"}
36
+ options = {instance_type: "m1.small", image_id: "ami-29faca40"}
41
37
 
42
38
  # will require a new @aws class--but attached to same group_uuid
43
39
  @config = OpenStudio::Aws::Config.new