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