Support tags for Octavia pool member
The API doc: https://developer.openstack.org/api-ref/load-balancer/v2/index.html#create-member Change-Id: I6c5aaf116916eb197a62d89561d4d20236006581 Story: #2005219 Task: #29998
This commit is contained in:
parent
97f2636dc7
commit
f3c08330fe
@ -15,6 +15,7 @@ from heat.common.i18n import _
|
|||||||
from heat.engine import constraints
|
from heat.engine import constraints
|
||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.openstack.octavia import octavia_base
|
from heat.engine.resources.openstack.octavia import octavia_base
|
||||||
|
from heat.engine import support
|
||||||
from heat.engine import translation
|
from heat.engine import translation
|
||||||
|
|
||||||
|
|
||||||
@ -26,10 +27,10 @@ class PoolMember(octavia_base.OctaviaBase):
|
|||||||
|
|
||||||
PROPERTIES = (
|
PROPERTIES = (
|
||||||
POOL, ADDRESS, PROTOCOL_PORT, MONITOR_ADDRESS, MONITOR_PORT,
|
POOL, ADDRESS, PROTOCOL_PORT, MONITOR_ADDRESS, MONITOR_PORT,
|
||||||
WEIGHT, ADMIN_STATE_UP, SUBNET,
|
WEIGHT, ADMIN_STATE_UP, SUBNET, TAGS
|
||||||
) = (
|
) = (
|
||||||
'pool', 'address', 'protocol_port', 'monitor_address', 'monitor_port',
|
'pool', 'address', 'protocol_port', 'monitor_address', 'monitor_port',
|
||||||
'weight', 'admin_state_up', 'subnet'
|
'weight', 'admin_state_up', 'subnet', 'tags'
|
||||||
)
|
)
|
||||||
|
|
||||||
ATTRIBUTES = (
|
ATTRIBUTES = (
|
||||||
@ -101,6 +102,13 @@ class PoolMember(octavia_base.OctaviaBase):
|
|||||||
constraints.CustomConstraint('neutron.subnet')
|
constraints.CustomConstraint('neutron.subnet')
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
TAGS: properties.Schema(
|
||||||
|
properties.Schema.LIST,
|
||||||
|
_('A list of simple strings assigned to the member. The property '
|
||||||
|
'is supported with Stein Octavia or newer version.'),
|
||||||
|
update_allowed=True,
|
||||||
|
support_status=support.SupportStatus(version='13.0.0'),
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
def translation_rules(self, props):
|
def translation_rules(self, props):
|
||||||
|
@ -80,6 +80,7 @@ resources:
|
|||||||
weight: 1
|
weight: 1
|
||||||
subnet: sub123
|
subnet: sub123
|
||||||
admin_state_up: True
|
admin_state_up: True
|
||||||
|
tags: ['tag1', 'tag2']
|
||||||
'''
|
'''
|
||||||
|
|
||||||
MONITOR_TEMPLATE = '''
|
MONITOR_TEMPLATE = '''
|
||||||
|
@ -61,6 +61,7 @@ class PoolMemberTest(common.HeatTestCase):
|
|||||||
'weight': 1,
|
'weight': 1,
|
||||||
'subnet_id': '123',
|
'subnet_id': '123',
|
||||||
'admin_state_up': True,
|
'admin_state_up': True,
|
||||||
|
'tags': ['tag1', 'tag2']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
props = self.member.handle_create()
|
props = self.member.handle_create()
|
||||||
@ -95,6 +96,7 @@ class PoolMemberTest(common.HeatTestCase):
|
|||||||
prop_diff = {
|
prop_diff = {
|
||||||
'admin_state_up': False,
|
'admin_state_up': False,
|
||||||
'weight': 2,
|
'weight': 2,
|
||||||
|
'tags': ['tag3', 'tag4']
|
||||||
}
|
}
|
||||||
|
|
||||||
prop_diff = self.member.handle_update(None, None, prop_diff)
|
prop_diff = self.member.handle_update(None, None, prop_diff)
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Support ``tags`` property for the resource ``OS::Octavia::PoolMember``, the
|
||||||
|
property is allowed to be updated as well. The resource tag was introduced
|
||||||
|
in Octavia since Stein release, do not specify tags in Heat template if you are
|
||||||
|
using the previous versions.
|
Loading…
Reference in New Issue
Block a user