Merge pull request #2134 from ogckw/master

Fix #2129 EC2 tag should raise ClientError when resource is empty
This commit is contained in:
Mike Grima 2019-04-17 11:05:28 -07:00 committed by GitHub
commit d8dbc6a49c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 0 deletions

View File

@ -134,6 +134,8 @@ def utc_date_and_time():
def validate_resource_ids(resource_ids): def validate_resource_ids(resource_ids):
if not resource_ids:
raise MissingParameterError(parameter='resourceIdSet')
for resource_id in resource_ids: for resource_id in resource_ids:
if not is_valid_resource_id(resource_id): if not is_valid_resource_id(resource_id):
raise InvalidID(resource_id=resource_id) raise InvalidID(resource_id=resource_id)

View File

@ -5,6 +5,7 @@ import itertools
import boto import boto
import boto3 import boto3
from botocore.exceptions import ClientError
from boto.exception import EC2ResponseError from boto.exception import EC2ResponseError
from boto.ec2.instance import Reservation from boto.ec2.instance import Reservation
import sure # noqa import sure # noqa
@ -451,3 +452,31 @@ def test_create_snapshot_with_tags():
}] }]
assert snapshot['Tags'] == expected_tags assert snapshot['Tags'] == expected_tags
@mock_ec2
def test_create_tag_empty_resource():
# create ec2 client in us-west-1
client = boto3.client('ec2', region_name='us-west-1')
# create tag with empty resource
with assert_raises(ClientError) as ex:
client.create_tags(
Resources=[],
Tags=[{'Key': 'Value'}]
)
ex.exception.response['Error']['Code'].should.equal('MissingParameter')
ex.exception.response['Error']['Message'].should.equal('The request must contain the parameter resourceIdSet')
@mock_ec2
def test_delete_tag_empty_resource():
# create ec2 client in us-west-1
client = boto3.client('ec2', region_name='us-west-1')
# delete tag with empty resource
with assert_raises(ClientError) as ex:
client.delete_tags(
Resources=[],
Tags=[{'Key': 'Value'}]
)
ex.exception.response['Error']['Code'].should.equal('MissingParameter')
ex.exception.response['Error']['Message'].should.equal('The request must contain the parameter resourceIdSet')