Use separate connect and data timeouts
This allows us to keep a very low connect timeout of 3 seconds, but also ensure that long commands (e.g. --wait or VM disable) can take as long as the API requires to complete. Avoids having to explicitly set very long single-instance timeouts for other functions which would block forever on an unreachable API.
This commit is contained in:
parent
bc722ce9b8
commit
d76da0f25a
|
@ -123,8 +123,10 @@ def call_api(
|
||||||
params=None,
|
params=None,
|
||||||
data=None,
|
data=None,
|
||||||
files=None,
|
files=None,
|
||||||
timeout=3,
|
|
||||||
):
|
):
|
||||||
|
# Set the connect timeout to 3 seconds but extremely long (48 hour) data timeout
|
||||||
|
timeout = (3, 172800)
|
||||||
|
|
||||||
# Craft the URI
|
# Craft the URI
|
||||||
uri = "{}://{}{}{}".format(
|
uri = "{}://{}{}{}".format(
|
||||||
config["api_scheme"], config["api_host"], config["api_prefix"], request_uri
|
config["api_scheme"], config["api_host"], config["api_prefix"], request_uri
|
||||||
|
|
|
@ -377,19 +377,12 @@ def vm_state(config, vm, target_state, force=False, wait=False):
|
||||||
API arguments: state={state}, wait={wait}
|
API arguments: state={state}, wait={wait}
|
||||||
API schema: {"message":"{data}"}
|
API schema: {"message":"{data}"}
|
||||||
"""
|
"""
|
||||||
if wait or target_state == "disable":
|
|
||||||
timeout = 300
|
|
||||||
else:
|
|
||||||
timeout = 3
|
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
"state": target_state,
|
"state": target_state,
|
||||||
"force": str(force).lower(),
|
"force": str(force).lower(),
|
||||||
"wait": str(wait).lower(),
|
"wait": str(wait).lower(),
|
||||||
}
|
}
|
||||||
response = call_api(
|
response = call_api(config, "post", "/vm/{vm}/state".format(vm=vm), params=params)
|
||||||
config, "post", "/vm/{vm}/state".format(vm=vm), params=params, timeout=timeout
|
|
||||||
)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
retstatus = True
|
retstatus = True
|
||||||
|
|
Loading…
Reference in New Issue