From 7e188b212779a1dfb3349257ecf5abe470bf9929 Mon Sep 17 00:00:00 2001 From: Andrew Hutchings Date: Tue, 8 Jan 2013 17:19:50 +0000 Subject: [PATCH] Various fixes and workarounds to talk to HP API server Change-Id: Id16b34790aac14b8af2803f8556e66b560ce6c2f --- libraclient/libraapi.py | 27 +++++++++++++++++---------- tests/test_lbaas_client.py | 4 ---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/libraclient/libraapi.py b/libraclient/libraapi.py index 828d7f1..28dddeb 100644 --- a/libraclient/libraapi.py +++ b/libraclient/libraapi.py @@ -67,10 +67,13 @@ class LibraAPI(object): def limits_lb(self, args): resp, body = self._get('/limits') - column_names = ['Verb', 'Value', 'Remaining', 'Unit', 'Next Available'] - columns = ['verb', 'value', 'remaining', 'unit', 'next-available'] - self._render_list(column_names, columns, - body['limits']['rate']['values']['limit']) + # Work around the fact that limits is missing from HP's API server + if 'rate' in body['limits']: + column_names = ['Verb', 'Value', 'Remaining', 'Unit', + 'Next Available'] + columns = ['verb', 'value', 'remaining', 'unit', 'next-available'] + self._render_list(column_names, columns, + body['limits']['rate']['values']['limit']) column_names = ['Values'] columns = ['values'] self._render_dict(column_names, columns, body['limits']['absolute']) @@ -127,8 +130,7 @@ class LibraAPI(object): data['algorithm'] = args.algorithm for node in args.node: addr = node.split(':') - nodes.append({'address': addr[0], 'port': addr[1], - 'condition': 'ENABLED'}) + nodes.append({'address': addr[0], 'port': addr[1]}) data['nodes'] = nodes if args.vip is not None: data['virtualIps'] = [{'id': args.vip}] @@ -164,8 +166,7 @@ class LibraAPI(object): for node in args.node: addr = node.split(':') - nodes.append({'address': addr[0], 'port': addr[1], - 'condition': 'ENABLED'}) + nodes.append({'address': addr[0], 'port': addr[1]}) data['nodes'] = nodes resp, body = self._post('/loadbalancers/{0}/nodes' .format(args.id), body=data) @@ -190,7 +191,10 @@ class LibraAPI(object): for item in data: row = [] for column in columns: - rdata = item[column] + if column in item: + rdata = item[column] + else: + rdata = '' row.append(rdata) table.add_row(row) print table @@ -199,7 +203,10 @@ class LibraAPI(object): table = prettytable.PrettyTable(column_names) row = [] for column in columns: - rdata = data[column] + if column in data: + rdata = data[column] + else: + rdata = '' row.append(rdata) table.add_row(row) print table diff --git a/tests/test_lbaas_client.py b/tests/test_lbaas_client.py index a39a606..79bb240 100644 --- a/tests/test_lbaas_client.py +++ b/tests/test_lbaas_client.py @@ -211,12 +211,10 @@ class TestLBaaSClientLibraAPI(testtools.TestCase): "nodes": [ { "address": "10.1.1.1", - "condition": "ENABLED", "port": "80" }, { "address": "10.1.1.2", - "condition": "ENABLED", "port": "81" } ] @@ -269,7 +267,6 @@ class TestLBaaSClientLibraAPI(testtools.TestCase): 'id': '653', 'port': '80', 'status': 'ONLINE', - 'condition': 'ENABLED' } ] }) @@ -286,7 +283,6 @@ class TestLBaaSClientLibraAPI(testtools.TestCase): "nodes": [ { "address": "10.1.1.1", - "condition": "ENABLED", "port": "80" } ]