diff --git a/pyasic/settings/__init__.py b/pyasic/settings/__init__.py index 6a4e9877..ee566915 100644 --- a/pyasic/settings/__init__.py +++ b/pyasic/settings/__init__.py @@ -23,6 +23,7 @@ _settings = { # defaults "factory_get_retries": 1, "factory_get_timeout": 3, "get_data_retries": 1, + "api_function_timeout": 5, "default_whatsminer_password": "admin", "default_innosilicon_password": "admin", "default_antminer_password": "root", diff --git a/pyasic/web/antminer.py b/pyasic/web/antminer.py index f2c70c53..32249e5e 100644 --- a/pyasic/web/antminer.py +++ b/pyasic/web/antminer.py @@ -41,7 +41,7 @@ class AntminerModernWebAPI(BaseWebAPI): async with httpx.AsyncClient() as client: if parameters: data = await client.post( - url, data=json.dumps(parameters), auth=auth, timeout=15 # noqa + url, data=json.dumps(parameters), auth=auth, timeout=settings.get("api_function_timeout", 3) # noqa ) else: data = await client.get(url, auth=auth) @@ -152,7 +152,7 @@ class AntminerOldWebAPI(BaseWebAPI): async with httpx.AsyncClient() as client: if parameters: data = await client.post( - url, data=parameters, auth=auth, timeout=15 + url, data=parameters, auth=auth, timeout=settings.get("api_function_timeout", 3) ) else: data = await client.get(url, auth=auth) diff --git a/pyasic/web/goldshell.py b/pyasic/web/goldshell.py index 3a4e3ebb..d8517bcf 100644 --- a/pyasic/web/goldshell.py +++ b/pyasic/web/goldshell.py @@ -78,14 +78,14 @@ class GoldshellWebAPI(BaseWebAPI): response = await client.put( f"http://{self.ip}/mcb/{command}", headers={"Authorization": "Bearer " + self.jwt}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), json=parameters, ) else: response = await client.get( f"http://{self.ip}/mcb/{command}", headers={"Authorization": "Bearer " + self.jwt}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), ) json_data = response.json() return json_data @@ -108,7 +108,7 @@ class GoldshellWebAPI(BaseWebAPI): response = await client.get( f"http://{self.ip}/mcb/{command}", headers={"Authorization": "Bearer " + self.jwt}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), ) json_data = response.json() data[command] = json_data diff --git a/pyasic/web/inno.py b/pyasic/web/inno.py index a95935ef..679af1eb 100644 --- a/pyasic/web/inno.py +++ b/pyasic/web/inno.py @@ -60,7 +60,7 @@ class InnosiliconWebAPI(BaseWebAPI): response = await client.post( f"http://{self.ip}/api/{command}", headers={"Authorization": "Bearer " + self.jwt}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), json=parameters, ) json_data = response.json() @@ -96,7 +96,7 @@ class InnosiliconWebAPI(BaseWebAPI): response = await client.post( f"http://{self.ip}/api/{command}", headers={"Authorization": "Bearer " + self.jwt}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), ) json_data = response.json() data[command] = json_data diff --git a/pyasic/web/vnish.py b/pyasic/web/vnish.py index a2b81c47..c2381b7e 100644 --- a/pyasic/web/vnish.py +++ b/pyasic/web/vnish.py @@ -70,21 +70,21 @@ class VNishWebAPI(BaseWebAPI): response = await client.post( f"http://{self.ip}/api/v1/{command}", headers={"Authorization": auth}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), json=parameters, ) elif not parameters == {}: response = await client.post( f"http://{self.ip}/api/v1/{command}", headers={"Authorization": auth}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), json=parameters, ) else: response = await client.get( f"http://{self.ip}/api/v1/{command}", headers={"Authorization": auth}, - timeout=5, + timeout=settings.get("api_function_timeout", 5), ) if not response.status_code == 200: # refresh the token, retry