From c46a6260b38d5a623c66e70d4ba634b1492c50ba Mon Sep 17 00:00:00 2001 From: Saju Madhavan Date: Wed, 28 Jan 2015 17:18:38 +0530 Subject: [PATCH] create_route fails with Unknown error Fix: Corrected python dictionary lookup to get list of routes I were getting following errors: conn.create_route(rtable.id, '10.0.0.0/28', gateway_id='igw-default') boto.exception.BotoServerError: BotoServerError: 500 Internal Server Error TypeErrorUnknown error occurred. req-8d96ab7f-e72c-40a6-a4af-7137588ead1c --- nova/api/ec2/vpc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nova/api/ec2/vpc.py b/nova/api/ec2/vpc.py index 3f201b6d2f4..39dd582a32b 100644 --- a/nova/api/ec2/vpc.py +++ b/nova/api/ec2/vpc.py @@ -980,7 +980,7 @@ def create_route(self, context, **kwargs): # find the route foundRoute = False - for route in route_table['routes']: + for route in route_table['routes']['route']: if route['prefix'] == cidr: route['next_hop'] = next_hop route['next_hop_type'] = next_hop_type @@ -991,10 +991,10 @@ def create_route(self, context, **kwargs): route = {'prefix': cidr, 'next_hop': next_hop, 'next_hop_type': next_hop_type} - route_table['routes'].append(route) + route_table['routes']['route'].append(route) # add route to the route table - route_dict = {'route': route_table['routes']} + route_dict = {'route': route_table['routes']['route']} req = {'routes': route_dict} try: route_rsp = neutron.update_route_table(route_table['id'],