On 03/09/2013 01:58 AM, Chris Evich wrote:
On 02/27/2013 10:20 PM, Alex Jia wrote:
Signed-off-by: Alex Jia<[email protected]>
---
virttest/utils_cgroup.py | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/virttest/utils_cgroup.py b/virttest/utils_cgroup.py
index b6d3edb..d55609e 100755
--- a/virttest/utils_cgroup.py
+++ b/virttest/utils_cgroup.py
@@ -428,3 +428,32 @@ def resolve_task_cgroup_path(pid, controller):
mount_path = re.findall(r":%s:(\S*)\n" % controller,
proc_cgroup_txt)
path = root_path + mount_path[0]
return path
+
+
+def service_cgconfig_control(action):
+ """
+ Cgconfig control by action, if cmd executes successfully,
+ return True, otherwise return False.
+ If the action is status, return True when it's running,
+ otherwise return False.
+ @ param action: start|stop|status|restart|condrestart
+ """
+ actions = ['start', 'stop', 'restart', 'condrestart']
+ if action in actions:
+ try:
+ utils.run("service cgconfig %s" % action)
+ logging.debug("%s cgconfig successfuly", action)
+ return True
+ except error.CmdError, detail:
+ logging.error("Failed to %s cgconfig:\n%s", action, detail)
+ return False
+ elif action == "status":
+ cmd_result = utils.run("service cgconfig status",
ignore_status=True)
+ if not cmd_result.exit_status and \
+ cmd_result.stdout.strip() == "Running":
+ logging.info("Cgconfig service is running")
+ return True
+ else:
+ return False
+ else:
+ raise error.TestError("Unknown action: %s" % action)
LGTM, with two optional suggestions:
1) Exceptions are also caught higher up and result in a
error.TestError being raised. However, if some other internal
component wants to use this function, having it catch a 'TestError'
may be too general. Suggest raising something more specific like
ValueError instead.
2) Not sure if returning True/False is a convention for these type of
functions or not. However, one thing that's become apparent from work
on the virsh module- Sometimes it's more useful to just return the
CmdResult object and let the caller deal with it. I can see this
being easily argued both ways, so I leave it just as a suggestion.
Got it, if it's necessary I will update service_cgconfig_control() and
service_libvirtd_control() together,
thanks for your review and comments.
_______________________________________________
Virt-test-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-test-devel