提交 8d594170 编写于 作者: X Xu Tian

Merge pull request #489 from PandaWei/get_guest_service_status

Use API function to get service status in VM
......@@ -26,36 +26,6 @@ def process_output_check(process, exp_str):
return re.search(exp_str, output)
@error.context_aware
def get_guest_service_status(session, service, init_service):
"""
Get service's status in guest. It will return 'active' for 'running' and
'active'. Return 'inactive' for 'stopped' and 'inactive'.
:param session: An Expect or ShellSession instance to operate on
:param service: Service name that we want to check status.
:param init_service: service name used in service command.
:return: service's status in guest. 'active' or 'inactive'
"""
try:
session.cmd("systemctl --version")
cmd = "systemctl status %s.service" % service
output = session.cmd_output(cmd)
except Exception:
cmd = "service %s status" % init_service
output = session.cmd_output(cmd)
service_status_filter = "running|active"
if re.search("running|active", output, re.I):
status = "active"
elif re.search("stopped|inactive", output, re.I):
status = "inactive"
else:
msg = "Fail to get '%s' service status. " % service
msg += " Command output in guest: %s" % output
raise error.TestError(msg)
return status
@error.context_aware
def run(test, params, env):
"""
......@@ -121,7 +91,8 @@ def run(test, params, env):
:param action: action with service (start|stop|restart)
:param init_service: name of service for old service control.
"""
status = get_guest_service_status(session, service, init_service)
status = utils_misc.get_guest_service_status(session, service,
service_former=init_service)
if action == "start" and status == "active":
logging.debug("%s already started, no need start it again.",
service)
......
......@@ -7,6 +7,7 @@ from autotest.client.shared import utils
from virttest import utils_test
from virttest import utils_net
from virttest import utils_misc
# The backports module will take care of using the builtin if available
from virttest.staging.backports import bin
......@@ -38,32 +39,6 @@ def get_first_network_devname(session, nic_interface_filter):
return devnames[0]
@error.context_aware
def get_guest_service_status(session, service):
"""
Get service's status in guest. It will return 'active' for 'running' and
'active'. Return 'inactive' for 'stopped' and 'inactive'.
:param session: An Expect or ShellSession instance to operate on
:type devices: Expect or ShellSession class
:param service: Service name that we want to check status.
:type service: String
:return: service's status in guest. 'active' or 'inactive'
:rtype: String
"""
cmd = "service %s status" % service
output = session.cmd_output(cmd)
if re.search("running|active", output, re.I):
status = "active"
elif re.search("stopped|inactive", output, re.I):
status = "inactive"
else:
msg = "Fail to get '%s' service status. " % service
msg += " Command output in guest: %s" % output
raise error.TestError(msg)
return status
@error.context_aware
def get_irq_smp_affinity(session, irq):
"""
......@@ -237,7 +212,8 @@ def run(test, params, env):
msg = "Update irqbalance service status in guest if not match request."
error.context(msg, logging.info)
irqbalance_status = params.get("irqbalance_status", "active")
status = get_guest_service_status(session=session, service="irqbalance")
status = utils_misc.get_guest_service_status(session=session,
service="irqbalance")
service_cmd = ""
if status == "active" and irqbalance_status == "inactive":
service_cmd = "service irqbalance stop"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册