5 # see license for license details
9 import vstf.controller.settings.settings as sets
10 import vstf.common.decorator as deco
11 from vstf.common.input import raw_choice
13 LOG = logging.getLogger(__name__)
16 class ToolSettings(sets.Settings):
17 def __init__(self, path="/etc/vstf", filename="sw_perf.tool-settings", mode=sets.SETS_DEFAULT):
18 super(ToolSettings, self).__init__(path, filename, mode)
20 def _register_func(self):
27 func_name = "set_%s" % (item)
28 setattr(self, func_name,
29 self._setting_file(func_name, self._mset, self._fset, item, check=self._check_keys))
31 def _check_keys(self, value):
32 keys = ['threads', 'wait', 'time']
33 if not isinstance(value, dict):
34 raise Exception("type is error: %s" % (str(value)))
36 if key not in value.keys():
37 raise Exception("keys[%s] is missing: %s" % (key, str(value)))
44 info = "if set %s properties" % tool
46 properties = self.raw_properties()
47 func = getattr(self, "set_%s" % tool)
50 print "%s set finish: " % self._filename
51 print "+++++++++++++++++++++++++++++++++++++++++"
52 pprint.pprint(self.settings, indent=4)
53 print "+++++++++++++++++++++++++++++++++++++++++"
55 @deco.vstf_input("time", types=int)
56 @deco.vstf_input("wait", types=int)
57 @deco.vstf_input("threads", types=int)
58 def raw_properties(self):
59 print "---------------------------------------"
60 print "Please vstf set tool properties like:"
61 print " 'threads': 2,"
64 print "---------------------------------------"
68 from vstf.common.log import setup_logging
69 setup_logging(level=logging.DEBUG, log_file="/var/log/vstf/tool-settings.log", clevel=logging.INFO)
70 tool_settings = ToolSettings()
76 tool_settings.set_pktgen(value)
77 tool_settings.set_netperf(value)
78 tool_settings.set_iperf(value)
79 tool_settings.set_qperf(value)
80 LOG.info(tool_settings.settings)
83 if __name__ == '__main__':