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.
- checksums.yaml +4 -4
- data/lib/openstudio/aws/aws.rb +45 -24
- data/lib/openstudio/aws/version.rb +1 -1
- data/lib/openstudio/lib/ami_list.rb +5 -3
- data/lib/openstudio/lib/openstudio_aws_instance.rb +3 -2
- data/lib/openstudio/lib/openstudio_aws_methods.rb +25 -11
- data/lib/openstudio/lib/openstudio_aws_wrapper.rb +182 -55
- data/lib/openstudio-aws.rb +1 -0
- data/spec/aws_instances/aws_spec_api.rb +4 -8
- data/spec/openstudio-aws/ami_list_spec.rb +7 -12
- data/spec/openstudio-aws/aws_spec.rb +64 -0
- data/spec/openstudio-aws/aws_wrapper_spec.rb +39 -16
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.2.xml +73 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.3.xml +28 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.4.xml +28 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-create-a-new-instance.5.xml +32 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.0.xml +16 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.1.xml +18 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.10.xml +21 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.11.xml +18 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.12.xml +29 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.13.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.14.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.15.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.16.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.17.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.18.xml +11 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.19.xml +23 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.2.xml +19 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.20.xml +23 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.21.xml +13 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.22.xml +13 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.23.xml +13 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.24.xml +13 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.3.xml +17 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.4.xml +16 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.5.xml +16 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.6.xml +17 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.7.xml +21 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.8.xml +21 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.9.xml +21 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-proxy-configuration.xml +18 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.2.xml +18 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.3.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws-workers-before-server.4.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.10.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.2.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.3.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.4.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.5.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.6.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.7.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.8.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Aws.9.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.11.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.12.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.13.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.14.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.15.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.16.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.17.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.18.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.19.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.20.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.21.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.22.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.23.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.24.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.25.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.26.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.27.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.28.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.29.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.30.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.31.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.32.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.33.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.34.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.35.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.36.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.37.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.38.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.39.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.40.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.41.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.42.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.43.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.44.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.45.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.46.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.47.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.48.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.49.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config-create-a-new-config.50.xml +9 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.30.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.31.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.32.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.33.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.34.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.35.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.36.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.37.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.38.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.39.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.40.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.41.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.42.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.43.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.44.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.45.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.46.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.47.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.48.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.49.xml +7 -0
- data/spec/reports/SPEC-OpenStudio-Aws-Config.50.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.11.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.12.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.13.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.14.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.15.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.16.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.17.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.18.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.19.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.20.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.21.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.22.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.23.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.24.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.25.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.26.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.27.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.28.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.29.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.30.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.31.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.32.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.33.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.34.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.35.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.36.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.37.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.38.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.39.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.40.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.41.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.42.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.43.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.44.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.45.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.46.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.47.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.48.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.49.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.50.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-1.51.xml +13 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.10.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.11.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.12.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.13.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.14.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.15.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.16.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.17.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.18.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.19.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.20.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.21.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.22.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.23.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.24.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.25.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.26.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.27.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.28.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.29.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.30.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.31.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.32.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.33.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.34.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.35.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.36.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.37.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.38.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.39.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.40.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.41.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.42.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.43.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.44.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.45.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.46.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.47.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.48.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.49.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis-version-2.9.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAmis.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.30.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.31.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.32.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.33.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.34.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.35.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.36.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.37.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.38.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.39.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.40.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.41.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.42.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.43.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.44.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.45.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.46.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.47.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.48.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.49.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.50.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAmis.51.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.11.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.12.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.13.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.14.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.15.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.16.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.17.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.18.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.19.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.20.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.21.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.22.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.23.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.24.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.25.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.26.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.27.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.28.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.29.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.30.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.31.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.32.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.33.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.34.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.35.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.36.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.37.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.38.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.39.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.40.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.41.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.42.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.43.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.44.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.45.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.46.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.47.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.48.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.49.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.50.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods-processors.51.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.30.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.31.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.32.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.33.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.34.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.35.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.36.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.37.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.38.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.39.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.40.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.41.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.42.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.43.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.44.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.45.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.46.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.47.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.48.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.49.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.50.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsMethods.51.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.11.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.12.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.13.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.14.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.15.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.16.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.17.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.18.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.19.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.20.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.21.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.22.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.23.xml +23 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.24.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.25.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.26.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.27.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.28.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.29.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.30.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.31.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.32.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.33.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.34.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.35.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.36.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.37.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.38.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.39.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.40.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.41.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.42.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.43.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.44.xml +21 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.45.xml +21 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.46.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.47.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.48.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.49.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-availability.50.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.10.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.11.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.12.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.13.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.14.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.15.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.16.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.17.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.18.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.19.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.20.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.21.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.22.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.23.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.24.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.25.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.26.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.27.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.28.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.29.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.3.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.30.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.31.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.32.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.33.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.34.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.35.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.36.xml +21 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.37.xml +21 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.38.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.39.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.4.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.40.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.41.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.42.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.5.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.6.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.7.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.8.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-create-new-ami-json.9.xml +26 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.11.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.12.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.13.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.14.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.15.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.16.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.17.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.18.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.19.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.20.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.21.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.22.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.23.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.24.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.25.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.26.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.27.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.28.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.29.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.30.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.31.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.32.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.33.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.34.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.35.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.36.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.37.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.38.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.39.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.40.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.41.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.42.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.43.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.44.xml +14 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.45.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.46.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.47.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.48.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.49.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-new-instance.50.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.0.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-1.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.0.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session-version-2.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.30.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.31.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.32.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.33.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.34.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.35.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.36.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.37.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.38.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.39.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.40.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.41.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.42.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.43.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.44.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.45.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.46.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.47.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.48.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.49.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-authenticated-session.50.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.0.xml +11 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.1.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.2.xml +39 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.3.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.4.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.5.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.6.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.7.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.8.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.9.xml +25 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-proxy-configuration.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.11.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.12.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.13.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.14.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.15.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.16.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.17.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.18.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.19.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.20.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.21.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.22.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.23.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.24.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.25.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.26.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.27.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.28.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.29.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.30.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.31.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.32.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.33.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.34.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.35.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.36.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.37.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.38.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.39.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.40.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.41.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.42.xml +16 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.43.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.44.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.45.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.46.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.47.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.48.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.49.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.50.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper-unauthenticated-session.51.xml +9 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.11.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.12.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.13.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.14.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.15.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.16.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.17.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.18.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.19.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.20.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.21.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.22.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.23.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.24.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.25.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.26.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.27.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.28.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.29.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.30.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.31.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.32.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.33.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.34.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.35.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.36.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.37.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.38.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.39.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.40.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.41.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.42.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.43.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.44.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.45.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.46.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.47.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.48.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.49.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.50.xml +7 -0
- data/spec/reports/SPEC-OpenStudioAwsWrapper.51.xml +7 -0
- metadata +1224 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c999ae868853c9646c3e8ca5d7cd30a757256e95
|
4
|
+
data.tar.gz: 031ffc958eee37bc0ed1b09574e6af924d76ef52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b9349832295aa0587313d84520d4c81f9bb08f60f4e12863347dd14576f9682a348ba1493c2188552a15e57111b0415cb4cc67ad35a5231e24edb3c313a40b1
|
7
|
+
data.tar.gz: 9554df0d318b4edf1658a18b13d8575ae76aedc79fac926ed3e0a47427b5eecb33db85d153d4ca37d1e725c0f0938bec37c74bda52110b77cd1727a45db0b385
|
data/lib/openstudio/aws/aws.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
12
|
-
|
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)
|
@@ -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("
|
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
|
-
|
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
|
-
#
|
60
|
-
|
61
|
-
|
62
|
-
|
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
|
-
|
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
|
-
|
334
|
-
|
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
|
-
|
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
|
data/lib/openstudio-aws.rb
CHANGED
@@ -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: "
|
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: "
|
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: "
|
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
|