Support backup members
Story: 2001777 Task: 12486 Change-Id: I81095ec47eaf0f5d41e91ea66b3a0c9a00d8f95b
This commit is contained in:
parent
a5c9e16a4f
commit
eee91e826a
|
@ -122,7 +122,9 @@ MEMBER_ROWS = (
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'weight',
|
'weight',
|
||||||
'monitor_port',
|
'monitor_port',
|
||||||
'monitor_address')
|
'monitor_address',
|
||||||
|
'backup'
|
||||||
|
)
|
||||||
|
|
||||||
MEMBER_COLUMNS = (
|
MEMBER_COLUMNS = (
|
||||||
'id',
|
'id',
|
||||||
|
|
|
@ -101,6 +101,19 @@ class CreateMember(command.ShowOne):
|
||||||
metavar='<name>',
|
metavar='<name>',
|
||||||
help="Name of the member."
|
help="Name of the member."
|
||||||
)
|
)
|
||||||
|
backup = parser.add_mutually_exclusive_group()
|
||||||
|
backup.add_argument(
|
||||||
|
'--disable-backup',
|
||||||
|
action='store_true',
|
||||||
|
default=None,
|
||||||
|
help="Disable member backup (default)"
|
||||||
|
)
|
||||||
|
backup.add_argument(
|
||||||
|
'--enable-backup',
|
||||||
|
action='store_true',
|
||||||
|
default=None,
|
||||||
|
help="Enable member backup"
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--weight',
|
'--weight',
|
||||||
metavar='<weight>',
|
metavar='<weight>',
|
||||||
|
@ -197,6 +210,19 @@ class SetMember(command.Command):
|
||||||
metavar='<name>',
|
metavar='<name>',
|
||||||
help="Set the name of the member"
|
help="Set the name of the member"
|
||||||
)
|
)
|
||||||
|
backup = parser.add_mutually_exclusive_group()
|
||||||
|
backup.add_argument(
|
||||||
|
'--disable-backup',
|
||||||
|
action='store_true',
|
||||||
|
default=None,
|
||||||
|
help="Disable member backup (default)"
|
||||||
|
)
|
||||||
|
backup.add_argument(
|
||||||
|
'--enable-backup',
|
||||||
|
action='store_true',
|
||||||
|
default=None,
|
||||||
|
help="Enable member backup"
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--weight',
|
'--weight',
|
||||||
metavar='<weight>',
|
metavar='<weight>',
|
||||||
|
|
|
@ -269,6 +269,8 @@ def get_member_attrs(client_manager, parsed_args):
|
||||||
'pool',
|
'pool',
|
||||||
client_manager.load_balancer.member_list
|
client_manager.load_balancer.member_list
|
||||||
),
|
),
|
||||||
|
'enable_backup': ('backup', lambda x: True),
|
||||||
|
'disable_backup': ('backup', lambda x: False),
|
||||||
'weight': ('weight', int),
|
'weight': ('weight', int),
|
||||||
'subnet_id': (
|
'subnet_id': (
|
||||||
'subnet_id',
|
'subnet_id',
|
||||||
|
|
|
@ -115,6 +115,7 @@ L7RULE_ATTRS = {
|
||||||
MEMBER_ATTRS = {
|
MEMBER_ATTRS = {
|
||||||
"project_id": uuidutils.generate_uuid(dashed=True),
|
"project_id": uuidutils.generate_uuid(dashed=True),
|
||||||
"name": "test-member",
|
"name": "test-member",
|
||||||
|
"backup": False,
|
||||||
"weight": 1,
|
"weight": 1,
|
||||||
"admin_state_up": True,
|
"admin_state_up": True,
|
||||||
"subnet_id": uuidutils.generate_uuid(dashed=True),
|
"subnet_id": uuidutils.generate_uuid(dashed=True),
|
||||||
|
|
|
@ -90,11 +90,12 @@ class TestCreateMember(TestMember):
|
||||||
'protocol_port': self._mem.protocol_port,
|
'protocol_port': self._mem.protocol_port,
|
||||||
'weight': self._mem.weight,
|
'weight': self._mem.weight,
|
||||||
'admin_state_up': True,
|
'admin_state_up': True,
|
||||||
'pool_id': self._mem.pool_id}
|
'pool_id': self._mem.pool_id,
|
||||||
|
'backup': False}
|
||||||
|
|
||||||
arglist = ['pool_id', '--address', '192.0.2.122',
|
arglist = ['pool_id', '--address', '192.0.2.122',
|
||||||
'--protocol-port', '80',
|
'--protocol-port', '80',
|
||||||
'--weight', '1', '--enable']
|
'--weight', '1', '--enable', '--disable-backup']
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('address', '192.0.2.122'),
|
('address', '192.0.2.122'),
|
||||||
('protocol_port', 80),
|
('protocol_port', 80),
|
||||||
|
@ -108,7 +109,8 @@ class TestCreateMember(TestMember):
|
||||||
'member': {'ip_address': '192.0.2.122',
|
'member': {'ip_address': '192.0.2.122',
|
||||||
'protocol_port': self._mem.protocol_port,
|
'protocol_port': self._mem.protocol_port,
|
||||||
'weight': self._mem.weight,
|
'weight': self._mem.weight,
|
||||||
'admin_state_up': True}})
|
'admin_state_up': True,
|
||||||
|
'backup': False}})
|
||||||
|
|
||||||
|
|
||||||
class TestMemberDelete(TestMember):
|
class TestMemberDelete(TestMember):
|
||||||
|
@ -140,9 +142,10 @@ class TestMemberSet(TestMember):
|
||||||
def test_member_set(self, mock_attrs):
|
def test_member_set(self, mock_attrs):
|
||||||
mock_attrs.return_value = {'pool_id': 'test_pool_id',
|
mock_attrs.return_value = {'pool_id': 'test_pool_id',
|
||||||
'member_id': 'test_mem_id',
|
'member_id': 'test_mem_id',
|
||||||
'name': 'new_name'}
|
'name': 'new_name',
|
||||||
|
'backup': True}
|
||||||
arglist = ['test_pool_id', 'test_mem_id', '--name',
|
arglist = ['test_pool_id', 'test_mem_id', '--name',
|
||||||
'new_name']
|
'new_name', '--enable-backup']
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('pool', 'test_pool_id'),
|
('pool', 'test_pool_id'),
|
||||||
('member', 'test_mem_id'),
|
('member', 'test_mem_id'),
|
||||||
|
@ -153,7 +156,8 @@ class TestMemberSet(TestMember):
|
||||||
self.cmd.take_action(parsed_args)
|
self.cmd.take_action(parsed_args)
|
||||||
self.api_mock.member_set.assert_called_with(
|
self.api_mock.member_set.assert_called_with(
|
||||||
pool_id='test_pool_id', member_id='test_mem_id',
|
pool_id='test_pool_id', member_id='test_mem_id',
|
||||||
json={'member': {'name': 'new_name'}})
|
json={'member': {'name': 'new_name',
|
||||||
|
'backup': True}})
|
||||||
|
|
||||||
|
|
||||||
class TestMemberShow(TestMember):
|
class TestMemberShow(TestMember):
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Optional backup argument for member, in loadbalancer member create,
|
||||||
|
and loadbalancer member set.
|
Loading…
Reference in New Issue