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,
|
is_valid_resource_id,
|
||||||
get_prefix,
|
get_prefix,
|
||||||
simple_aws_filter_to_re,
|
simple_aws_filter_to_re,
|
||||||
is_valid_cidr)
|
is_valid_cidr,
|
||||||
|
filter_internet_gateways,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def validate_resource_ids(resource_ids):
|
def validate_resource_ids(resource_ids):
|
||||||
@ -1885,14 +1887,19 @@ class InternetGatewayBackend(object):
|
|||||||
self.internet_gateways[igw.id] = igw
|
self.internet_gateways[igw.id] = igw
|
||||||
return igw
|
return igw
|
||||||
|
|
||||||
def describe_internet_gateways(self, internet_gateway_ids=None):
|
def describe_internet_gateways(self, internet_gateway_ids=None, filters=None):
|
||||||
igws = []
|
igws = []
|
||||||
for igw_id in internet_gateway_ids or []:
|
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:
|
if igw_id in self.internet_gateways:
|
||||||
igws.append(self.internet_gateways[igw_id])
|
igws.append(self.internet_gateways[igw_id])
|
||||||
else:
|
else:
|
||||||
raise InvalidInternetGatewayIdError(igw_id)
|
raise InvalidInternetGatewayIdError(igw_id)
|
||||||
return igws or self.internet_gateways.values()
|
if filters is not None:
|
||||||
|
igws = filter_internet_gateways(igws, filters)
|
||||||
|
return igws
|
||||||
|
|
||||||
def delete_internet_gateway(self, internet_gateway_id):
|
def delete_internet_gateway(self, internet_gateway_id):
|
||||||
igw = self.get_internet_gateway(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 (
|
from moto.ec2.utils import (
|
||||||
sequence_from_querystring,
|
sequence_from_querystring,
|
||||||
filters_from_querystring,
|
filters_from_querystring,
|
||||||
filter_internet_gateways,
|
|
||||||
)
|
)
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
|
|
||||||
@ -28,15 +27,13 @@ class InternetGateways(BaseResponse):
|
|||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def describe_internet_gateways(self):
|
def describe_internet_gateways(self):
|
||||||
|
filter_dict = filters_from_querystring(self.querystring)
|
||||||
if "InternetGatewayId.1" in self.querystring:
|
if "InternetGatewayId.1" in self.querystring:
|
||||||
igw_ids = sequence_from_querystring(
|
igw_ids = sequence_from_querystring(
|
||||||
"InternetGatewayId", self.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:
|
else:
|
||||||
igws = self.ec2_backend.describe_internet_gateways()
|
igws = self.ec2_backend.describe_internet_gateways(filters=filter_dict)
|
||||||
|
|
||||||
filter_dict = filters_from_querystring(self.querystring)
|
|
||||||
igws = filter_internet_gateways(igws, filter_dict)
|
|
||||||
|
|
||||||
template = Template(DESCRIBE_INTERNET_GATEWAYS_RESPONSE)
|
template = Template(DESCRIBE_INTERNET_GATEWAYS_RESPONSE)
|
||||||
return template.render(internet_gateways=igws)
|
return template.render(internet_gateways=igws)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user