diff --git a/moto/ec2/models.py b/moto/ec2/models.py index 932f535a1..b9759099b 100755 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -1261,8 +1261,15 @@ class RegionsAndZonesBackend(object): (region, [Zone(region + c, region) for c in 'abc']) for region in [r.name for r in regions]) - def describe_regions(self): - return self.regions + def describe_regions(self, region_names=[]): + if len(region_names) == 0: + return self.regions + ret = [] + for name in region_names: + for region in self.regions: + if region.name == name: + ret.append(region) + return ret def describe_availability_zones(self): return self.zones[self.region_name] diff --git a/moto/ec2/responses/availability_zones_and_regions.py b/moto/ec2/responses/availability_zones_and_regions.py index 3d0a5ab05..a6e35a89c 100644 --- a/moto/ec2/responses/availability_zones_and_regions.py +++ b/moto/ec2/responses/availability_zones_and_regions.py @@ -10,7 +10,8 @@ class AvailabilityZonesAndRegions(BaseResponse): return template.render(zones=zones) def describe_regions(self): - regions = self.ec2_backend.describe_regions() + region_names = self._get_multi_param('RegionName') + regions = self.ec2_backend.describe_regions(region_names) template = self.response_template(DESCRIBE_REGIONS_RESPONSE) return template.render(regions=regions)