
These updates allow the CLI user to fully take advantage of the shared pools functionality being added to Neutron LBaaS in preparation for L7 switching functionality. The Neutron LBaaS patch is here: https://review.openstack.org/#/c/218560/ Partially-Implements: blueprint lbaas-l7-rules Change-Id: Ib72d743ff0d6ca7f0fde034a8c73029308ca01a1
178 lines
7.7 KiB
Python
178 lines
7.7 KiB
Python
# Copyright 2014 Blue Box Group, Inc.
|
|
# All Rights Reserved
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
import sys
|
|
|
|
from neutronclient.common import exceptions
|
|
from neutronclient.neutron.v2_0.lb.v2 import pool
|
|
from neutronclient.tests.unit import test_cli20
|
|
|
|
|
|
class CLITestV20LbPoolJSON(test_cli20.CLITestV20Base):
|
|
|
|
def test_create_pool_with_listener(self):
|
|
# lbaas-pool-create with listener
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.CreatePool(test_cli20.MyApp(sys.stdout), None)
|
|
my_id = 'my-id'
|
|
lb_algorithm = 'ROUND_ROBIN'
|
|
listener = 'listener'
|
|
protocol = 'TCP'
|
|
args = ['--lb-algorithm', lb_algorithm, '--protocol', protocol,
|
|
'--listener', listener]
|
|
position_names = ['admin_state_up', 'lb_algorithm', 'protocol',
|
|
'listener_id']
|
|
position_values = [True, lb_algorithm, protocol, listener]
|
|
self._test_create_resource(resource, cmd, '', my_id, args,
|
|
position_names, position_values,
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_create_pool_with_loadbalancer_no_listener(self):
|
|
"""lbaas-pool-create with loadbalancer, no listener."""
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.CreatePool(test_cli20.MyApp(sys.stdout), None)
|
|
my_id = 'my-id'
|
|
lb_algorithm = 'ROUND_ROBIN'
|
|
loadbalancer = 'loadbalancer'
|
|
protocol = 'TCP'
|
|
args = ['--lb-algorithm', lb_algorithm, '--protocol', protocol,
|
|
'--loadbalancer', loadbalancer]
|
|
position_names = ['admin_state_up', 'lb_algorithm', 'protocol',
|
|
'loadbalancer_id']
|
|
position_values = [True, lb_algorithm, protocol, loadbalancer]
|
|
self._test_create_resource(resource, cmd, '', my_id, args,
|
|
position_names, position_values,
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_create_pool_with_no_listener_or_loadbalancer(self):
|
|
"""lbaas-pool-create with no listener or loadbalancer."""
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.CreatePool(test_cli20.MyApp(sys.stdout), None)
|
|
my_id = 'my-id'
|
|
lb_algorithm = 'ROUND_ROBIN'
|
|
protocol = 'TCP'
|
|
args = ['--lb-algorithm', lb_algorithm, '--protocol', protocol]
|
|
position_names = ['admin_state_up', 'lb_algorithm', 'protocol']
|
|
position_values = [True, lb_algorithm, protocol]
|
|
self._test_create_resource(resource, cmd, '', my_id, args,
|
|
position_names, position_values,
|
|
cmd_resource=cmd_resource,
|
|
no_api_call=True,
|
|
expected_exception=exceptions.CommandError)
|
|
|
|
def test_create_pool_with_all_params(self):
|
|
# lbaas-pool-create with all params set.
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.CreatePool(test_cli20.MyApp(sys.stdout), None)
|
|
my_id = 'my-id'
|
|
lb_algorithm = 'ROUND_ROBIN'
|
|
listener = 'listener'
|
|
loadbalancer = 'loadbalancer'
|
|
protocol = 'TCP'
|
|
description = 'description'
|
|
session_persistence_str = 'type=APP_COOKIE,cookie_name=1234'
|
|
session_persistence = {'type': 'APP_COOKIE',
|
|
'cookie_name': '1234'}
|
|
name = 'my-pool'
|
|
args = ['--lb-algorithm', lb_algorithm, '--protocol', protocol,
|
|
'--description', description, '--session-persistence',
|
|
session_persistence_str, '--admin-state-down', '--name', name,
|
|
'--listener', listener, '--loadbalancer', loadbalancer]
|
|
position_names = ['lb_algorithm', 'protocol', 'description',
|
|
'session_persistence', 'admin_state_up', 'name',
|
|
'listener_id', 'loadbalancer_id']
|
|
position_values = [lb_algorithm, protocol, description,
|
|
session_persistence, False, name, listener,
|
|
loadbalancer]
|
|
self._test_create_resource(resource, cmd, '', my_id, args,
|
|
position_names, position_values,
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_list_pools(self):
|
|
# lbaas-pool-list.
|
|
resources = 'pools'
|
|
cmd_resources = 'lbaas_pools'
|
|
cmd = pool.ListPool(test_cli20.MyApp(sys.stdout), None)
|
|
self._test_list_resources(resources, cmd, True,
|
|
cmd_resources=cmd_resources)
|
|
|
|
def test_list_pools_pagination(self):
|
|
# lbaas-pool-list with pagination.
|
|
resources = 'pools'
|
|
cmd_resources = 'lbaas_pools'
|
|
cmd = pool.ListPool(test_cli20.MyApp(sys.stdout), None)
|
|
self._test_list_resources_with_pagination(resources, cmd,
|
|
cmd_resources=cmd_resources)
|
|
|
|
def test_list_pools_sort(self):
|
|
# lbaas-pool-list --sort-key id --sort-key asc.
|
|
resources = 'pools'
|
|
cmd_resources = 'lbaas_pools'
|
|
cmd = pool.ListPool(test_cli20.MyApp(sys.stdout), None)
|
|
self._test_list_resources(resources, cmd, True,
|
|
cmd_resources=cmd_resources)
|
|
|
|
def test_list_pools_limit(self):
|
|
# lbaas-pool-list -P.
|
|
resources = 'pools'
|
|
cmd_resources = 'lbaas_pools'
|
|
cmd = pool.ListPool(test_cli20.MyApp(sys.stdout), None)
|
|
self._test_list_resources(resources, cmd, page_size=1000,
|
|
cmd_resources=cmd_resources)
|
|
|
|
def test_show_pool_id(self):
|
|
# lbaas-pool-show test_id.
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.ShowPool(test_cli20.MyApp(sys.stdout), None)
|
|
args = ['--fields', 'id', self.test_id]
|
|
self._test_show_resource(resource, cmd, self.test_id, args, ['id'],
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_show_pool_id_name(self):
|
|
# lbaas-pool-show.
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.ShowPool(test_cli20.MyApp(sys.stdout), None)
|
|
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
|
self._test_show_resource(resource, cmd, self.test_id,
|
|
args, ['id', 'name'],
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_update_pool(self):
|
|
# lbaas-pool-update myid --name newname.
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.UpdatePool(test_cli20.MyApp(sys.stdout), None)
|
|
self._test_update_resource(resource, cmd, 'myid',
|
|
['myid', '--name', 'newname'],
|
|
{'name': 'newname', },
|
|
cmd_resource=cmd_resource)
|
|
|
|
def test_delete_pool(self):
|
|
# lbaas-pool-delete my-id.
|
|
resource = 'pool'
|
|
cmd_resource = 'lbaas_pool'
|
|
cmd = pool.DeletePool(test_cli20.MyApp(sys.stdout), None)
|
|
my_id = 'my-id'
|
|
args = [my_id]
|
|
self._test_delete_resource(resource, cmd, my_id, args,
|
|
cmd_resource=cmd_resource)
|