From e5b3f4181dcad2f5fadb5dc080aa43cdf547f973 Mon Sep 17 00:00:00 2001 From: khneal <40273388+khneal@users.noreply.github.com> Date: Wed, 5 May 2021 05:15:43 -0700 Subject: [PATCH] EC2 describe_network_acls: add support for owner-id filter (#3898) * add test that fails with FilterNotImplementedError * describe_network_acls: add support for owner-id filter Co-authored-by: Kevin Neal --- moto/ec2/models.py | 7 ++++++- moto/ec2/responses/network_acls.py | 1 + tests/test_ec2/test_network_acls.py | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/moto/ec2/models.py b/moto/ec2/models.py index 555ebc6a2..90e2fbfac 100644 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -5667,10 +5667,13 @@ class NetworkAclAssociation(object): class NetworkAcl(TaggedEC2Resource): - def __init__(self, ec2_backend, network_acl_id, vpc_id, default=False): + def __init__( + self, ec2_backend, network_acl_id, vpc_id, default=False, owner_id=OWNER_ID, + ): self.ec2_backend = ec2_backend self.id = network_acl_id self.vpc_id = vpc_id + self.owner_id = owner_id self.network_acl_entries = [] self.associations = {} self.default = "true" if default is True else "false" @@ -5684,6 +5687,8 @@ class NetworkAcl(TaggedEC2Resource): return self.id elif filter_name == "association.subnet-id": return [assoc.subnet_id for assoc in self.associations.values()] + elif filter_name == "owner-id": + return self.owner_id else: return super(NetworkAcl, self).get_filter_value( filter_name, "DescribeNetworkAcls" diff --git a/moto/ec2/responses/network_acls.py b/moto/ec2/responses/network_acls.py index 4b1c4c2c5..136808375 100644 --- a/moto/ec2/responses/network_acls.py +++ b/moto/ec2/responses/network_acls.py @@ -132,6 +132,7 @@ DESCRIBE_NETWORK_ACL_RESPONSE = """ {{ network_acl.id }} {{ network_acl.vpc_id }} + {{ network_acl.owner_id }} {{ network_acl.default }} {% for entry in network_acl.network_acl_entries %} diff --git a/tests/test_ec2/test_network_acls.py b/tests/test_ec2/test_network_acls.py index c2a790ed7..8a7d74a8e 100644 --- a/tests/test_ec2/test_network_acls.py +++ b/tests/test_ec2/test_network_acls.py @@ -6,6 +6,7 @@ import pytest from botocore.exceptions import ClientError from moto import mock_ec2_deprecated, mock_ec2 +from moto.ec2.models import OWNER_ID @mock_ec2_deprecated @@ -297,6 +298,11 @@ def test_describe_network_acls(): resp2 = conn.describe_network_acls()["NetworkAcls"] resp2.should.have.length_of(3) + resp3 = conn.describe_network_acls( + Filters=[{"Name": "owner-id", "Values": [OWNER_ID]}] + )["NetworkAcls"] + resp3.should.have.length_of(3) + with pytest.raises(ClientError) as ex: conn.describe_network_acls(NetworkAclIds=["1"])