Add parameterized proxy client requests
This commit is contained in:
@@ -17,13 +17,21 @@ class ProtocolFailure(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def send_request(socket_path, resource, action):
|
||||
def send_request(
|
||||
socket_path,
|
||||
resource,
|
||||
action,
|
||||
parameters=None,
|
||||
):
|
||||
request = {
|
||||
"protocol_version": PROTOCOL_VERSION,
|
||||
"action": action,
|
||||
"resource": resource,
|
||||
}
|
||||
|
||||
if parameters is not None:
|
||||
request["parameters"] = parameters
|
||||
|
||||
try:
|
||||
sock = socket.socket(
|
||||
socket.AF_UNIX,
|
||||
@@ -166,12 +174,26 @@ def format_result(action, result):
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 6:
|
||||
if len(sys.argv) not in (6, 7):
|
||||
raise SystemExit(11)
|
||||
|
||||
socket_path = sys.argv[1]
|
||||
resource = sys.argv[2]
|
||||
action = sys.argv[3]
|
||||
request_parameters = None
|
||||
|
||||
if len(sys.argv) == 7:
|
||||
try:
|
||||
request_parameters = json.loads(sys.argv[6])
|
||||
|
||||
except (
|
||||
TypeError,
|
||||
json.JSONDecodeError,
|
||||
):
|
||||
raise SystemExit(11)
|
||||
|
||||
if not isinstance(request_parameters, dict):
|
||||
raise SystemExit(11)
|
||||
|
||||
try:
|
||||
transport_failure = int(sys.argv[4])
|
||||
@@ -188,6 +210,7 @@ def main():
|
||||
socket_path,
|
||||
resource,
|
||||
action,
|
||||
request_parameters,
|
||||
)
|
||||
|
||||
except TransportFailure:
|
||||
|
||||
Reference in New Issue
Block a user