-#!/usr/bin/env python3
+#!/usr/bin/env python2
# Copyright (c) 2021 DataDirect Networks, Inc.
# All Rights Reserved.
# Author: flei@ddn.com
Manage all PCC devices and services
"""
+from __future__ import print_function
+
import argparse
import errno
import json
"""
cmdline = ['pkill', '--signal', '0', '--pidfile', pidfile, '--', procname]
eprint(cmdline)
- cproc = subprocess.run(cmdline, check=False, stderr=subprocess.DEVNULL)
- if cproc.returncode != 0:
+ returncode = subprocess.call(cmdline)
+ if returncode != 0:
return False
return True
"""
cmdline = ['pkill', '--pidfile', pidfile, '--', procname]
eprint(cmdline)
- cproc = subprocess.run(cmdline, check=False)
- return cproc.returncode
+ returncode = subprocess.call(cmdline)
+ return returncode
def _add_pcc(self):
eprint("Adding PCC...")
cmdline = ['lctl', 'pcc', 'add', self.lpcc_mount, self.lpcc_cache, \
'--param', param]
eprint(cmdline)
- cproc = subprocess.run(cmdline, check=False)
- return cproc.returncode
+ returncode = subprocess.call(cmdline)
+ return returncode
def _del_pcc(self):
eprint("Deleting PCC...")
cmdline = ['lctl', 'pcc', 'del', self.lpcc_mount, self.lpcc_cache]
eprint(cmdline)
- cproc = subprocess.run(cmdline, check=False)
- return cproc.returncode
+ returncode = subprocess.call(cmdline)
+ return returncode
def _start_lpcc_purge(self):
eprint("Starting lpcc_purge...")
def _stats_lpcc_purge(self):
pidfile = '/var/run/lpcc_purge-%d.pid' % self.lpcc_roid
cmdline = ['pkill', '--signal', 'USR1', '--pidfile', pidfile, '--', 'lpcc_purge']
- subprocess.run(cmdline, check=True)
+ subprocess.call(cmdline)
statsfile = '/var/run/lpcc_purge-%d.stats' % self.lpcc_roid
stats_obj = None
try:
conn, _ = LISTEN_SOCK.accept()
request_str = conn.makefile().readline()
- request = json.loads(request_str)
+ request = yaml.safe_load(request_str)
except Exception as ex:
eprint(ex)
eprint("Response:", response)
try:
- conn.send(bytes(json.dumps(response), encoding='utf-8'))
- conn.close()
+ conn.sendall(json.dumps(response))
+ conn.shutdown(socket.SHUT_WR)
except Exception as ex:
eprint(ex)
break
except ValueError:
break
+ except select.error:
+ break
if LISTEN_SOCK in rset:
self._serve_cmd()
"please check whether the monitor service started!")
sys.exit(1)
- sock.sendall(bytes(json.dumps(cmd), encoding='utf-8'))
+ sock.sendall(json.dumps(cmd))
sock.shutdown(socket.SHUT_WR)
response = sock.makefile().readline()
sock.close()
- return json.loads(response)
+ return yaml.safe_load(response)
def sigint_handler(signum, frame):
"""
#pylint: disable=unused-argument
# close the listen socket to notify the monitor service to exit
- eprint("Received signal %s" % signal.Signals(signum).name)
+ eprint("Received signal %d" % signum)
LISTEN_SOCK.close()
def main():