NSXP: LB member update method

Change-Id: I297fbc5cbc3eb3ac9f8da777a880084722995e8a
This commit is contained in:
Kobi Samoray 2019-02-26 16:44:29 +02:00
parent f34a1407ce
commit d56470a910
1 changed files with 24 additions and 0 deletions

View File

@ -22,6 +22,7 @@ import six
from vmware_nsxlib._i18n import _
from vmware_nsxlib.v3 import exceptions as nsxlib_exc
from vmware_nsxlib.v3.policy import constants
from vmware_nsxlib.v3.policy.core_resources import IGNORE
from vmware_nsxlib.v3.policy.core_resources import NsxPolicyResourceBase
from vmware_nsxlib.v3.policy import lb_defs
@ -450,6 +451,29 @@ class NsxPolicyLoadBalancerPoolApi(NsxPolicyResourceBase):
self.update(lb_pool_id, members=lb_pool_members)
return lb_pool_member
def update_pool_member(
self, lb_pool_id, ip_address, port=None,
display_name=None, weight=None,
tenant=constants.POLICY_INFRA_TENANT):
lb_pool_def = lb_defs.LBPoolDef(
lb_pool_id=lb_pool_id, tenant=tenant)
lb_pool = self.policy_api.get(lb_pool_def)
lb_pool_members = lb_pool.get('members', [])
member_to_update = filter(
lambda x: (x.get('ip_address') == ip_address and
x.get('port') == port), lb_pool_members)
if member_to_update:
member_to_update[0]['display_name'] = display_name
member_to_update[0]['weight'] = weight
self.update(lb_pool_id, members=lb_pool_members)
else:
ops = ('Updating member %(address)s:%(port)d failed, not found in '
'pool %(pool)s', {'address': ip_address,
'port': port,
'pool': lb_pool_id})
raise nsxlib_exc.ResourceNotFound(manager=lb_pool_def,
operation=ops)
def remove_pool_member(self, lb_pool_id, ip_address, port=None,
tenant=constants.POLICY_INFRA_TENANT):
lb_pool_def = lb_defs.LBPoolDef(