Skip to content

Commit e669955

Browse files
authored
Merge pull request #818 from valory-xyz/feat/http-server_configurable-timeout
Feat/http server configurable timeout
2 parents 099f505 + 912c680 commit e669955

12 files changed

Lines changed: 23 additions & 15 deletions

File tree

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ werkzeug = "*"
5959
pytest-asyncio = "*"
6060
multidict = "*"
6161
toml = "==0.10.2"
62+
typer = "==0.16.0"

docs/http-connection-and-skill.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Add the http server connection package:
2929
mkdir packages
3030
aea create my_aea
3131
cd my_aea
32-
aea add connection valory/http_server:0.22.0:bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa --remote
32+
aea add connection valory/http_server:0.22.0:bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm --remote
3333
aea push connection valory/http_server --local
3434
aea add protocol fetchai/default:1.0.0:bafybeifs26twgfmrcxxxrexsa42aol3rbktdqa3u5vvjlywzm5rh2nfmee --remote
3535
aea push protocol fetchai/default --local

docs/http-echo-demo.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The easiest way to get started with the http server is to use our pre-built exam
1616

1717
``` bash
1818
pipenv shell
19-
aea fetch open_aea/http_echo:0.1.0:bafybeiaajhdvpcc6z3nwy7cle632d6pl5ahe2dedynqf45yv2452hhzkq4 --remote
19+
aea fetch open_aea/http_echo:0.1.0:bafybeib72f22lpw7oyv7bekf3hhjts4bkn6532o4ysul7tee4ms575ngpi --remote
2020
cd http_echo
2121
aea generate-key ethereum; aea add-key ethereum
2222
aea install

docs/package_list.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
| connection/fetchai/gym/0.19.0 | `bafybeihqvwwagnfdftgygnlcbx6c66ayz7mywqeg56fkvgblynlgnogmna` |
1616
| connection/fetchai/stub/0.21.0 | `bafybeibuimb5unnszgkh3sfjihjtosyqeyx7mb6rtxvv7pbupvjr6owyum` |
1717
| connection/valory/ledger/0.19.0 | `bafybeifdsep5suryfufmto4j5fyvjhmlgypyg6zvvwqsm4edlwfbfsav5y` |
18-
| connection/valory/http_server/0.22.0 | `bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa` |
18+
| connection/valory/http_server/0.22.0 | `bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm` |
1919
| connection/valory/p2p_libp2p/0.1.0 | `bafybeifzslvb5sdayob4reuor35bmd2tr5oen4l77dx34eigcxtfcfv3ke` |
2020
| connection/valory/p2p_libp2p_client/0.1.0 | `bafybeihezztwiiismlbblbv67i4zibp7w6xzpqadt67mcdjaoauibjqii4` |
2121
| connection/valory/p2p_libp2p_mailbox/0.1.0 | `bafybeiggrmnx77hovphgmrtvmsaeinzhfagylajeinofr7xplockdqgvma` |
@@ -37,5 +37,5 @@
3737
| agent/fetchai/gym_aea/0.25.0 | `bafybeiabw3hlsoikbpyanikd6s6pcseihwn7nspskgpdng3u45wnmdncpm` |
3838
| agent/fetchai/my_first_aea/0.27.0 | `bafybeifpeoyiwykltjrjsp3m7dxuz44ypl6v4dkpgbghf7zonnikbmjmty` |
3939
| agent/open_aea/gym_aea/0.1.0 | `bafybeiazmkxqavujumrqb5v3ydc54x4f2yyvnpebhjcitwt6bkiamkggfe` |
40-
| agent/open_aea/http_echo/0.1.0 | `bafybeiaajhdvpcc6z3nwy7cle632d6pl5ahe2dedynqf45yv2452hhzkq4` |
40+
| agent/open_aea/http_echo/0.1.0 | `bafybeib72f22lpw7oyv7bekf3hhjts4bkn6532o4ysul7tee4ms575ngpi` |
4141
| agent/open_aea/my_first_aea/0.1.0 | `bafybeifptjiktbm4cl7hgu74regnj5ltbkbfmfrsstwpexqcru2zadko2u` |

packages/open_aea/agents/http_echo/aea-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fingerprint:
88
README.md: bafybeibkr6ecv5efx3hwxvxposvpmr76ugrj6kydeasb7bppo3ibynnjcu
99
fingerprint_ignore_patterns: []
1010
connections:
11-
- valory/http_server:0.22.0:bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa
11+
- valory/http_server:0.22.0:bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm
1212
contracts: []
1313
protocols:
1414
- fetchai/default:1.0.0:bafybeifs26twgfmrcxxxrexsa42aol3rbktdqa3u5vvjlywzm5rh2nfmee

packages/packages.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"connection/fetchai/gym/0.19.0": "bafybeihqvwwagnfdftgygnlcbx6c66ayz7mywqeg56fkvgblynlgnogmna",
1616
"connection/fetchai/stub/0.21.0": "bafybeibuimb5unnszgkh3sfjihjtosyqeyx7mb6rtxvv7pbupvjr6owyum",
1717
"connection/valory/ledger/0.19.0": "bafybeifdsep5suryfufmto4j5fyvjhmlgypyg6zvvwqsm4edlwfbfsav5y",
18-
"connection/valory/http_server/0.22.0": "bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa",
18+
"connection/valory/http_server/0.22.0": "bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm",
1919
"connection/valory/p2p_libp2p/0.1.0": "bafybeifzslvb5sdayob4reuor35bmd2tr5oen4l77dx34eigcxtfcfv3ke",
2020
"connection/valory/p2p_libp2p_client/0.1.0": "bafybeihezztwiiismlbblbv67i4zibp7w6xzpqadt67mcdjaoauibjqii4",
2121
"connection/valory/p2p_libp2p_mailbox/0.1.0": "bafybeiggrmnx77hovphgmrtvmsaeinzhfagylajeinofr7xplockdqgvma",
@@ -37,7 +37,7 @@
3737
"agent/fetchai/gym_aea/0.25.0": "bafybeiabw3hlsoikbpyanikd6s6pcseihwn7nspskgpdng3u45wnmdncpm",
3838
"agent/fetchai/my_first_aea/0.27.0": "bafybeifpeoyiwykltjrjsp3m7dxuz44ypl6v4dkpgbghf7zonnikbmjmty",
3939
"agent/open_aea/gym_aea/0.1.0": "bafybeiazmkxqavujumrqb5v3ydc54x4f2yyvnpebhjcitwt6bkiamkggfe",
40-
"agent/open_aea/http_echo/0.1.0": "bafybeiaajhdvpcc6z3nwy7cle632d6pl5ahe2dedynqf45yv2452hhzkq4",
40+
"agent/open_aea/http_echo/0.1.0": "bafybeib72f22lpw7oyv7bekf3hhjts4bkn6532o4ysul7tee4ms575ngpi",
4141
"agent/open_aea/my_first_aea/0.1.0": "bafybeifptjiktbm4cl7hgu74regnj5ltbkbfmfrsstwpexqcru2zadko2u"
4242
},
4343
"third_party": {}

packages/valory/connections/http_server/connection.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
REQUEST_TIMEOUT = 408
6565
SERVER_ERROR = 500
6666

67+
DEFAULT_RESPONSE_TIMEOUT = 5.0 # seconds
68+
6769
_default_logger = logging.getLogger("aea.packages.valory.connections.http_server")
6870

6971
RequestId = DialogueLabel
@@ -371,8 +373,6 @@ async def disconnect(self) -> None:
371373
class HTTPChannel(BaseAsyncChannel):
372374
"""A wrapper for an RESTful API with an internal HTTPServer."""
373375

374-
RESPONSE_TIMEOUT = 5.0
375-
376376
def __init__( # pylint: disable=too-many-positional-arguments
377377
self,
378378
address: Address,
@@ -381,7 +381,7 @@ def __init__( # pylint: disable=too-many-positional-arguments
381381
target_skill_id: PublicId,
382382
api_spec_path: Optional[str],
383383
connection_id: PublicId,
384-
timeout_window: float = RESPONSE_TIMEOUT,
384+
timeout_window: float,
385385
logger: logging.Logger = _default_logger,
386386
ssl_cert_path: Optional[str] = None,
387387
ssl_key_path: Optional[str] = None,
@@ -570,6 +570,10 @@ def __init__(self, **kwargs: Any) -> None:
570570
super().__init__(**kwargs)
571571
host = cast(Optional[str], self.configuration.config.get("host"))
572572
port = cast(Optional[int], self.configuration.config.get("port"))
573+
timeout = cast(
574+
float,
575+
self.configuration.config.get("timeout", DEFAULT_RESPONSE_TIMEOUT),
576+
)
573577
target_skill_id_ = cast(
574578
Optional[str], self.configuration.config.get("target_skill_id")
575579
)
@@ -594,6 +598,7 @@ def __init__(self, **kwargs: Any) -> None:
594598
target_skill_id,
595599
api_spec_path,
596600
connection_id=self.connection_id,
601+
timeout_window=timeout,
597602
logger=self.logger,
598603
ssl_cert_path=ssl_cert_path,
599604
ssl_key_path=ssl_key_path,

packages/valory/connections/http_server/connection.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ aea_version: '>=2.0.0, <3.0.0'
99
fingerprint:
1010
README.md: bafybeifepluovb4so2eem34ulpcp4svegb2dqfpmtojtofhfkb3j2xanui
1111
__init__.py: bafybeifykou5sazojmc7hdqnsdp4mncd4zh3xys3mdgdzwks23mvhzu2ga
12-
connection.py: bafybeicte5b6t45jqzlnxkx72u5sjwumuq3rqawy5dly42kcq7rxt3qj3i
12+
connection.py: bafybeignsd6wsv74wz2eutbqurehgtc6qrgd4fbuqt57gbxnys5cbnqx4m
1313
tests/__init__.py: bafybeifqaf7cnc4oczjkbwmv4ahrkbiqxrojwgowej3kbri3skz4lzt43i
1414
tests/data/certs/server.crt: bafybeiev5i3xxkvn36wflf633gkumuxexsw4y2bubwbvl7edrz4igfgv34
1515
tests/data/certs/server.csr: bafybeicvp7xdl5w3o4bzikkudpduitss3bpp6xqfwlxbw6kabdangohy5u
@@ -25,6 +25,7 @@ config:
2525
api_spec_path: null
2626
host: 127.0.0.1
2727
port: 8000
28+
timeout: null
2829
ssl_cert: null
2930
ssl_key: null
3031
target_skill_id: null

strategy.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,4 @@ urllib3: ==2.5.0
9898
; click is BSD-3-Clause licensed but tool doesn't detect it
9999
click: ==8.2.1
100100
; typing-extensions is PSF licensed but tool doesn't detect it
101-
typing-extensions: ==4.14.1
101+
typing-extensions: ==4.15.0

tests/test_docs/test_bash_yaml/md_files/bash-http-connection-and-skill.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ aea create my_aea
33
cd my_aea
44
```
55
``` bash
6-
aea add connection valory/http_server:0.22.0:bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa --remote
6+
aea add connection valory/http_server:0.22.0:bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm --remote
77
```
88
``` bash
99
aea config set agent.default_connection valory/http_server:0.22.0
@@ -48,7 +48,7 @@ models:
4848
mkdir packages
4949
aea create my_aea
5050
cd my_aea
51-
aea add connection valory/http_server:0.22.0:bafybeiegcpryvvquu24xlm3kqsaxvwgxij44lky6tp6mv6tpadhgg6guqa --remote
51+
aea add connection valory/http_server:0.22.0:bafybeicmy3phyy3ckvlfumioiadwlmlt5dijkp3mhezkxgx7kigigwe3rm --remote
5252
aea push connection valory/http_server --local
5353
aea add protocol fetchai/default:1.0.0:bafybeifs26twgfmrcxxxrexsa42aol3rbktdqa3u5vvjlywzm5rh2nfmee --remote
5454
aea push protocol fetchai/default --local

0 commit comments

Comments
 (0)