Don't go fishing in the stack for the KeyName

The KeyName should be a property of the Instance, and need not have the
same name in the stack parameters.

Change-Id: I05dcfd9aa6f92bc7aaa2dbc594062984ac074b7e
Signed-off-by: Zane Bitter <zbitter@redhat.com>
This commit is contained in:
Zane Bitter 2012-06-27 11:47:30 +02:00
parent b942be0e36
commit 2c15f8e1b3
2 changed files with 13 additions and 10 deletions

View File

@ -241,17 +241,20 @@ class Instance(Resource):
res = Resource.validate(self) res = Resource.validate(self)
if res: if res:
return res return res
#check validity of key #check validity of key
if self.stack.parms['KeyName']: try:
key_name = self.properties['KeyName']
except ValueError:
return
else:
keypairs = self.nova().keypairs.list() keypairs = self.nova().keypairs.list()
valid_key = False valid_key = False
for k in keypairs: for k in keypairs:
if k.name == self.stack.parms['KeyName']: if k.name == key_name:
valid_key = True return
if not valid_key:
return {'Error': return {'Error':
'Provided KeyName is not registered with nova'} 'Provided KeyName is not registered with nova'}
return None
def handle_delete(self): def handle_delete(self):
try: try:

View File

@ -71,7 +71,7 @@ test_template_ref = '''
"Properties": { "Properties": {
"ImageId": "image_name", "ImageId": "image_name",
"InstanceType": "m1.large", "InstanceType": "m1.large",
"KeyName": "test_KeyName" "KeyName": { "Ref" : "KeyName" }
} }
}, },
"DataVolume" : { "DataVolume" : {
@ -112,7 +112,7 @@ test_template_findinmap_valid = '''
"Properties": { "Properties": {
"ImageId": "image_name", "ImageId": "image_name",
"InstanceType": "m1.large", "InstanceType": "m1.large",
"KeyName": "test_KeyName" "KeyName": { "Ref" : "KeyName" }
} }
}, },
"DataVolume" : { "DataVolume" : {
@ -176,7 +176,7 @@ test_template_findinmap_invalid = '''
'"InstanceType" }, "Arch" ] } ] },' + \ '"InstanceType" }, "Arch" ] } ] },' + \
''' '''
"InstanceType": "m1.large", "InstanceType": "m1.large",
"KeyName": "test_KeyName" "KeyName": { "Ref" : "KeyName"}
} }
}, },
"DataVolume" : { "DataVolume" : {