From 65beb30054f5477447fdf53ea3b6cb30f66585b2 Mon Sep 17 00:00:00 2001 From: Konstantinos Koukopoulos Date: Mon, 24 Feb 2014 12:42:50 +0200 Subject: [PATCH] create KeyPairBackend in ec2 model, use in keypair test --- moto/ec2/models.py | 27 ++++++++++++++++++++++++++- moto/ec2/responses/key_pairs.py | 4 +++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/moto/ec2/models.py b/moto/ec2/models.py index e0907978f..65008458a 100644 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -161,6 +161,30 @@ class InstanceBackend(object): return [reservation for reservation in self.reservations.values()] +class KeyPairBackend(object): + + class KeyPair(object): + pass + + def __init__(self): + self.keypairs = defaultdict(dict) + super(KeyPairBackend, self).__init__() + + def create_key_pair(self, name): + self.keypairs[name] = self.KeyPair() + return name + + def delete_key_pair(self, name): + return self.keypairs.pop(name) + + def describe_key_pairs(self, filter_names=None): + results = [] + for name, keypair in self.keypairs.iteritems(): + if not filter_names or name in filter_names: + results.append({name: keypair}) + return results + + class TagBackend(object): def __init__(self): @@ -675,7 +699,8 @@ class ElasticAddressBackend(object): class EC2Backend(BaseBackend, InstanceBackend, TagBackend, AmiBackend, RegionsAndZonesBackend, SecurityGroupBackend, EBSBackend, - VPCBackend, SubnetBackend, SpotRequestBackend, ElasticAddressBackend): + VPCBackend, SubnetBackend, SpotRequestBackend, ElasticAddressBackend, + KeyPairBackend): pass diff --git a/moto/ec2/responses/key_pairs.py b/moto/ec2/responses/key_pairs.py index bcb4e5ed6..565d0506a 100644 --- a/moto/ec2/responses/key_pairs.py +++ b/moto/ec2/responses/key_pairs.py @@ -1,8 +1,10 @@ from jinja2 import Template from moto.core.responses import BaseResponse +from moto.ec2.models import ec2_backend class KeyPairs(BaseResponse): + def create_key_pair(self): raise NotImplementedError('KeyPairs.create_key_pair is not yet implemented') @@ -11,7 +13,7 @@ class KeyPairs(BaseResponse): def describe_key_pairs(self): template = Template(DESCRIBE_KEY_PAIRS_RESPONSE) - return template.render(keypairs=[]) + return template.render(keypairs=ec2_backend.describe_key_pairs()) def import_key_pair(self): raise NotImplementedError('KeyPairs.import_key_pair is not yet implemented')