make duplicate key pair test pass
This commit is contained in:
parent
8b7c3a3312
commit
35063ca743
@ -169,6 +169,8 @@ class KeyPairBackend(object):
|
|||||||
super(KeyPairBackend, self).__init__()
|
super(KeyPairBackend, self).__init__()
|
||||||
|
|
||||||
def create_key_pair(self, name):
|
def create_key_pair(self, name):
|
||||||
|
if name in self.keypairs:
|
||||||
|
raise InvalidIdError(name)
|
||||||
self.keypairs[name] = keypair = random_key_pair()
|
self.keypairs[name] = keypair = random_key_pair()
|
||||||
keypair['name'] = name
|
keypair['name'] = name
|
||||||
return keypair
|
return keypair
|
||||||
|
@ -1,14 +1,21 @@
|
|||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.ec2.models import ec2_backend
|
from moto.ec2.models import ec2_backend
|
||||||
|
from moto.ec2.exceptions import InvalidIdError
|
||||||
|
|
||||||
|
|
||||||
class KeyPairs(BaseResponse):
|
class KeyPairs(BaseResponse):
|
||||||
|
|
||||||
def create_key_pair(self):
|
def create_key_pair(self):
|
||||||
name = self.querystring.get('KeyName')[0]
|
try:
|
||||||
template = Template(CREATE_KEY_PAIR_RESPONSE)
|
name = self.querystring.get('KeyName')[0]
|
||||||
return template.render(**ec2_backend.create_key_pair(name))
|
keypair = ec2_backend.create_key_pair(name)
|
||||||
|
except InvalidIdError as exc:
|
||||||
|
template = Template(CREATE_KEY_PAIR_INVALID_NAME)
|
||||||
|
return template.render(keypair_id=exc.id), dict(status=400)
|
||||||
|
else:
|
||||||
|
template = Template(CREATE_KEY_PAIR_RESPONSE)
|
||||||
|
return template.render(**keypair)
|
||||||
|
|
||||||
def delete_key_pair(self):
|
def delete_key_pair(self):
|
||||||
raise NotImplementedError('KeyPairs.delete_key_pair is not yet implemented')
|
raise NotImplementedError('KeyPairs.delete_key_pair is not yet implemented')
|
||||||
@ -36,3 +43,8 @@ CREATE_KEY_PAIR_RESPONSE = """<CreateKeyPairResponse xmlns="http://ec2.amazonaws
|
|||||||
<keyMaterial>{{ material }}
|
<keyMaterial>{{ material }}
|
||||||
</keyMaterial>
|
</keyMaterial>
|
||||||
</CreateKeyPairResponse>"""
|
</CreateKeyPairResponse>"""
|
||||||
|
|
||||||
|
|
||||||
|
CREATE_KEY_PAIR_INVALID_NAME = """<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Response><Errors><Error><Code>InvalidKeyPair.Duplicate</Code><Message>The keypair '{{ keypair_id }}' already exists.</Message></Error></Errors><RequestID>f4f76e81-8ca5-4e61-a6d5-a4a96EXAMPLE</RequestID></Response>
|
||||||
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user