Spdk/scripts/rpc/__init__.py

62 lines
1.4 KiB
Python
Raw Normal View History

import app
import bdev
import iscsi
import log
import lvol
import nbd
import net
import nvmf
import pmem
import subsystem
import vhost
import json
import sys
def get_rpc_methods(args):
return args.client.call('get_rpc_methods')
def save_config(args):
config = {
'subsystems': []
}
for elem in args.client.call('get_subsystems'):
cfg = {
'subsystem': elem['subsystem'],
'config': args.client.call('get_subsystem_config', {"name": elem['subsystem']})
}
config['subsystems'].append(cfg)
indent = args.indent
if args.filename is None:
if indent is None:
indent = 2
elif indent < 0:
indent = None
json.dump(config, sys.stdout, indent=indent)
sys.stdout.write('\n')
else:
if indent is None or indent < 0:
indent = None
with open(args.filename, 'w') as file:
json.dump(config, file, indent=indent)
file.write('\n')
def load_config(args):
if not args.filename or args.filename == '-':
config = json.load(sys.stdin)
else:
with open(args.filename, 'r') as file:
config = json.load(file)
for subsystem in config['subsystems']:
name = subsystem['subsystem']
config = subsystem['config']
if not config:
continue
for elem in subsystem['config']:
args.client.call(elem['method'], elem['params'])