openstudio-aws 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
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