Add a stop engine call

Add a call to stop engine, this function just sets the enabled field
to false, and psutil terminates the process (equivalent to what we
do now). Also add psutil to requirements

Change-Id: Idc3edb2bf1c9ed55d7d77973c59e3d3562e2ad8b
This commit is contained in:
Pranesh Pandurangan 2014-06-10 09:56:31 -07:00
parent 81a9042ff1
commit 47e35d1d2c
2 changed files with 21 additions and 0 deletions

View File

@ -18,7 +18,9 @@
import argparse import argparse
import logging import logging
import os import os
import psutil
import tempfile import tempfile
import time
from engine import Engine from engine import Engine
from entropy import utils from entropy import utils
@ -119,6 +121,18 @@ def start_engine(args):
return return
def stop_engine(args):
LOG.info("Stopping engine %s", args.name)
# Grab engine config file, set our engine to disabled
pid = utils.disable_engine(args.name, engine_cfg)
try:
p = psutil.Process(pid)
time.sleep(5)
p.terminate()
except psutil.NoSuchProcess:
LOG.exception("No running engine %s", args.name)
def parse(): def parse():
parser = argparse.ArgumentParser(description='entropy') parser = argparse.ArgumentParser(description='entropy')
subparsers = parser.add_subparsers(dest='command', subparsers = parser.add_subparsers(dest='command',
@ -155,6 +169,12 @@ def parse():
help='path to engine cfg') help='path to engine cfg')
scheduler_parser.set_defaults(func=start_engine) scheduler_parser.set_defaults(func=start_engine)
stop_engine_parser = subparsers.add_parser('stop-engine',
help='Stop an entropy engine')
stop_engine_parser.add_argument('-n', dest='name',
help="Name of engine to stop")
stop_engine_parser.set_defaults(func=stop_engine)
args = parser.parse_args() args = parser.parse_args()
args.func(args) args.func(args)

View File

@ -9,3 +9,4 @@ stevedore>0.10
watchdog>=0.7.1 watchdog>=0.7.1
futures>=2.1.6 futures>=2.1.6
six>=1.6.1 six>=1.6.1
psutil>=1.1.1,<2.0.0