[PATCH] remove NetworkManager support
by Jan Tluka
LNST no longer configures the network stack through NetworkManager
and we have no plans to enable it in the future.
This patch removes the configuration entries from lnst-slave.conf config file
and the unused RPC methods from NetTestSlave and Machine code.
I kept the warning log entry if NetworkManager is detected on the slave
machine, as this is still important information.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
install/lnst-slave.conf.in | 7 -------
lnst/Controller/Machine.py | 10 ----------
lnst/Slave/Config.py | 5 -----
lnst/Slave/NetTestSlave.py | 34 ----------------------------------
4 files changed, 56 deletions(-)
diff --git a/install/lnst-slave.conf.in b/install/lnst-slave.conf.in
index 739cd6a5..8c9ab868 100644
--- a/install/lnst-slave.conf.in
+++ b/install/lnst-slave.conf.in
@@ -25,10 +25,3 @@ expiration_period = 7days
#in this option.
#The option accepts one directory path that will be created if it doesn't exist.
log_dir = @slave_logs_dir@
-
-#This option can be used to enable/disable the support of network
-#configuration using NetworkManager on slaves.
-#
-#The feature is highly experimental at the moment, so it is turned off
-#by default.
-use_nm = false
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index e95e58b1..4b9afcba 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -373,7 +373,6 @@ class Machine(object):
self.restore_system_config()
self.cleanup_devices()
self.del_namespaces()
- # self.restore_nm_option()
self.rpc_call("bye")
except:
#cleanup is only meaningful on dynamic interfaces, and should
@@ -571,15 +570,6 @@ class Machine(object):
return SlaveObject(self, cls, obj_ref)
- # def enable_nm(self):
- # return self._rpc_call("enable_nm")
-
- # def disable_nm(self):
- # return self._rpc_call("disable_nm")
-
- # def restore_nm_option(self):
- # return self._rpc_call("restore_nm_option")
-
def __str__(self):
return "[Machine hostname(%s) libvirt_domain(%s) interfaces(%d)]" % \
(self._hostname, self._libvirt_domain, len(self._interfaces))
diff --git a/lnst/Slave/Config.py b/lnst/Slave/Config.py
index e749528f..6c2b948a 100644
--- a/lnst/Slave/Config.py
+++ b/lnst/Slave/Config.py
@@ -23,11 +23,6 @@ class SlaveConfig(Config):
"additive" : False,
"action" : self.optionPath,
"name" : "log_dir"}
- self._options['environment']['use_nm'] = {\
- "value" : True,
- "additive" : False,
- "action" : self.optionBool,
- "name" : "use_nm"}
self._options['environment']['rpcport'] = {\
"value" : DefaultRPCPort,
"additive" : False,
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index 7a942534..e2e8d6d0 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -96,8 +96,6 @@ class SlaveMethods:
self._dynamic_classes = {}
self._dynamic_objects = {}
- self._bkp_nm_opt_val = slave_config.get_option("environment", "use_nm")
-
def hello(self):
logging.info("Recieved a controller connection.")
@@ -117,7 +115,6 @@ class SlaveMethods:
def prepare_machine(self):
self.machine_cleanup()
- self.restore_nm_option()
self._cache.del_old_entries()
self.reset_file_transfers()
@@ -131,10 +128,6 @@ class SlaveMethods:
if check_process_running("NetworkManager"):
logging.warning("=============================================")
logging.warning("NetworkManager is running on a slave machine!")
- if self._slave_config.get_option("environment", "use_nm"):
- logging.warning("Support of NM is still experimental!")
- else:
- logging.warning("Usage of NM is disabled!")
logging.warning("=============================================")
for device in self._if_manager.get_devices():
@@ -516,33 +509,6 @@ class SlaveMethods:
file_handle.close()
self._copy_sources = {}
- def enable_nm(self):
- logging.warning("====================================================")
- logging.warning("Enabling use of NetworkManager on controller request")
- logging.warning("====================================================")
- val = self._slave_config.get_option("environment", "use_nm")
- self._slave_config.set_option("environment", "use_nm", True)
- return val
-
- def disable_nm(self):
- logging.warning("=====================================================")
- logging.warning("Disabling use of NetworkManager on controller request")
- logging.warning("=====================================================")
- val = self._slave_config.get_option("environment", "use_nm")
- self._slave_config.set_option("environment", "use_nm", False)
- return val
-
- def restore_nm_option(self):
- val = self._slave_config.get_option("environment", "use_nm")
- if val == self._bkp_nm_opt_val:
- return val
- logging.warning("=========================================")
- logging.warning("Restoring use_nm option to original value")
- logging.warning("=========================================")
- self._slave_config.set_option("environment", "use_nm",
- self._bkp_nm_opt_val)
- return val
-
def add_namespace(self, netns):
if netns in self._net_namespaces:
logging.debug("Network namespace %s already exists." % netns)
--
2.21.1
3 years, 8 months
[PATCH] lnst.RecipeCommon.Ping: remove unused destination variable
in ping_init
by Jan Tluka
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/RecipeCommon/Ping.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/lnst/RecipeCommon/Ping.py b/lnst/RecipeCommon/Ping.py
index f4286e91..62cbc2ff 100644
--- a/lnst/RecipeCommon/Ping.py
+++ b/lnst/RecipeCommon/Ping.py
@@ -71,7 +71,6 @@ class PingTestAndEvaluate(BaseRecipe):
def ping_init(self, ping_config):
client = ping_config.client
- destination = ping_config.destination
kwargs = self._generate_ping_kwargs(ping_config)
ping = Ping(**kwargs)
return (ping, client)
--
2.21.1
3 years, 8 months
[PATCH] lnst.Slave.NetTestSlave: remove import of unused DeviceParam
class
by Jan Tluka
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/Slave/NetTestSlave.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index 47eb8ced..7a942534 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -38,7 +38,7 @@ from lnst.Common.DeviceRef import DeviceRef
from lnst.Common.LnstError import LnstError
from lnst.Common.DeviceError import DeviceDeleted, DeviceDisabled
from lnst.Common.DeviceError import DeviceConfigValueError
-from lnst.Common.Parameters import Parameters, DeviceParam
+from lnst.Common.Parameters import Parameters
from lnst.Common.IpAddress import ipaddress
from lnst.Common.Version import lnst_version
from lnst.Slave.Job import Job, JobContext
--
2.21.1
3 years, 8 months
[PATCH] lnst.Devices.Device: update the address flags if they have
changed
by Jan Tluka
When IPv6 address is added to an interface there are actually two
RTM_NEWADDR netlink messages sent. The second message is sent
when DAD is complete and tentative flag is removed.
For the second message associated with the same address we have to
check if the flags have changed and update them in the Device instance
to be in sync.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
lnst/Devices/Device.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lnst/Devices/Device.py b/lnst/Devices/Device.py
index e69a297f..112a9276 100644
--- a/lnst/Devices/Device.py
+++ b/lnst/Devices/Device.py
@@ -210,6 +210,13 @@ class Device(object, metaclass=DeviceMeta):
if addr not in self._ip_addrs:
self._ip_addrs.append(addr)
+ else:
+ old_idx = self._ip_addrs.index(addr)
+ addr_old = self._ip_addrs[old_idx]
+ if addr.flags != addr_old.flags:
+ self._ip_addrs.pop(old_idx)
+ self._ip_addrs.append(addr)
+
elif nl_msg['header']['type'] == RTM_DELADDR:
addr = ipaddress(nl_msg.get_attr('IFA_ADDRESS'))
addr.prefixlen = nl_msg["prefixlen"]
--
2.21.1
3 years, 8 months
[PATCH 00/20] code cleanup and minor bug fixes
by Jan Tluka
This is an initial code cleanup after major redesign of LNST.
Most of it is removal of code that cannot be used anymore due to API
change. I did also some pylint checks on the code where I found minor
issues.
Jan Tluka (20):
lnst/Slave/NetTestSlave.py: remove NetTestCommand references
remove already ported IcmpPing and Icmp6Ping test modules
remove legacy PacketAssert test module
remove legacy Iperf test module
remove legacy test_modules
remove deprecated regression_tests
move DEFAULT_TIMEOUT definiton from NetTestCommand to Job
remove legacy TestsCommon
remove legacy NetTestCommand class
remove pyrecipes
lnst/Common/Parameters: fix missing parameter in ListParam type_check
lnst/Common/TestRecipe: fix typo
lnst.RecipeCommon.Perf.Results: remove deprecated __setslice__
BaselineEvaluator: fix missing self handle in describe_group_results
remove obsolete NetConfigDevice module
remove obsolete NmConfigDevice module
lnst.Slave.InterfaceManager: add missing import of DeviceError
remove directory obsolete
remove obsolete recipe_conv.py
remove obsolete recipe-schema.rng
lnst/Common/NetTestCommand.py | 571 -----------
lnst/Common/Parameters.py | 4 +-
lnst/Common/TestsCommon.py | 147 ---
lnst/Controller/Job.py | 3 +-
lnst/Controller/Namespace.py | 2 +-
lnst/Controller/NetNamespace.py | 1 -
.../Perf/Evaluators/BaselineEvaluator.py | 2 +-
lnst/RecipeCommon/Perf/Results.py | 16 +-
lnst/RecipeCommon/TestRecipe.py | 2 +-
lnst/Slave/InterfaceManager.py | 3 +-
lnst/Slave/NetConfigDevice.py | 741 ---------------
lnst/Slave/NetTestSlave.py | 19 -
lnst/Slave/NmConfigDevice.py | 888 ------------------
misc/recipe_conv.py | 134 ---
obsolete/SwSwitch/SwSwitch.py | 387 --------
obsolete/SwSwitch/__init__.py | 0
obsolete/Switch/Drivers/SwSwitch.py | 49 -
obsolete/Switch/Drivers/__init__.py | 0
obsolete/Switch/SwitchConfigParse.py | 73 --
obsolete/Switch/SwitchCtl.py | 42 -
obsolete/Switch/SwitchDriversCommon.py | 51 -
obsolete/Switch/__init__.py | 0
obsolete/netconfig.py | 206 ----
obsolete/switchconfig.py | 87 --
obsolete/swswitch.py | 90 --
pyrecipes/3_vlans.py | 34 -
pyrecipes/example.py | 33 -
pyrecipes/ping_flood.py | 48 -
regression-tests/README.md | 112 ---
regression-tests/env/lnst-ctl.conf | 16 -
regression-tests/run-test.sh | 253 -----
regression-tests/tests/0/desc | 6 -
regression-tests/tests/0/run.sh | 24 -
regression-tests/tests/1/desc | 4 -
regression-tests/tests/1/recipe.xml | 33 -
regression-tests/tests/1/run.sh | 12 -
regression-tests/tests/10/desc | 4 -
.../tests/10/prefix-check-taskapi.xml | 33 -
regression-tests/tests/10/prefix-check.py | 15 -
regression-tests/tests/10/prefix-check.xml | 44 -
regression-tests/tests/10/run.sh | 39 -
regression-tests/tests/11/desc | 3 -
regression-tests/tests/11/recipe.xml | 33 -
regression-tests/tests/11/run.sh | 15 -
regression-tests/tests/12/desc | 1 -
regression-tests/tests/12/run.sh | 12 -
regression-tests/tests/12/sm01.xml | 7 -
regression-tests/tests/12/sm02.xml | 7 -
regression-tests/tests/12/xinclude-check.xml | 13 -
regression-tests/tests/13/desc | 1 -
regression-tests/tests/13/run.sh | 22 -
.../tests/13/taskapi-alias-check.py | 9 -
.../tests/13/taskapi-alias-check.xml | 38 -
.../tests/13/taskapi-alias-namespace-check.py | 8 -
.../13/taskapi-alias-namespace-check.xml | 41 -
regression-tests/tests/14/desc | 3 -
regression-tests/tests/14/recipe1.xml | 68 --
regression-tests/tests/14/recipe2.xml | 79 --
regression-tests/tests/14/run.sh | 17 -
regression-tests/tests/15/desc | 3 -
regression-tests/tests/15/recipe.xml | 33 -
regression-tests/tests/15/run.sh | 12 -
regression-tests/tests/16/desc | 3 -
regression-tests/tests/16/recipe.xml | 37 -
regression-tests/tests/16/run.sh | 14 -
regression-tests/tests/17/desc | 3 -
regression-tests/tests/17/recipe.xml | 38 -
regression-tests/tests/17/run.sh | 14 -
regression-tests/tests/18/desc | 6 -
regression-tests/tests/18/recipe.xml | 26 -
regression-tests/tests/18/run.sh | 19 -
regression-tests/tests/19/desc | 3 -
regression-tests/tests/19/recipe.xml | 17 -
regression-tests/tests/19/run.sh | 19 -
regression-tests/tests/2/desc | 5 -
regression-tests/tests/2/recipe.xml | 74 --
regression-tests/tests/2/run.sh | 12 -
regression-tests/tests/20/desc | 3 -
regression-tests/tests/20/recipe1.xml | 47 -
regression-tests/tests/20/recipe2.xml | 31 -
regression-tests/tests/20/run.sh | 20 -
regression-tests/tests/21/desc | 3 -
regression-tests/tests/21/lnst-ctl.conf | 3 -
regression-tests/tests/21/recipe.xml | 55 --
regression-tests/tests/21/run.sh | 18 -
.../tests/21/test_modules/TCPConnection.py | 60 --
.../tests/21/test_tools/tcp_conn/Makefile | 12 -
.../21/test_tools/tcp_conn/lnst-setup.sh | 3 -
.../21/test_tools/tcp_conn/tcp_connect.c | 281 ------
.../tests/21/test_tools/tcp_conn/tcp_listen.c | 330 -------
regression-tests/tests/22/desc | 3 -
regression-tests/tests/22/lnst-ctl.conf | 2 -
regression-tests/tests/22/pool/slave1.xml | 6 -
regression-tests/tests/22/pool/slave2.xml | 6 -
regression-tests/tests/22/recipe.xml | 26 -
regression-tests/tests/22/run.sh | 18 -
regression-tests/tests/23/desc | 3 -
regression-tests/tests/23/lnst-ctl.conf | 2 -
regression-tests/tests/23/recipe.xml | 42 -
regression-tests/tests/23/run.sh | 19 -
.../tests/23/test_modules/IcmpPing.py | 71 --
regression-tests/tests/24/desc | 6 -
regression-tests/tests/24/recipe_fail.xml | 33 -
regression-tests/tests/24/recipe_pass.xml | 33 -
regression-tests/tests/24/run.sh | 22 -
regression-tests/tests/25/desc | 12 -
regression-tests/tests/25/recipe1.xml | 44 -
regression-tests/tests/25/recipe2.xml | 53 --
regression-tests/tests/25/recipe3.xml | 28 -
regression-tests/tests/25/run.sh | 27 -
regression-tests/tests/26/desc | 7 -
regression-tests/tests/26/recipe1.xml | 46 -
regression-tests/tests/26/recipe2.xml | 46 -
regression-tests/tests/26/run.sh | 24 -
regression-tests/tests/27/desc | 10 -
regression-tests/tests/27/recipe1.xml | 32 -
regression-tests/tests/27/recipe2.xml | 32 -
regression-tests/tests/27/recipe3.xml | 31 -
regression-tests/tests/27/recipe4.xml | 31 -
regression-tests/tests/27/recipe5.xml | 32 -
regression-tests/tests/27/recipe6.xml | 30 -
regression-tests/tests/27/recipe7.xml | 30 -
regression-tests/tests/27/recipe8.xml | 32 -
regression-tests/tests/27/run.sh | 48 -
regression-tests/tests/28/desc | 6 -
regression-tests/tests/28/recipe1.py | 20 -
regression-tests/tests/28/recipe1.xml | 16 -
regression-tests/tests/28/recipe2.py | 18 -
regression-tests/tests/28/recipe2.xml | 16 -
regression-tests/tests/28/recipe3.py | 11 -
regression-tests/tests/28/recipe3.xml | 16 -
regression-tests/tests/28/recipe4.py | 15 -
regression-tests/tests/28/recipe4.xml | 16 -
regression-tests/tests/28/run.sh | 34 -
regression-tests/tests/3/desc | 8 -
regression-tests/tests/3/recipe.xml | 21 -
regression-tests/tests/3/run.sh | 12 -
regression-tests/tests/4/desc | 3 -
regression-tests/tests/4/recipe.xml | 43 -
regression-tests/tests/4/run.sh | 19 -
regression-tests/tests/5/desc | 3 -
regression-tests/tests/5/recipe.xml | 29 -
regression-tests/tests/5/run.sh | 20 -
regression-tests/tests/6/desc | 4 -
regression-tests/tests/6/recipe.xml | 35 -
regression-tests/tests/6/run.sh | 19 -
regression-tests/tests/7/desc | 4 -
regression-tests/tests/7/recipe.xml | 24 -
regression-tests/tests/7/run.sh | 19 -
regression-tests/tests/7/task.py | 23 -
regression-tests/tests/8/desc | 3 -
regression-tests/tests/8/recipe.xml | 26 -
regression-tests/tests/8/run.sh | 12 -
regression-tests/tests/9/desc | 3 -
regression-tests/tests/9/recipe.xml | 24 -
regression-tests/tests/9/run.sh | 12 -
regression-tests/tests/9/task.py | 9 -
regression-tests/tests/lib.sh | 67 --
schema-recipe.rng | 715 --------------
test_modules/Custom.py | 31 -
test_modules/DummyFailing.py | 19 -
test_modules/Icmp6Ping.py | 74 --
test_modules/IcmpPing.py | 71 --
test_modules/Iperf.py | 160 ----
test_modules/LinkNeg.py | 59 --
test_modules/Multicast.py | 134 ---
test_modules/NetCat.py | 69 --
test_modules/Netperf.py | 579 ------------
test_modules/PacketAssert.py | 148 ---
test_modules/PktCounter.py | 89 --
test_modules/PktgenTx.py | 93 --
test_modules/TCPConnection.py | 60 --
172 files changed, 18 insertions(+), 9589 deletions(-)
delete mode 100644 lnst/Common/NetTestCommand.py
delete mode 100644 lnst/Common/TestsCommon.py
delete mode 100644 lnst/Slave/NetConfigDevice.py
delete mode 100644 lnst/Slave/NmConfigDevice.py
delete mode 100755 misc/recipe_conv.py
delete mode 100644 obsolete/SwSwitch/SwSwitch.py
delete mode 100644 obsolete/SwSwitch/__init__.py
delete mode 100644 obsolete/Switch/Drivers/SwSwitch.py
delete mode 100644 obsolete/Switch/Drivers/__init__.py
delete mode 100644 obsolete/Switch/SwitchConfigParse.py
delete mode 100644 obsolete/Switch/SwitchCtl.py
delete mode 100644 obsolete/Switch/SwitchDriversCommon.py
delete mode 100644 obsolete/Switch/__init__.py
delete mode 100755 obsolete/netconfig.py
delete mode 100755 obsolete/switchconfig.py
delete mode 100755 obsolete/swswitch.py
delete mode 100644 pyrecipes/3_vlans.py
delete mode 100644 pyrecipes/example.py
delete mode 100644 pyrecipes/ping_flood.py
delete mode 100644 regression-tests/README.md
delete mode 100644 regression-tests/env/lnst-ctl.conf
delete mode 100755 regression-tests/run-test.sh
delete mode 100644 regression-tests/tests/0/desc
delete mode 100755 regression-tests/tests/0/run.sh
delete mode 100644 regression-tests/tests/1/desc
delete mode 100644 regression-tests/tests/1/recipe.xml
delete mode 100755 regression-tests/tests/1/run.sh
delete mode 100644 regression-tests/tests/10/desc
delete mode 100644 regression-tests/tests/10/prefix-check-taskapi.xml
delete mode 100644 regression-tests/tests/10/prefix-check.py
delete mode 100644 regression-tests/tests/10/prefix-check.xml
delete mode 100755 regression-tests/tests/10/run.sh
delete mode 100644 regression-tests/tests/11/desc
delete mode 100644 regression-tests/tests/11/recipe.xml
delete mode 100755 regression-tests/tests/11/run.sh
delete mode 100644 regression-tests/tests/12/desc
delete mode 100755 regression-tests/tests/12/run.sh
delete mode 100644 regression-tests/tests/12/sm01.xml
delete mode 100644 regression-tests/tests/12/sm02.xml
delete mode 100644 regression-tests/tests/12/xinclude-check.xml
delete mode 100644 regression-tests/tests/13/desc
delete mode 100755 regression-tests/tests/13/run.sh
delete mode 100644 regression-tests/tests/13/taskapi-alias-check.py
delete mode 100644 regression-tests/tests/13/taskapi-alias-check.xml
delete mode 100644 regression-tests/tests/13/taskapi-alias-namespace-check.py
delete mode 100644 regression-tests/tests/13/taskapi-alias-namespace-check.xml
delete mode 100644 regression-tests/tests/14/desc
delete mode 100644 regression-tests/tests/14/recipe1.xml
delete mode 100644 regression-tests/tests/14/recipe2.xml
delete mode 100755 regression-tests/tests/14/run.sh
delete mode 100644 regression-tests/tests/15/desc
delete mode 100644 regression-tests/tests/15/recipe.xml
delete mode 100755 regression-tests/tests/15/run.sh
delete mode 100644 regression-tests/tests/16/desc
delete mode 100644 regression-tests/tests/16/recipe.xml
delete mode 100755 regression-tests/tests/16/run.sh
delete mode 100644 regression-tests/tests/17/desc
delete mode 100644 regression-tests/tests/17/recipe.xml
delete mode 100755 regression-tests/tests/17/run.sh
delete mode 100644 regression-tests/tests/18/desc
delete mode 100644 regression-tests/tests/18/recipe.xml
delete mode 100755 regression-tests/tests/18/run.sh
delete mode 100644 regression-tests/tests/19/desc
delete mode 100644 regression-tests/tests/19/recipe.xml
delete mode 100755 regression-tests/tests/19/run.sh
delete mode 100644 regression-tests/tests/2/desc
delete mode 100644 regression-tests/tests/2/recipe.xml
delete mode 100755 regression-tests/tests/2/run.sh
delete mode 100644 regression-tests/tests/20/desc
delete mode 100644 regression-tests/tests/20/recipe1.xml
delete mode 100644 regression-tests/tests/20/recipe2.xml
delete mode 100755 regression-tests/tests/20/run.sh
delete mode 100644 regression-tests/tests/21/desc
delete mode 100644 regression-tests/tests/21/lnst-ctl.conf
delete mode 100644 regression-tests/tests/21/recipe.xml
delete mode 100755 regression-tests/tests/21/run.sh
delete mode 100644 regression-tests/tests/21/test_modules/TCPConnection.py
delete mode 100644 regression-tests/tests/21/test_tools/tcp_conn/Makefile
delete mode 100755 regression-tests/tests/21/test_tools/tcp_conn/lnst-setup.sh
delete mode 100644 regression-tests/tests/21/test_tools/tcp_conn/tcp_connect.c
delete mode 100644 regression-tests/tests/21/test_tools/tcp_conn/tcp_listen.c
delete mode 100644 regression-tests/tests/22/desc
delete mode 100644 regression-tests/tests/22/lnst-ctl.conf
delete mode 100644 regression-tests/tests/22/pool/slave1.xml
delete mode 100644 regression-tests/tests/22/pool/slave2.xml
delete mode 100644 regression-tests/tests/22/recipe.xml
delete mode 100755 regression-tests/tests/22/run.sh
delete mode 100644 regression-tests/tests/23/desc
delete mode 100644 regression-tests/tests/23/lnst-ctl.conf
delete mode 100644 regression-tests/tests/23/recipe.xml
delete mode 100755 regression-tests/tests/23/run.sh
delete mode 100644 regression-tests/tests/23/test_modules/IcmpPing.py
delete mode 100644 regression-tests/tests/24/desc
delete mode 100644 regression-tests/tests/24/recipe_fail.xml
delete mode 100644 regression-tests/tests/24/recipe_pass.xml
delete mode 100755 regression-tests/tests/24/run.sh
delete mode 100644 regression-tests/tests/25/desc
delete mode 100644 regression-tests/tests/25/recipe1.xml
delete mode 100644 regression-tests/tests/25/recipe2.xml
delete mode 100644 regression-tests/tests/25/recipe3.xml
delete mode 100755 regression-tests/tests/25/run.sh
delete mode 100644 regression-tests/tests/26/desc
delete mode 100644 regression-tests/tests/26/recipe1.xml
delete mode 100644 regression-tests/tests/26/recipe2.xml
delete mode 100755 regression-tests/tests/26/run.sh
delete mode 100644 regression-tests/tests/27/desc
delete mode 100644 regression-tests/tests/27/recipe1.xml
delete mode 100644 regression-tests/tests/27/recipe2.xml
delete mode 100644 regression-tests/tests/27/recipe3.xml
delete mode 100644 regression-tests/tests/27/recipe4.xml
delete mode 100644 regression-tests/tests/27/recipe5.xml
delete mode 100644 regression-tests/tests/27/recipe6.xml
delete mode 100644 regression-tests/tests/27/recipe7.xml
delete mode 100644 regression-tests/tests/27/recipe8.xml
delete mode 100755 regression-tests/tests/27/run.sh
delete mode 100644 regression-tests/tests/28/desc
delete mode 100644 regression-tests/tests/28/recipe1.py
delete mode 100644 regression-tests/tests/28/recipe1.xml
delete mode 100644 regression-tests/tests/28/recipe2.py
delete mode 100644 regression-tests/tests/28/recipe2.xml
delete mode 100644 regression-tests/tests/28/recipe3.py
delete mode 100644 regression-tests/tests/28/recipe3.xml
delete mode 100644 regression-tests/tests/28/recipe4.py
delete mode 100644 regression-tests/tests/28/recipe4.xml
delete mode 100755 regression-tests/tests/28/run.sh
delete mode 100644 regression-tests/tests/3/desc
delete mode 100644 regression-tests/tests/3/recipe.xml
delete mode 100755 regression-tests/tests/3/run.sh
delete mode 100644 regression-tests/tests/4/desc
delete mode 100644 regression-tests/tests/4/recipe.xml
delete mode 100755 regression-tests/tests/4/run.sh
delete mode 100644 regression-tests/tests/5/desc
delete mode 100644 regression-tests/tests/5/recipe.xml
delete mode 100755 regression-tests/tests/5/run.sh
delete mode 100644 regression-tests/tests/6/desc
delete mode 100644 regression-tests/tests/6/recipe.xml
delete mode 100755 regression-tests/tests/6/run.sh
delete mode 100644 regression-tests/tests/7/desc
delete mode 100644 regression-tests/tests/7/recipe.xml
delete mode 100755 regression-tests/tests/7/run.sh
delete mode 100644 regression-tests/tests/7/task.py
delete mode 100644 regression-tests/tests/8/desc
delete mode 100644 regression-tests/tests/8/recipe.xml
delete mode 100755 regression-tests/tests/8/run.sh
delete mode 100644 regression-tests/tests/9/desc
delete mode 100644 regression-tests/tests/9/recipe.xml
delete mode 100755 regression-tests/tests/9/run.sh
delete mode 100644 regression-tests/tests/9/task.py
delete mode 100644 regression-tests/tests/lib.sh
delete mode 100644 schema-recipe.rng
delete mode 100644 test_modules/Custom.py
delete mode 100644 test_modules/DummyFailing.py
delete mode 100644 test_modules/Icmp6Ping.py
delete mode 100644 test_modules/IcmpPing.py
delete mode 100644 test_modules/Iperf.py
delete mode 100644 test_modules/LinkNeg.py
delete mode 100644 test_modules/Multicast.py
delete mode 100644 test_modules/NetCat.py
delete mode 100644 test_modules/Netperf.py
delete mode 100644 test_modules/PacketAssert.py
delete mode 100644 test_modules/PktCounter.py
delete mode 100644 test_modules/PktgenTx.py
delete mode 100644 test_modules/TCPConnection.py
--
2.21.1
3 years, 9 months
[PATCH 0/5] Removal of PerfRepo code and TaskAPI
by Jan Tluka
This patch set removes both the PerfRepo code and deprecated TaskAPI.
We consider PerfRepo project dead, with zero development in the past year.
Jan Tluka (5):
lnst/Controller/Config.py: remove PerfRepo configuration
lnst/Controller: remove deprecated TaskAPI
lnst/RecipeCommon/TestRecipe.py: remove references to PerfRepo code
lnst/RecipeCommon: remove PerfRepo code
lnst/RecipeCommon: remove ModuleWrap due to deprecated TaskAPI
install/lnst-ctl.conf.in | 5 -
lnst-ctl.conf | 5 -
lnst/Controller/Config.py | 20 -
lnst/Controller/Task.py | 824 ------------------
lnst/RecipeCommon/ModuleWrap.py | 180 ----
lnst/RecipeCommon/PerfRepo/PerfRepo.py | 408 ---------
lnst/RecipeCommon/PerfRepo/PerfRepoMapping.py | 79 --
lnst/RecipeCommon/PerfRepo/PerfRepoUtils.py | 72 --
lnst/RecipeCommon/PerfRepo/__init__.py | 0
lnst/RecipeCommon/TestRecipe.py | 38 +-
.../examples/python_recipe_simple_netperf.py | 19 +-
11 files changed, 2 insertions(+), 1648 deletions(-)
delete mode 100644 lnst/Controller/Task.py
delete mode 100644 lnst/RecipeCommon/ModuleWrap.py
delete mode 100644 lnst/RecipeCommon/PerfRepo/PerfRepo.py
delete mode 100644 lnst/RecipeCommon/PerfRepo/PerfRepoMapping.py
delete mode 100644 lnst/RecipeCommon/PerfRepo/PerfRepoUtils.py
delete mode 100644 lnst/RecipeCommon/PerfRepo/__init__.py
--
2.21.1
3 years, 9 months
[PATCH] lnst.Devices.VirtualDevice: mark device as deleted after cleanup
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
References to VirtualDevice instances are still available through the
result objects after recipe execution has finished. Attempting to access
properties (e.g. to print a summary of the recipe execution) of these
objects results in exceptions being raised.
Makring the device as 'deleted' fixes the issue.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Devices/VirtualDevice.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/lnst/Devices/VirtualDevice.py b/lnst/Devices/VirtualDevice.py
index de2db9c..7eb3244 100644
--- a/lnst/Devices/VirtualDevice.py
+++ b/lnst/Devices/VirtualDevice.py
@@ -97,3 +97,4 @@ class VirtualDevice(RemoteDevice):
domain_ctl = self._machine.get_domain_ctl()
domain_ctl.detach_interface(self.orig_hwaddr)
+ self.deleted = True
--
2.25.0
3 years, 9 months
[PATCH] install/lnst-ctl.conf.in: remove PerfRepo configuration
by Jan Tluka
PerfRepo support has been removed.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
install/lnst-ctl.conf.in | 5 -----
1 file changed, 5 deletions(-)
diff --git a/install/lnst-ctl.conf.in b/install/lnst-ctl.conf.in
index 295f9ba..161c5c3 100644
--- a/install/lnst-ctl.conf.in
+++ b/install/lnst-ctl.conf.in
@@ -56,8 +56,3 @@ allow_virtual = True
# which contains the slave machine descriptions.
[pools]
-# Optional section for configuring access to a PerfRepo instance
-#[perfrepo]
-#url =
-#username =
-#password =
--
2.21.1
3 years, 9 months
Что такое электронная трудовая книжка?
by Andrei.E
*Для руководителей и специалистов кадров служб.*
С 1 Января 2020 года Правительство РФ объявило обязательный переход на
электронные трудовые книжки.
Первая информация о переходе с текстами законопроектов и образцы форм
появилась еще в июле 2019 года.
Однако уже второе чтение развернуло трудовые книжки на 180 градусов.
Автоматический переход был отменен
по инициативе Администрации Президента. Чего же ждать Работодателям, а
главное, работникам в 2020 году и далее.
4 марта 2020 г. Обучение Трудовое право и кадровое делопроизводство:
исправляем ошибки. Электронные трудовые книжки в 2020 г.
АНДРЕЕВА Валентина Ивановна - ведущий специалист в сфере
документационного обеспечения, профессор кафедры трудового
права и социального обеспечения Российского государственного
университета правосудия (учредитель - Верховный Суд РФ, автор
книг по делопроизводству, к.и.н.Анализируем изменения, планируемые на
2020 г. Поэтапный переход к электронным трудовым книжкам.
Взаимодействие с Пенсионным фондом, штрафные санкции. Перенесение
выходных дней в 2020 г. Производственный календарь на 2020 г.
Обсуждаемые проекты изменений в Трудовом кодексе РФ, Законе о
персональных данных, Законе о специальной оценке условий труда и др.
Решаем вопросы, не вошедшие в Трудовой кодекс РФ. Заключение трудового
договора.
_____________________________________________________________________________________________________________________
11 марта 2020 г. Обучение Электронные трудовые книжки: всё о переходе,
обязанности работодателя в переходный период, что необходимо знать.
*Блок 1*. Электронные трудовые книжки.
Законодательные акты о переходе на Электронные трудовые книжки с 1
Января 2020 года, разъяснения от государственных служб по
вопросам перехода и внедрения. Нововведения ноября 2019. Что будет
представлять из себя Электронная трудовая книжка, какие сведения
будет включать в себя информационный блок Плюсы и минусы трудовой книжки
в электронном виде для работников, кадровиков и работодателей.
Разъяснения. Прекратят ли существовать бумажные трудовые книжки?
Предварительный Аудит трудовых книжек на бумажном носителе и другой
кадровой документации для перехода на электронную версию, полный
алгоритм. Новые правила заполнения бумажной трудовой книжки в связи с
переходом на электронные. Как будет вводиться электронная трудовая
книжка? Новая форма отчетности о трудовой деятельности в ноябре 2019.
Ответственность за нарушения законодательства. Перспективы принятия и
последствия для Работодателя. Новые статьи, устанавливающие повышенную
ответственность для Работодателя. Предоставление Работнику доступа к
информационным системам Работодателя. Работа с персональными данными
Работника при переходе на электронную трудовую книжку. Расшифровка трех!
новых отчетов от Пенсионного фонда и детальный разбор заполнения.
Как вынудить Работника перейти на электронную трудовую книжку или как
сохранить бумажную. Пошаговая инструкция!
*Блок 2*. Обзор изменений в законодательстве 2019-2020
______________________________________________________________________________________________________________________
5 марта 2020 г. ВЕБИНАР Электронные трудовые книжки: всё о переходе,
обязанности работодателя в переходный период, что необходимо знать.
*Полная информация и заявки по тел:*
8код4 9 5тел5 1 8-4 2-9 7
8код4 9 5тел5 1 8-4 1-3 9
3 years, 9 months
эффективный директор
by Alexey P
Лицензированный учебный центр (г.Москва) приглашает на обучение:
ДИРЕКТОР ПО ПРОДАЖАМ.
ПРАКТИЧЕСКИЙ КУРС
25 - 26 Февраля 2020 г. с 10.00 до 18.00
Этот курс имеет отношение к самым ценным и в то же время к самым сложным навыкам руководителя - эффективному управлению людьми.
У одного все получается, и команда под его руководством достигает невиданных высот. Другой, сколько не бьется – все впустую.
Разница между ними - в знании тонкостей своей работы. Эти тонкости можно изучать на опыте своих ошибок, а можно на опыте и примере
успешных руководителей и компаний. К сожалению, нет патентованных методов в области управления. Но есть приемы и способы,
которые работают.
Мы собрали в единую систему все эти способы, методы, приемы. Они работают у других. Пусть они работают и у Вас.
Приходите и получите эти знания!
Уникальная возможность узнать способы, которыми пользуются российские компании в организации отдела продаж,
управлении, поиске, удержании клиентов, зарабатывании денег (на основе оценки 117 российских и иностранных компаний:
6 крупных, 19 средних, и 91 компаний малого бизнеса из разных отраслей).
Находки бизнеса по организации продаж. Что в основном губит продажи в российских компаниях.
Кому это важно? Это важно руководителям отделов продаж. Всем тем, кто заинтересован в конкретном результате.
Что мы предлагаем? Мы предлагаем гарантированную систему, увеличивающую продажи и приносящую новых клиентов.
Зачем к нам идут? Затем, чтобы увеличить продажи и найти новых клиентов в кризис. Выстроить стабильную систему продаж.
Вся подробная информация и регистрация участников по телефону:
8 код города (4 9 5)Тел.:
9 4 6 - 9 - 4 5 7( многоканальный )
Москва, ул. Сельскохозяйственная, д. 17, корп. 5 , Гостиница "Бизнес-Турист".
Просьба не отправлять заявки ответным письмом на этот адрес.<br>Звоните по указанному телефону.
Информация о программе:
Ключевые факторы успеха в управлении продажами. Сущность работы директора по продажам.
Чтобы успешно управлять продажами, необходимо знать все элементы работы отдела продаж.
Как эти элементы связаны между собой . Какие элементы основные, а какие второстепенные.
-Что влияет на успешную работу отдела продаж.
-Из чего состоит эффективная система продаж.
-Все элементы системы продаж.
-Взаимосвязь между элементами системы отдела продаж.
-Опыт работы успешных руководителей продаж (отечественные и иностранные компании).
-Тест: оцени возможности для улучшений своего отдела продаж.
-Упражнение-действие: разработай план действий и улучши работу своего подразделения.
Показатели эффективности работы отдела продаж. (Метрики или KPI).
Показатели эффективности – это точка отсчета в оценке работы отдела продаж. Только благодаря этим показателям
можно сказать, насколько успешная была работа. Без этих показателей все оценки – просто субъективная точка зрения.
-Какие показатели использовать для оценки эффективности работы отдела.
-Опыт успешных компаний по созданию системы показателей эффективности работы отдела продаж.
-Тест: оцени свою систему показателей.
-Упражнение-действие: разработай и внедри эффективную систему показателей работы отдела продаж.
Показатели эффективности работы менеджеров по продажам.
Показатель эффективности работы менеджера по продажам – то, на основании чего выстраивается система
мотивации, оценивается работа каждого отдельного сотрудника, его успехи и неудачи.
-Как оценивать работу менеджеров отдела продаж.
-Как создать систему показателей, повышающую эффективность работы менеджеров по продажам.
Показатели активности.
-Показатели результативности.
-Финансовые показатели.
-Связь показателей эффективности работы менеджеров с мотивационными схемами оплаты.
-Тест: оцени свою систему показателей эффективности работы продавцов.
-Упражнение-действие: разработай систему оценки эффективности работы продавцов.
План продаж.
Без плана нет понимания к чему стремиться. Есть сухие цифры и показатели, а есть система по планированию будущих
результатов, которая дает руководителю и его подчиненным четкую и понятную перспективу. Почему большинство планов
проваливается? Они не подкреплены планом действий по их достижению. Вот над тем, как составить и воплотить в жизнь
план действий по достижению желаемых показателей, мы и будем работать.
-Как составить план продаж.
-План продаж и планирование действий по выполнению плана.
-Как план продаж распределить среди менеджеров отдела.
-Увязка плана продаж с ключевыми показателями эффективности работы менеджеров по продажам.
-Какой план поставить лучшим сотрудникам. Какой план средним, какой худшим.
-Как обеспечить выполнение финансового плана через промежуточные показатели по активности и результативности.
Связь плана и прогноза продаж.
-Примеры планирования успешных компаний.
-Тест: оцени свою систему планирования.
-Упражнение-действие: создай работающую систему планирования продаж.
Прогнозирование продаж.
Прогноз и план – два мощнейших инструмента в руках руководителя отдела продаж. Прогноз помогает менеджерам и их
руководителю добиться результатов. Просто этим инструментом нужно уметь владеть.
-Прогнозирование продаж – как инструмент выполнения плана. Прогноз по типам клиентов. По видам сделок.
-Корректировка текущей работы менеджеров отдела продаж исходя из результатов прогноза.
-Прогноз продаж – один из основных элементов управления продажами.
-Примеры применения прогноза продаж в успешных компаниях.
-Упражнение-действие: создай свою систему прогнозирования результатов работы отдела продаж.
Приоритеты в распределении рабочего времени руководителя продаж.
-Продавать самому или только управлять.
-Рабочий день, неделя, месяц руководителя.
-Тест на эффективность использования своего времени.
Тайм–менеджмент в работе менеджеров отдела продаж.
Помочь сотрудникам – долг руководителя. Помочь спланировать время, приоритеты – необходимость, которая окупается потом
хорошими результатами.
-Должен ли руководитель помогать своим сотрудникам в планировании.
-Как и чем помочь.
-Тест: оцени продуктивность использования времени менеджеров твоего отдела.
Отчетность в продажах.
Отчетность. Боль любого руководителя. Где та грань между нужным и достаточным. Мы будем с Вами работать над тем, чтобы
Ваша система отчетности была с одной стороны простой, с другой информативной.
-Периодичность отчетности продавцов.
-Объем отчетности.
-Параметры отчетности в продажах.
-Пирамида отчетности: продавец – директор по продажам - вышестоящий руководитель.
-Ведение клиентов. Досье клиента.
-CRM системы в продажах.
Материальная мотивация менеджеров отдела продаж.
Как найти грань между оплатой и результатом. За что платить. Как сделать мотивацию интересной для менеджеров.
Все эти вопросы обычно постоянная головная боль директора по продажам. Чтобы их решать необходимо знать и понимать
все возможные мотивационные схемы. Цель этого блока – мотивация Ваших менеджеров.
-Почему не работают простые проценты.
-Все возможные мотивационные схемы (16 базовых мотивационных схем).
-Методика разработки эффективной мотивационной схемы.
-Тест: оцени эффективность текущей мотивационной схемы в своей компании.
-Упражнение-действие: создай эффективную мотивацию в твоей компании.
Чему учить продавцов.
Обычная дилемма, которая стоит перед директором по продажам. Учить или нет своих продавцов? И если учить, то как добиться
максимальных результатов после обучения. Подходы к обучению продавцов – назначение этого блока.
-Как оценить необходимую потребность в знаниях продавцов. Профили продавцов. Идеальный профиль продавца.
Текущий профиль продавца. Профиль типичного клиента. Ваш продукт – что необходимо о нем знать продавцу.
-Обучение продукту. Обучение технике продаж. Учить самим или привлекать со стороны. Плюсы и минусы каждого из подходов.
-Тест: оцени потребность своих сотрудников в необходимости обучения.
Как работать с лучшими продавцами.
Работа со "звездами" кардинально отличается от работы с обычными продавцами. Как удержать "звезду" и получить от
нее максимум – вопрос , который мы будем с Вами разбирать на этом занятии.
-Методика работы с лучшими продавцами.
Как работать со средними продавцами.
"Середняк"- это костяк любого отдела продаж. Основной ресурс, с которым приходиться работать руководителю.
Максимизация результатов работы середняков, как это делают успешные руководители успешных отделов продаж – цель данного блока.
-Как из средних продавцов сделать лучших.
Подбор менеджеров по продажам.
Этот блок поможет вам эффективно и быстро расставить для себя приоритеты в деле набора продавцов.
-Изменения на рынке труда продавцов в последнее время.
-Набирать людей самим или воспользоваться услугами агентств. Как сформулировать требования к людям, исходя из характера работы.
Набирать звезд или растить их у себя.
-Принципы формирования успешной команды.
-Опыт успешных компаний в подборе менеджеров по продажам.
Взаимодействие отдела продаж со смежными подразделениями.
Сложнейшая проблема, с которой постоянно сталкивается директор по продажам. Как минимизировать потери от плохого
взаимодействия и наладить его со всеми другими подразделениями.
-Стандарты взаимодействия между подразделениями. Принципы создания и внедрения.
-Примеры успешных компаний по организации взаимодействия отделов продаж с другими подразделениями.
Структура отдела продаж.
Разные виды структур отдела продаж имеют разную эффективность и стоимость. Чтобы понимать, что хорошо, а что плохо – нужно
просто знать, что и в каком виде вам необходимо.
-Зависимость структуры отдела продаж, от целей и задач. Функциональное деление по клиентам, видам действий. Смешанная
структура. Плюсы и минусы каждого из типов структуры. Стоимость каждого из видов структур. Результативность разных структур.
-Тест: оцени структуру отдела продаж своей компании.
-Упражнение-действие: разработай возможные альтернативные варианты структуры отдела продаж.
Проведение с менеджерами собраний и "пятиминуток".
Как собрания превратить в настоящий инструмент управления, а не в пустую трату времени. Какие существуют технологии проведения
собраний. Как собрания помогают директору по продажам выполнять план продаж – все это в данном блоке.
-Собрания менеджеров – один из основных инструментов в работе руководителя.
-Как проводить собрания и пятиминутки с максимальной пользой. Цели. Задачи. Результаты. Подготовка.
-Тест: оцени эффективность собраний в своей компании.
-Упражнение-действие: разработай алгоритм проведения эффективного собрания менеджеров отдела продаж.
Делегирование в работе директора по продажам.
Многие говорят о делегировании. Но, реально мало кто этим умеет эффективно пользоваться. Как управлять делегированием, в
чем суть этой технологии и как вам применить ее у себя – все эти вопросы мы с вами рассмотрим во время данного занятия.
-Управление отделом продаж через делегирование. Управление продажами через отречение. Плюсы и минусы каждого из стилей.
-Тест: оцени свой стиль управления продажами.
-Упражнение-действие: разработай алгоритм оптимального управления продажами.
Практическая сессия.
-По методике автора, по примерам других компаний, ВАМ нужно будет составить и презентовать план действий по достижению ваших целей.
Участие в обучении составляет: 25.777 руб.
Доп. скидки от 2-х участников.
3 years, 10 months