xref: /spdk/python/spdk/rpc/cmd_parser.py (revision d4d9a181db314d25e048ca14d48f0a7019ae5fa3)
1#  SPDX-License-Identifier: BSD-3-Clause
2#  Copyright (C) 2021 Intel Corporation.
3#  All rights reserved.
4
5args_global = ['server_addr', 'port', 'timeout', 'verbose', 'dry_run', 'conn_retries',
6               'is_server', 'rpc_plugin', 'called_rpc_name', 'func', 'client', 'go_client']
7
8
9def strip_globals(kwargs):
10    for arg in args_global:
11        kwargs.pop(arg, None)
12
13
14def remove_null(kwargs):
15    keys = []
16    for key, value in kwargs.items():
17        if value is None:
18            keys.append(key)
19
20    for key in keys:
21        kwargs.pop(key, None)
22
23
24def apply_defaults(kwargs, **defaults):
25    for key, value in defaults.items():
26        if key not in kwargs:
27            kwargs[key] = value
28
29
30def group_as(kwargs, name, values):
31    group = {}
32    for arg in values:
33        if arg in kwargs and kwargs[arg] is not None:
34            group[arg] = kwargs.pop(arg, None)
35    kwargs[name] = group
36