Client additions
1. Fill out more client functions 2. Fix some argparse options 3. We are using id, not lbid for the load balancer id
This commit is contained in:
@@ -102,14 +102,14 @@ class ClientOptions(object):
|
||||
)
|
||||
sp.add_argument('--id', help='load balancer ID', required=True)
|
||||
sp.add_argument('--node', help='node to add in ip:port form',
|
||||
required=True)
|
||||
required=True, action='append')
|
||||
sp = subparsers.add_parser(
|
||||
'node-modify', help='modify node in a load balancer'
|
||||
)
|
||||
sp.add_argument('--id', help='load balancer ID', required=True)
|
||||
sp.add_argument('--nodeid', help='node ID to modify', required=True)
|
||||
sp.add_argument('--node', help='the new node address in ip:port form',
|
||||
required=True)
|
||||
sp.add_argument('--condition', help='the new state for the node',
|
||||
choices=['ENABLED', 'DISABLED'], required=True)
|
||||
sp = subparsers.add_parser(
|
||||
'node-status', help='get status of a node in a load balancer'
|
||||
)
|
||||
|
||||
@@ -36,7 +36,7 @@ class LibraAPI(object):
|
||||
self._render_list(column_names, columns, body['loadBalancers'])
|
||||
|
||||
def status_lb(self, args):
|
||||
resp, body = self._get('/loadbalancers/{0}'.format(args.lbid))
|
||||
resp, body = self._get('/loadbalancers/{0}'.format(args.id))
|
||||
column_names = ['ID', 'Name', 'Protocol', 'Port', 'Algorithm',
|
||||
'Status', 'Created', 'Updated', 'IPs', 'Nodes',
|
||||
'Persistence Type', 'Connection Throttle']
|
||||
@@ -46,7 +46,7 @@ class LibraAPI(object):
|
||||
self._render_dict(column_names, columns, body)
|
||||
|
||||
def delete_lb(self, args):
|
||||
self._delete('/loadbalancers/{0}'.format(args.lbid))
|
||||
self._delete('/loadbalancers/{0}'.format(args.id))
|
||||
|
||||
def create_lb(self, args):
|
||||
data = {}
|
||||
@@ -77,22 +77,44 @@ class LibraAPI(object):
|
||||
data['name'] = args.name
|
||||
if args.algorithm is not None:
|
||||
data['algorithm'] = args.algorithm
|
||||
self._put('/loadbalancers/{0}'.format(args.lbid), body=data)
|
||||
self._put('/loadbalancers/{0}'.format(args.id), body=data)
|
||||
|
||||
def node_list_lb(self, args):
|
||||
pass
|
||||
resp, body = self._get('/loadbalaners/{0}/nodes'.format(args.id))
|
||||
column_names = ['ID', 'Address', 'Port', 'Condition', 'Status']
|
||||
columns = ['id', 'address', 'port', 'condition', 'status']
|
||||
self._render_list(column_names, columns, body['nodes'])
|
||||
|
||||
def node_delete_lb(self, args):
|
||||
pass
|
||||
self._delete('/loadbalancers/{0}/nodes/{1}'
|
||||
.format(args.id, args.nodeid))
|
||||
|
||||
def node_add_lb(self, args):
|
||||
pass
|
||||
data = {}
|
||||
nodes = []
|
||||
|
||||
for node in args.node:
|
||||
addr = node.split(':')
|
||||
nodes.append({'address': addr[0], 'port': addr[1],
|
||||
'condition': 'ENABLED'})
|
||||
data['nodes'] = nodes
|
||||
resp, body = self._post('/loadbalancers/{0}/nodes'
|
||||
.format(args.id), body=data)
|
||||
column_names = ['ID', 'Address', 'Port', 'Condition', 'Status']
|
||||
columns = ['id', 'address', 'port', 'condition', 'status']
|
||||
self._render_list(column_names, columns, body['nodes'])
|
||||
|
||||
def node_modify_lb(self, args):
|
||||
pass
|
||||
data = {'condition': args.condition}
|
||||
self._put('/loadbalancers/{0}/nodes/{1}'
|
||||
.format(args.id, args.nodeid), body=data)
|
||||
|
||||
def node_status_lb(self, args):
|
||||
pass
|
||||
resp, body = self._get('/loadbalaners/{0}/nodes/{1}'
|
||||
.format(args.id, args.nodeid))
|
||||
column_names = ['ID', 'Address', 'Port', 'Condition', 'Status']
|
||||
columns = ['id', 'address', 'port', 'condition', 'status']
|
||||
self._render_list(column_names, columns, body['nodes'])
|
||||
|
||||
def _render_list(self, column_names, columns, data):
|
||||
table = prettytable.PrettyTable(column_names)
|
||||
|
||||
@@ -10,7 +10,7 @@ from libra.client.libraapi import LibraAPI
|
||||
class DummyArgs(object):
|
||||
""" Fake argparse response """
|
||||
def __init__(self):
|
||||
self.lbid = 2000
|
||||
self.id = 2000
|
||||
|
||||
class DummyCreateArgs(object):
|
||||
""" Fake argparse response for Create function """
|
||||
@@ -24,7 +24,7 @@ class DummyCreateArgs(object):
|
||||
class DummyModifyArgs(object):
|
||||
""" Fake argparse response for Modify function """
|
||||
def __init__(self):
|
||||
self.lbid = 2012
|
||||
self.id = 2012
|
||||
self.name = 'a-modified-loadbalancer'
|
||||
self.algorithm = 'LEAST_CONNECTIONS'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user