Move filter logic from responses.InternetGateways to models.InternetGatewayBackend
This commit is contained in:
parent
32af875386
commit
88684f10f2
@ -83,7 +83,9 @@ from .utils import (
|
||||
is_valid_resource_id,
|
||||
get_prefix,
|
||||
simple_aws_filter_to_re,
|
||||
is_valid_cidr)
|
||||
is_valid_cidr,
|
||||
filter_internet_gateways,
|
||||
)
|
||||
|
||||
|
||||
def validate_resource_ids(resource_ids):
|
||||
@ -1885,14 +1887,19 @@ class InternetGatewayBackend(object):
|
||||
self.internet_gateways[igw.id] = igw
|
||||
return igw
|
||||
|
||||
def describe_internet_gateways(self, internet_gateway_ids=None):
|
||||
def describe_internet_gateways(self, internet_gateway_ids=None, filters=None):
|
||||
igws = []
|
||||
for igw_id in internet_gateway_ids or []:
|
||||
if igw_id in self.internet_gateways:
|
||||
igws.append(self.internet_gateways[igw_id])
|
||||
else:
|
||||
raise InvalidInternetGatewayIdError(igw_id)
|
||||
return igws or self.internet_gateways.values()
|
||||
if internet_gateway_ids is None:
|
||||
igws = self.internet_gateways.values()
|
||||
else:
|
||||
for igw_id in internet_gateway_ids:
|
||||
if igw_id in self.internet_gateways:
|
||||
igws.append(self.internet_gateways[igw_id])
|
||||
else:
|
||||
raise InvalidInternetGatewayIdError(igw_id)
|
||||
if filters is not None:
|
||||
igws = filter_internet_gateways(igws, filters)
|
||||
return igws
|
||||
|
||||
def delete_internet_gateway(self, internet_gateway_id):
|
||||
igw = self.get_internet_gateway(internet_gateway_id)
|
||||
|
@ -3,7 +3,6 @@ from moto.core.responses import BaseResponse
|
||||
from moto.ec2.utils import (
|
||||
sequence_from_querystring,
|
||||
filters_from_querystring,
|
||||
filter_internet_gateways,
|
||||
)
|
||||
from jinja2 import Template
|
||||
|
||||
@ -28,15 +27,13 @@ class InternetGateways(BaseResponse):
|
||||
return template.render()
|
||||
|
||||
def describe_internet_gateways(self):
|
||||
filter_dict = filters_from_querystring(self.querystring)
|
||||
if "InternetGatewayId.1" in self.querystring:
|
||||
igw_ids = sequence_from_querystring(
|
||||
"InternetGatewayId", self.querystring)
|
||||
igws = self.ec2_backend.describe_internet_gateways(igw_ids)
|
||||
igws = self.ec2_backend.describe_internet_gateways(igw_ids, filters=filter_dict)
|
||||
else:
|
||||
igws = self.ec2_backend.describe_internet_gateways()
|
||||
|
||||
filter_dict = filters_from_querystring(self.querystring)
|
||||
igws = filter_internet_gateways(igws, filter_dict)
|
||||
igws = self.ec2_backend.describe_internet_gateways(filters=filter_dict)
|
||||
|
||||
template = Template(DESCRIBE_INTERNET_GATEWAYS_RESPONSE)
|
||||
return template.render(internet_gateways=igws)
|
||||
|
Loading…
Reference in New Issue
Block a user