aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/LoadBalancerUtil.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python/LoadBalancerUtil.py')
-rw-r--r--resources/libraries/python/LoadBalancerUtil.py184
1 files changed, 101 insertions, 83 deletions
diff --git a/resources/libraries/python/LoadBalancerUtil.py b/resources/libraries/python/LoadBalancerUtil.py
index 77f6412973..c8e6c0ddd7 100644
--- a/resources/libraries/python/LoadBalancerUtil.py
+++ b/resources/libraries/python/LoadBalancerUtil.py
@@ -13,12 +13,14 @@
"""Loadbalancer util library."""
-from socket import htonl
from ipaddress import ip_address
+from socket import htonl
+
from resources.libraries.python.topology import NodeType, Topology
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
-class LoadBalancerUtil(object):
+
+class LoadBalancerUtil:
"""Basic Loadbalancer parameter configuration."""
@staticmethod
@@ -43,28 +45,33 @@ class LoadBalancerUtil(object):
:returns: Nothing.
:raises ValueError: If the node has an unknown node type.
"""
- if node['type'] == NodeType.DUT:
- ip4_src_addr = ip_address(unicode(kwargs.pop('ip4_src_addr',
- '255.255.255.255')))
- ip6_src_addr = ip_address(unicode(kwargs.pop('ip6_src_addr',\
- 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff')))
- flow_timeout = kwargs.pop('flow_timeout', 40)
- sticky_buckets_per_core = kwargs.pop('buckets_per_core', 1024)
-
- cmd = 'lb_conf'
- err_msg = 'Failed to set lb conf on host {host}'.format(
- host=node['host'])
-
- args = dict(ip4_src_address=str(ip4_src_addr),
- ip6_src_address=str(ip6_src_addr),
- sticky_buckets_per_core=sticky_buckets_per_core,
- flow_timeout=flow_timeout)
+ if node[u"type"] == NodeType.DUT:
+ ip4_src_addr = ip_address(
+ kwargs.pop(u"ip4_src_addr", u"255.255.255.255")
+ )
+ ip6_src_addr = ip_address(
+ kwargs.pop(
+ u"ip6_src_addr", u"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
+ )
+ )
+ flow_timeout = kwargs.pop(u"flow_timeout", 40)
+ sticky_buckets_per_core = kwargs.pop(u"buckets_per_core", 1024)
+
+ cmd = u"lb_conf"
+ err_msg = f"Failed to set lb conf on host {node[u'host']}"
+ args = dict(
+ ip4_src_address=str(ip4_src_addr),
+ ip6_src_address=str(ip6_src_addr),
+ sticky_buckets_per_core=sticky_buckets_per_core,
+ flow_timeout=flow_timeout
+ )
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
else:
- raise ValueError('Node {host} has unknown NodeType: "{type}"'
- .format(host=node['host'], type=node['type']))
+ raise ValueError(
+ f"Node {node[u'host']} has unknown NodeType: '{node[u'type']}'"
+ )
@staticmethod
def vpp_lb_add_del_vip(node, **kwargs):
@@ -91,40 +98,44 @@ class LoadBalancerUtil(object):
:returns: Nothing.
:raises ValueError: If the node has an unknown node type.
"""
- if node['type'] == NodeType.DUT:
- vip_addr = kwargs.pop('vip_addr', '0.0.0.0')
- protocol = kwargs.pop('protocol', 255)
- port = kwargs.pop('port', 0)
- encap = kwargs.pop('encap', 0)
- dscp = kwargs.pop('dscp', 0)
- srv_type = kwargs.pop('srv_type', 0)
- target_port = kwargs.pop('target_port', 0)
- node_port = kwargs.pop('node_port', 0)
- new_len = kwargs.pop('new_len', 1024)
- is_del = kwargs.pop('is_del', 0)
-
- cmd = 'lb_add_del_vip'
- err_msg = 'Failed to add vip on host {host}'.format(
- host=node['host'])
-
- vip_addr = ip_address(unicode(vip_addr)).packed
- args = dict(pfx={'len': 128,
- 'address': {'un': {'ip4': vip_addr}, 'af': 0}},
- protocol=protocol,
- port=port,
- encap=htonl(encap),
- dscp=dscp,
- type=srv_type,
- target_port=target_port,
- node_port=node_port,
- new_flows_table_length=int(new_len),
- is_del=is_del)
+ if node[u"type"] == NodeType.DUT:
+ vip_addr = kwargs.pop(u"vip_addr", "0.0.0.0")
+ protocol = kwargs.pop(u"protocol", 255)
+ port = kwargs.pop(u"port", 0)
+ encap = kwargs.pop(u"encap", 0)
+ dscp = kwargs.pop(u"dscp", 0)
+ srv_type = kwargs.pop(u"srv_type", 0)
+ target_port = kwargs.pop(u"target_port", 0)
+ node_port = kwargs.pop(u"node_port", 0)
+ new_len = kwargs.pop(u"new_len", 1024)
+ is_del = kwargs.pop(u"is_del", 0)
+
+ cmd = u"lb_add_del_vip"
+ err_msg = f"Failed to add vip on host {node[u'host']}"
+
+ vip_addr = ip_address(vip_addr).packed
+ args = dict(
+ pfx={
+ u"len": 128,
+ u"address": {u"un": {u"ip": vip_addr}, u"af": 0}
+ },
+ protocol=protocol,
+ port=port,
+ encap=htonl(encap),
+ dscp=dscp,
+ type=srv_type,
+ target_port=target_port,
+ node_port=node_port,
+ new_flows_table_length=int(new_len),
+ is_del=is_del
+ )
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
else:
- raise ValueError('Node {host} has unknown NodeType: "{type}"'
- .format(host=node['host'], type=node['type']))
+ raise ValueError(
+ f"Node {node[u'host']} has unknown NodeType: '{node[u'type']}'"
+ )
@staticmethod
def vpp_lb_add_del_as(node, **kwargs):
@@ -146,34 +157,38 @@ class LoadBalancerUtil(object):
:returns: Nothing.
:raises ValueError: If the node has an unknown node type.
"""
- if node['type'] == NodeType.DUT:
- cmd = 'lb_add_del_as'
- err_msg = 'Failed to add lb as on host {host}'.format(
- host=node['host'])
-
- vip_addr = kwargs.pop('vip_addr', '0.0.0.0')
- protocol = kwargs.pop('protocol', 255)
- port = kwargs.pop('port', 0)
- as_addr = kwargs.pop('as_addr', '0.0.0.0')
- is_del = kwargs.pop('is_del', 0)
- is_flush = kwargs.pop('is_flush', 0)
-
- vip_addr = ip_address(unicode(vip_addr)).packed
- as_addr = ip_address(unicode(as_addr)).packed
-
- args = dict(pfx={'len': 128,
- 'address': {'un': {'ip4': vip_addr}, 'af': 0}},
- protocol=protocol,
- port=port,
- as_address={'un': {'ip4': as_addr}, 'af': 0},
- is_del=is_del,
- is_flush=is_flush)
+ if node[u"type"] == NodeType.DUT:
+ cmd = u"lb_add_del_as"
+ err_msg = f"Failed to add lb as on host {node[u'host']}"
+
+ vip_addr = kwargs.pop(u"vip_addr", "0.0.0.0")
+ protocol = kwargs.pop(u"protocol", 255)
+ port = kwargs.pop(u"port", 0)
+ as_addr = kwargs.pop(u"as_addr", u"0.0.0.0")
+ is_del = kwargs.pop(u"is_del", 0)
+ is_flush = kwargs.pop(u"is_flush", 0)
+
+ vip_addr = ip_address(vip_addr).packed
+ as_addr = ip_address(as_addr).packed
+
+ args = dict(
+ pfx={
+ u"len": 128,
+ u"address": {u"un": {u"ip": vip_addr}, u"af": 0}
+ },
+ protocol=protocol,
+ port=port,
+ as_address={u"un": {u"ip": as_addr}, u"af": 0},
+ is_del=is_del,
+ is_flush=is_flush
+ )
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
else:
- raise ValueError('Node {host} has unknown NodeType: "{type}"'
- .format(host=node['host'], type=node['type']))
+ raise ValueError(
+ f"Node {node[u'host']} has unknown NodeType: '{node[u'type']}'"
+ )
@staticmethod
def vpp_lb_add_del_intf_nat4(node, **kwargs):
@@ -190,18 +205,21 @@ class LoadBalancerUtil(object):
:returns: Nothing.
:raises ValueError: If the node has an unknown node type.
"""
- if node['type'] == NodeType.DUT:
- cmd = 'lb_add_del_intf_nat4'
- err_msg = 'Failed to add interface nat4 on host {host}'.format(
- host=node['host'])
+ if node[u"type"] == NodeType.DUT:
+ cmd = u"lb_add_del_intf_nat4"
+ err_msg = f"Failed to add interface nat4 on host {node[u'host']}"
- is_add = kwargs.pop('is_add', True)
- interface = kwargs.pop('interface', 0)
+ is_add = kwargs.pop(u"is_add", True)
+ interface = kwargs.pop(u"interface", 0)
sw_if_index = Topology.get_interface_sw_index(node, interface)
- args = dict(is_add=is_add, sw_if_index=sw_if_index)
+ args = dict(
+ is_add=is_add,
+ sw_if_index=sw_if_index
+ )
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
else:
- raise ValueError('Node {host} has unknown NodeType: "{type}"'
- .format(host=node['host'], type=node['type']))
+ raise ValueError(
+ f"Node {node[u'host']} has unknown NodeType: '{node[u'type']}'"
+ )