[PATCH] Added git ignore for pycharm project dir
by pgagne@redhat.com
From: Perry Gagne <pgagne(a)redhat.com>
I know some of use use pycharm, so I wasn't sure if this annoyed other
people but pycharm creates this directory to store all its settings.
We probably want to ignore it, so it doesn't show up anymore. Thought I
suggest a patch to do it.
Signed-off-by: Perry Gagne <pgagne(a)redhat.com>
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitignore b/.gitignore
index 45da7da..8301d8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,9 @@
Logs/
build/
+#Intelij (Pycharm) project directory
+.idea/
+
# vim swap files
*.swp
*.swo
--
2.21.3
3 years, 11 months
[PATCH] docs: add Recipes.ENRT.BondRecipe documentation
by aloughla@redhat.com
From: Aniss Loughlam <aloughla(a)redhat.com>
Signed-off-by: Aniss Loughlam <aloughla(a)redhat.com>
---
lnst/Recipes/ENRT/BondRecipe.py | 141 +++++++++++++++++++++++++++++++-
1 file changed, 140 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py
index 16b80e9..cd5742b 100644
--- a/lnst/Recipes/ENRT/BondRecipe.py
+++ b/lnst/Recipes/ENRT/BondRecipe.py
@@ -11,6 +11,40 @@ from lnst.Devices import BondDevice
class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
BaseEnrtRecipe):
+ """
+ This recipe implements Enrt testing for a network scenario that looks
+ as follows
+
+ .. code-block:: none
+
+ .--------.
+ .----------------+ |
+ | .-------+ switch +-------.
+ | | '--------' |
+ .-------------------. |
+ | | bond0 | | |
+ | .---'--. .---'--. | .---'--.
+ .----|-| eth0 |-| eth1 |-|----. .----| eth0 |----.
+ | | '------' '------' | | | '------' |
+ | '-------------------' | | |
+ | | | |
+ | host1 | | host2 |
+ '-----------------------------' '----------------'
+
+ The recipe provides additional recipe parameters to configure the bonding
+ device.
+
+ :param bonding_mode:
+ (mandatory test parameter) the bonding mode to be configured on
+ the bond0 device.
+ :param miimon_value:
+ (mandatory test parameter) the miimon interval to be configured
+ on the bond0 device.
+
+ All sub configurations are included via Mixin classes.
+
+ The actual test machinery is implemented in the :any:`BaseEnrtRecipe` class.
+ """
host1 = HostReq()
host1.eth0 = DeviceReq(label="net1", driver=RecipeParam("driver"))
host1.eth1 = DeviceReq(label="net1", driver=RecipeParam("driver"))
@@ -28,6 +62,17 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
miimon_value = IntParam(mandatory=True)
def test_wide_configuration(self):
+ """
+ Test wide configuration for this recipe involves creating a bonding
+ device using the two matched physical devices as slaves on host1.
+ The bonding mode and miimon interval is configured on the bonding device
+ according to the recipe parameters. IPv4 and IPv6 addresses are added to
+ the bonding device and to the matched ethernet device on host2.
+
+ | host1.bond0 = 192.168.101.1/24 and fc00::1/64
+ | host2.eth0 = 192.168.101.2/24 and fc00::2/64
+ """
+
host1, host2 = self.matched.host1, self.matched.host2
host1.bond0 = BondDevice(mode=self.params.bonding_mode,
miimon=self.params.miimon_value)
@@ -53,6 +98,11 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
return configuration
def generate_test_wide_description(self, config):
+ """
+ Test wide description is extended with the configured IP addresses, the
+ configured bonding slave interfaces, bonding mode and the miimon interval.
+ """
+
host1, host2 = self.matched.host1, self.matched.host2
desc = super().generate_test_wide_description(config)
desc += [
@@ -84,35 +134,124 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
super().test_wide_deconfiguration(config)
def generate_ping_endpoints(self, config):
+ """
+ The ping endpoints for this recipe are the configured bonding device on
+ host1 and the matched ethernet device on host2.
+
+ Returned as::
+
+ [PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)
+ """
return [PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)]
def generate_perf_endpoints(self, config):
+ """
+ The perf endpoints for this recipe are the configured bonding device on
+ host1 and the matched ethernet device on host2. The traffic egresses
+ the bonding device.
+
+ | host1.bond0
+ | host2.eth0
+
+ Returned as::
+
+ [(self.matched.host1.bond0, self.matched.host2.eth0)]
+
+ """
return [(self.matched.host1.bond0, self.matched.host2.eth0)]
@property
def offload_nics(self):
+ """
+ The `offload_nics` property value for this scenario is a list containing
+ the configured bonding device on host1 and the matched ethernet device
+ on host2.
+
+ | host1.bond0
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`OffloadSubConfigMixin`
+ class and :any:`OffloadSubConfigMixin.offload_nics`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def mtu_hw_config_dev_list(self):
+ """
+ The `mtu_hw_config_dev_list` property value for this scenario is a list
+ containing the configured bonding device on host1 and the matched ethernet
+ device on host2.
+
+ | host1.bond0
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`MTUHWConfigMixin`
+ class and :any:`MTUHWConfigMixin.mtu_hw_config_dev_list`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def coalescing_hw_config_dev_list(self):
+ """
+ The `coalescing_hw_config_dev_list` property value for this scenario is a
+ list containing the matched physical devices used to create the bonding
+ device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`CoalescingHWConfigMixin`
+ class and :any:`CoalescingHWConfigMixin.coalescing_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def dev_interrupt_hw_config_dev_list(self):
+ """
+ The `dev_interrupt_hw_config_dev_list` property value for this scenario
+ is a list containing the matched physical devices used to create the
+ bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host1.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`DevInterruptHWConfigMixin` class and
+ :any:`CoalescingHWConfigMixin.coalescing_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def parallel_stream_qdisc_hw_config_dev_list(self):
+ """
+ The `parallel_stream_qdisc_hw_config_dev_list` property value for this
+ scenario is a list containing the matched physical devices used to create
+ the bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`ParallelStreamQDiscHWConfigMixin` class and
+ :any:`ParallelStreamQDiscHWConfigMixin.parallel_stream_qdisc_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def no_pause_frames_dev_list(self):
+ """
+ The `parallel_stream_qdisc_hw_config_dev_list` property value for this
+ scenario is a list containing the matched physical devices used to create
+ the bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`class DisablePauseFramesHWConfigMixin`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
- self.matched.host2.eth0]
+ self.matched.host2.eth0]
--
2.25.4
3 years, 11 months
[PATCH 1/6] Recipes.ENRT.ConfigMixins: remove logic from configure_dev_attribute
by Jan Tluka
The configure_dev_attribute should do whatever caller wants and the
logic should be move from this method to caller level.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
.../ENRT/ConfigMixins/BaseHWConfigMixin.py | 42 ++++++++++---------
1 file changed, 22 insertions(+), 20 deletions(-)
diff --git a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
index 633a0fe6..29854ee6 100644
--- a/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
+++ b/lnst/Recipes/ENRT/ConfigMixins/BaseHWConfigMixin.py
@@ -10,29 +10,31 @@ class BaseHWConfigMixin(object):
def _configure_dev_attribute(self, config, dev_list, attr_name, value):
hw_config = config.hw_config
- if value:
- attr_cfg = hw_config[attr_name + "_configuration"] = {}
- for dev in dev_list:
- attr_cfg[dev] = {}
- attr_cfg[dev]["original"] = getattr(dev, attr_name)
- setattr(dev, attr_name, value)
- attr_cfg[dev]["configured"] = getattr(dev, attr_name)
+ attr_cfg = hw_config[attr_name + "_configuration"] = {}
+ for dev in dev_list:
+ attr_cfg[dev] = {}
+ attr_cfg[dev]["original"] = getattr(dev, attr_name)
+ setattr(dev, attr_name, value)
+ attr_cfg[dev]["configured"] = getattr(dev, attr_name)
def _describe_dev_attribute(self, config, attr_name):
hw_config = config.hw_config
res = []
- attr = hw_config.get(attr_name + "_configuration", None)
- if attr:
- for dev, info in attr.items():
- res.append(
- "{}.{}.{} configured to {}, original value {}".format(
- dev.host.hostid,
- dev.name,
- attr_name,
- info["configured"],
- info["original"],
- )
- )
- else:
+ try:
+ attr = hw_config[attr_name + "_configuration"]
+ except:
res.append("{} configuration skipped.".format(attr_name))
+ return res
+
+ for dev, info in attr.items():
+ res.append(
+ "{}.{}.{} configured to {}, original value {}".format(
+ dev.host.hostid,
+ dev.name,
+ attr_name,
+ info["configured"],
+ info["original"],
+ )
+ )
+
return res
--
2.21.1
3 years, 11 months
[PATCH] docs: add Recipes.ENRT.BondRecipe documentation
by aloughla@redhat.com
From: Aniss Loughlam <aloughla(a)redhat.com>
Signed-off-by: Aniss Loughlam <aloughla(a)redhat.com>
---
lnst/Recipes/ENRT/BondRecipe.py | 131 +++++++++++++++++++++++++++++++-
1 file changed, 130 insertions(+), 1 deletion(-)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py
index 16b80e9..2d666b4 100644
--- a/lnst/Recipes/ENRT/BondRecipe.py
+++ b/lnst/Recipes/ENRT/BondRecipe.py
@@ -11,6 +11,31 @@ from lnst.Devices import BondDevice
class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
BaseEnrtRecipe):
+ """
+ This recipe implements Enrt testing for a network scenario that looks
+ as follows
+
+ .. code-block:: none
+
+ .--------.
+ .----------------+ |
+ | .-------+ switch +-------.
+ | | '--------' |
+ .-------------------. |
+ | | bond0 | | |
+ | .---'--. .---'--. | .---'--.
+ .----|-| eth0 |-| eth1 |-|----. .----| eth0 |----.
+ | | '------' '------' | | | '------' |
+ | '-------------------' | | |
+ | | | |
+ | host1 | | host2 |
+ '-----------------------------' '----------------'
+
+ All sub configurations are included via Mixin classes.
+
+ The actual test machinery is implemented in the :any:`BaseEnrtRecipe` class.
+ """
+
host1 = HostReq()
host1.eth0 = DeviceReq(label="net1", driver=RecipeParam("driver"))
host1.eth1 = DeviceReq(label="net1", driver=RecipeParam("driver"))
@@ -28,6 +53,17 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
miimon_value = IntParam(mandatory=True)
def test_wide_configuration(self):
+ """
+ Test wide configuration for this recipe involves creating a bonding
+ device using the two matched physical devices on host1 as slaves and set
+ bonding parameters such bonding_mode and miiomon_value.
+ Add IPv4 and IPv6 addresses to the bonding device on host1 and to the
+ matched ethernet device on host2.
+
+ | host1.bond0 = 192.168.101.1/24 and fc00::1/64
+ | host2.eth0 = 192.168.101.2/24 and fc00::2/64
+ """
+
host1, host2 = self.matched.host1, self.matched.host2
host1.bond0 = BondDevice(mode=self.params.bonding_mode,
miimon=self.params.miimon_value)
@@ -53,6 +89,10 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
return configuration
def generate_test_wide_description(self, config):
+ """
+ Test wide description is extended with the configured addresses.
+ """
+
host1, host2 = self.matched.host1, self.matched.host2
desc = super().generate_test_wide_description(config)
desc += [
@@ -84,35 +124,124 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
super().test_wide_deconfiguration(config)
def generate_ping_endpoints(self, config):
+ """
+ The ping endpoints for this recipe are the matched bonding device on
+ host1 and the matched ethernet device on host2.
+
+ Returned as::
+
+ [PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)
+ """
return [PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)]
def generate_perf_endpoints(self, config):
+ """
+ The perf endpoints for this recipe are the matched bonding device on
+ host1 and the matched ethernet device on host2. The traffic egresses
+ the bonding device.
+
+ | host1.bond0
+ | host2.eth0
+
+ Returned as::
+
+ [(self.matched.host1.bond0, self.matched.host2.eth0)]
+
+ """
return [(self.matched.host1.bond0, self.matched.host2.eth0)]
@property
def offload_nics(self):
+ """
+ The `offload_nics` property value for this scenario is a list containing
+ the configured bonding device on host1 and the matched ethernet device
+ on host2.
+
+ | host1.bond0
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`OffloadSubConfigMixin`
+ class and :any:`OffloadSubConfigMixin.offload_nics`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def mtu_hw_config_dev_list(self):
+ """
+ The `mtu_hw_config_dev_list` property value for this scenario is a list
+ containing the configured bonding device on host1 and the matched ethernet
+ device on host2.
+
+ | host1.bond0
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`MTUHWConfigMixin`
+ class and :any:`MTUHWConfigMixin.mtu_hw_config_dev_list`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def coalescing_hw_config_dev_list(self):
+ """
+ The `coalescing_hw_config_dev_list` property value for this scenario is a
+ list containing the matched physical devices used to create the bonding
+ device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`CoalescingHWConfigMixin`
+ class and :any:`CoalescingHWConfigMixin.coalescing_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def dev_interrupt_hw_config_dev_list(self):
+ """
+ The `dev_interrupt_hw_config_dev_list` property value for this scenario
+ is a list containing the matched physical devices used to create the
+ bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host1.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`DevInterruptHWConfigMixin` class and
+ :any:`CoalescingHWConfigMixin.coalescing_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def parallel_stream_qdisc_hw_config_dev_list(self):
+ """
+ The `parallel_stream_qdisc_hw_config_dev_list` property value for this
+ scenario is a list containing the matched physical devices used to create
+ the bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`ParallelStreamQDiscHWConfigMixin` class and
+ :any:`ParallelStreamQDiscHWConfigMixin.parallel_stream_qdisc_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def no_pause_frames_dev_list(self):
+ """
+ The `parallel_stream_qdisc_hw_config_dev_list` property value for this
+ scenario is a list containing the matched physical devices used to create
+ the bonding device on host1 and the matched ethernet device on host2.
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`class DisablePauseFramesHWConfigMixin`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
- self.matched.host2.eth0]
+ self.matched.host2.eth0]
--
2.25.4
3 years, 11 months
[PATCH 2/2] docs:add Recipes.ENRT.BondRecipe documentation
by aloughla@redhat.com
From: Aniss Loughlam <aloughla(a)redhat.com>
Signed-off-by: Aniss Loughlam <aloughla(a)redhat.com>
---
lnst/Recipes/ENRT/BondRecipe.py | 111 ++++++++++++++++++++++++++++++++
1 file changed, 111 insertions(+)
diff --git a/lnst/Recipes/ENRT/BondRecipe.py b/lnst/Recipes/ENRT/BondRecipe.py
index 07d7cfc..0941100 100644
--- a/lnst/Recipes/ENRT/BondRecipe.py
+++ b/lnst/Recipes/ENRT/BondRecipe.py
@@ -11,6 +11,33 @@ from lnst.Devices import BondDevice
class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
BaseEnrtRecipe):
+ """
+ This recipe implements Enrt testing for a network scenario that looks
+ as follows
+
+ .. code-block:: none
+
+ .--------.
+ .----------------+ |
+ | .-------+ switch +-------.
+ | | '--------' |
+ .-------------------. |
+ | | bond0 | | |
+ | .---'--. .---'--. | .---'--.
+ .----|-| eth0 |-| eth1 |-|----. .----| eth0 |----.
+ | | '------' '------' | | | '------' |
+ | '-------------------' | | |
+ | | | |
+ | host1 | | host2 |
+ '-----------------------------' '----------------'
+
+ All sub configurations are included via Mixin classes.
+
+ The actual test machinery is implemented in the :any:`BaseEnrtRecipe` class.
+ """
+
+
+
host1 = HostReq()
host1.eth0 = DeviceReq(label="net1", driver=RecipeParam("driver"))
host1.eth1 = DeviceReq(label="net1", driver=RecipeParam("driver"))
@@ -28,6 +55,10 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
miimon_value = IntParam(mandatory=True)
def test_wide_configuration(self):
+ """
+ Test wide configuration for this recipe involves creating a bond0
+ device using two slave device eth0 and eth1 on host1
+ """
host1, host2 = self.matched.host1, self.matched.host2
host1.bond0 = BondDevice(mode=self.params.bonding_mode,
miimon=self.params.miimon_value)
@@ -53,6 +84,10 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
return configuration
def generate_test_wide_description(self, config):
+ """
+ Test wide description is extended with the configured VLAN tunnels
+ and their IP addresses
+ """
host1, host2 = self.matched.host1, self.matched.host2
desc = super().generate_test_wide_description(config)
desc += [
@@ -79,39 +114,115 @@ class BondRecipe(CommonHWSubConfigMixin, OffloadSubConfigMixin,
return desc
def test_wide_deconfiguration(self, config):
+ "" # overriding the parent docstring
del config.test_wide_devices
super().test_wide_deconfiguration(config)
def generate_ping_endpoints(self, config):
+ """
+ The ping endpoints are host1.bond0 and host2.eht0
+ """
return [PingEndpoints(self.matched.host1.bond0, self.matched.host2.eth0)]
def generate_perf_endpoints(self, config):
+ """
+ The perf endpoints for this recipe are the host1.bond0 and host2.eth0
+
+ Returned as::
+
+ [(self.matched.host1.bond0, self.matched.host2.eth0)]
+
+ """
return [(self.matched.host1.bond0, self.matched.host2.eth0)]
@property
def offload_nics(self):
+ """
+ The `offload_nics` property value for this scenario is a list of the physical
+ devices carrying data of the configured bond:
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`OffloadSubConfigMixin`
+ class and :any:`OffloadSubConfigMixin.offload_nics`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def mtu_hw_config_dev_list(self):
+ """
+ The `mtu_hw_config_dev_list` property value for this scenario is a
+ list of the configured bond device and the underlying physical
+ devices:
+
+ | host1.eth0, host1.eth1, host1.bond0
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`MTUHWConfigMixin`
+ class and :any:`MTUHWConfigMixin.mtu_hw_config_dev_list`.
+ """
return [self.matched.host1.bond0, self.matched.host2.eth0]
@property
def coalescing_hw_config_dev_list(self):
+ """
+ The `mtu_hw_config_dev_list` property value for this scenario is a
+ is a list of the physical devices carrying data of the configured
+ bond:
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`CoalescingHWConfigMixin`
+ class and :any:`CoalescingHWConfigMixin.coalescing_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def dev_interrupt_hw_config_dev_list(self):
+ """
+ The `dev_interrupt_hw_config_dev_list` property value for this scenario
+ is a list of the physical devices carrying data of the configured bond:
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see :any:`DevInterruptHWConfigMixin`
+ class and :any:`DevInterruptHWConfigMixin.dev_interrupt_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def parallel_stream_qdisc_hw_config_dev_list(self):
+ """
+ The `parallel_stream_qdisc_hw_config_dev_list` property value for
+ this scenario is a list of the physical devices carrying data of the
+ configured bond:
+
+ | host1.eth0, host.eth1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`ParallelStreamQDiscHWConfigMixin` class and
+ :any:`ParallelStreamQDiscHWConfigMixin.parallel_stream_qdisc_hw_config_dev_list`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1,
self.matched.host2.eth0]
@property
def no_pause_frames_dev_list(self):
+ """
+ The `no pause frames dev list` property value for this scenario is a list of
+ the physical devices carrying data of the configured bond:
+
+ | host1.eth0, host1.eht1
+ | host2.eth0
+
+ For detailed explanation of this property see
+ :any:`class DisablePauseFramesHWConfigMixin`.
+ """
return [self.matched.host1.eth0, self.matched.host1.eth1, self.matched.host2.eth0]
--
2.24.1
3 years, 11 months
Documentation available on readthedocs
by Ondrej Lichtner
Hi all,
after a little bit of tinkering and pushing several small patches I
managed to get the documentation get hosted on readthedocs.org:
https://lnst.readthedocs.io/en/latest/
This will get automatically updated every time we push new commits on
top of the master branch, but you may need to Ctrl+F5 sometimes to hard
refresh the changed pages to refresh whatever is cached.
Feel free to report any issues/improvements for the documentation, we
know it's far from perfect and not complete yet and we'll continue
working on it.
-Ondrej
3 years, 11 months