Merge "Support tags for Octavia pool member"

This commit is contained in:
Zuul 2019-03-22 00:35:44 +00:00 committed by Gerrit Code Review
commit 3b34ef05d2
4 changed files with 19 additions and 2 deletions

View File

@ -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):

View File

@ -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 = '''

View File

@ -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)

View File

@ -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.