diff --git a/lib/fog/compute/aws.rb b/lib/fog/compute/aws.rb index 270de5b12..e5cd2e616 100644 --- a/lib/fog/compute/aws.rb +++ b/lib/fog/compute/aws.rb @@ -136,6 +136,11 @@ module Fog require 'fog/compute/parsers/aws/basic' @aws_access_key_id = options[:aws_access_key_id] + + unless ['ap-northeast-1', 'ap-southeast-1', 'eu-west-1', 'us-east-1', 'us-west-1'].include?(options[:region]) + raise ArgumentError, "Unknown region: #{options[:region].inspect}" + end + @region = options[:region] || 'us-east-1' @data = self.class.data[@region][@aws_access_key_id] diff --git a/lib/fog/compute/requests/aws/run_instances.rb b/lib/fog/compute/requests/aws/run_instances.rb index 134ddddfe..0d5208303 100644 --- a/lib/fog/compute/requests/aws/run_instances.rb +++ b/lib/fog/compute/requests/aws/run_instances.rb @@ -133,7 +133,7 @@ module Fog # 'keyName' => options['KeyName'], 'launchTime' => Time.now, 'monitoring' => { 'state' => options['Monitoring.Enabled'] || false }, - 'placement' => { 'availabilityZone' => options['Placement.AvailabilityZone'] || Fog::AWS::Mock.availability_zone }, + 'placement' => { 'availabilityZone' => options['Placement.AvailabilityZone'] || Fog::AWS::Mock.availability_zone(@region) }, 'privateDnsName' => nil, 'productCodes' => [], 'ramdiskId' => options['RamdiskId'] || Fog::AWS::Mock.ramdisk_id, diff --git a/lib/fog/providers/aws.rb b/lib/fog/providers/aws.rb index 72e87be72..b7192d821 100644 --- a/lib/fog/providers/aws.rb +++ b/lib/fog/providers/aws.rb @@ -69,8 +69,8 @@ module Fog class Mock - def self.availability_zone - "us-east-1" << Fog::Mock.random_selection('abcd', 1) + def self.availability_zone(region) + "#{region}#{Fog::Mock.random_selection('abcd', 1)}" end def self.box_usage