Git Product home page Git Product logo

aries-acapy-plugin-redis-events's Introduction

ACA-PY Redis Queue Plugin - Has Moved! Lifecycle:Moved

Code Quality Check Tests

⚠️ Move Notice ⚠️

The ACA-PY Redis Queue Plugin has been donated to the Hyperledger Foundation Aries project and has been moved to its new home in the hyperledger/aries-acapy-plugins repository. You'll find it in the redis_events folder.

We're proud for the code to join the many other code contributions made by the Province of British Columbia to the Hyperledger Foundation.

This repository has been archived and will no longer be maintained.

About the ACA-PY Redis Queue Plugin

This plugin provides mechansim to persists both inbound and outbound messages, deliver messages and webhooks, and dispatch events.

For receiving inbound messages, you have an option to either setup a mediator or a relay [supports direct response].

For the mediator scenario:

  flowchart LR;
      InboundMsg([Inbound Msg])-->Mediator;
      Mediator-->InboundQueue[(Inbound Queue)];
      InboundQueue-->YourAgent{{Your Agent}};

For the relay scenario:

  flowchart LR;
      InboundMsg([Inbound Msg])-->Relay;
      Relay-->InboundQueue[(Inbound Queue)];
      InboundQueue-->YourAgent{{Your Agent}};

The demo directory contains a working example/template for both:

  • docker-compose.yml for mediation, and
  • docker-compose.relay.yml for relay

The deliverer service dispatches the outbound messages and webhooks. For the events, the payload is pushed to the relevant Redis LIST [for the topic name, refer to event.event_topic_maps] and further action is delegated to the controllers.

For the outbound scenario:

  flowchart LR;
      YourAgent{{Your Agent}}-->OutboundQueue[(Outbound Queue)];
      OutboundQueue-->Deliverer;
      Deliverer-->OutboundMsg([Outbound Msg]);

Code Structure

The directory structure within this repository is as follows:

│
│
└───redis_deliverer
│   deliver.py
└───redis_queue
│   └───events
│   inbound
│   outbound
│   config
│   utils
└───redis_relay
│   └───relay
|   |   relay
└───status_endpoint
|   status_endpoint
└───int
└───demo
└───docker
|

The code for the Deliverer and Relay processes are in the redis_deliverer and redis_relay directories, respectively. The status_endpoint directory contains code for health endpoints that is used by both of these processes.

The docker directory contains a dockerfile (and instructions) for running aca-py with the redis plugin.

The demo diretory contains example docker-compose files for running aca-py with redis using either of the Relay or Mediator scenarios.

Documentation

Design

Covered in ./redis_queue/README.md

Demo

Covered in ./demo/README.md

Docker

Covered in ./docker/README.md

Installation and Usage

First, install this plugin into your environment:

Note Deployments of the main branch of this repository must be used with ACA-Py artifacts created after ACA-Py PR #2170). If you are using an earlier ACA-Py release (e.g., version 0.8.2 and earlier), you MUST use the v0.0.1 tag of this repository.

$ pip install git+https://github.com/bcgov/[email protected]

When starting up ACA-Py, load the plugin along with any other startup parameters:

$ aca-py start --arg-file my_config.yml --plugin redis_queue.v1_0.events

Plugin configuration

The redis plugin is configured using an external yaml file. An example yaml configuration is:

redis_queue:
  connection:
    connection_url: "redis://default:[email protected]:6379"

  ### For Inbound ###
  inbound:
    acapy_inbound_topic: "acapy_inbound"
    acapy_direct_resp_topic: "acapy_inbound_direct_resp"

  ### For Outbound ###
  outbound:
    acapy_outbound_topic: "acapy_outbound"
    mediator_mode: false

  ### For Event ###
  event:
    event_topic_maps:
      ^acapy::webhook::(.*)$: acapy-webhook-$wallet_id
      ^acapy::record::([^:]*)::([^:]*)$: acapy-record-with-state-$wallet_id
      ^acapy::record::([^:])?: acapy-record-$wallet_id
      acapy::basicmessage::received: acapy-basicmessage-received
      acapy::problem_report: acapy-problem_report
      acapy::ping::received: acapy-ping-received
      acapy::ping::response_received: acapy-ping-response_received
      acapy::actionmenu::received: acapy-actionmenu-received
      acapy::actionmenu::get-active-menu: acapy-actionmenu-get-active-menu
      acapy::actionmenu::perform-menu-action: acapy-actionmenu-perform-menu-action
      acapy::keylist::updated: acapy-keylist-updated
      acapy::revocation-notification::received: acapy-revocation-notification-received
      acapy::revocation-notification-v2::received: acapy-revocation-notification-v2-received
      acapy::forward::received: acapy-forward-received
    event_webhook_topic_maps:
      acapy::basicmessage::received: basicmessages
      acapy::problem_report: problem_report
      acapy::ping::received: ping
      acapy::ping::response_received: ping
      acapy::actionmenu::received: actionmenu
      acapy::actionmenu::get-active-menu: get-active-menu
      acapy::actionmenu::perform-menu-action: perform-menu-action
      acapy::keylist::updated: keylist
    deliver_webhook: true

The configuration parameters in the above example are:

Connection:

  • redis_queue.connection.connection_url: This is required and is expected in redis://{username}:{password}@{host}:{port} format.

Inbound:

  • redis_queue.inbound.acapy_inbound_topic: This is the topic prefix for the inbound message queues. Recipient key of the message are also included in the complete topic name. The final topic will be in the following format acapy_inbound_{recip_key}
  • redis_queue.inbound.acapy_direct_resp_topic: Queue topic name for direct responses to inbound message.

Outbound:

  • redis_queue.outbound.acapy_outbound_topic: Queue topic name for the outbound messages. Used by Deliverer service to deliver the payloads to specified endpoint.
  • redis_queue.outbound.mediator_mode: Set to true, if using Redis as a http bridge when setting up a mediator agent. By default, it is set to false.

Events:

  • event.event_topic_maps: Event topic map
  • event.event_webhook_topic_maps: Event to webhook topic map
  • event.deliver_webhook: When set to true, this will deliver webhooks to endpoints specified in admin.webhook_urls. By default, set to true.

Plugin deployment

Once the plugin config is defined, it is possible to deploy the plugin inside ACA-Py.

$ aca-py start \
    --plugin redis_queue.v1_0.events \
    --plugin-config plugins-config.yaml \
    -it redis_queue.v1_0.inbound redis 0 -ot redis_queue.v1_0.outbound
    # ... the remainder of your startup arguments

Status Endpoints

Relay and Deliverer service have the following service endpoints available:

  • GEThttp://{STATUS_ENDPOINT_HOST}:{STATUS_ENDPOINT_PORT}/status/ready
  • GEThttp://{STATUS_ENDPOINT_HOST}:{STATUS_ENDPOINT_PORT}/status/live

The configuration for the endpoint service can be provided as following for relay and deliverer. The API KEY should be provided in the header with access_token as key name.

environment:
    - STATUS_ENDPOINT_HOST=0.0.0.0
    - STATUS_ENDPOINT_PORT=7001
    - STATUS_ENDPOINT_API_KEY=test_api_key_1

aries-acapy-plugin-redis-events's People

Contributors

dbluhm avatar esune avatar frostyfrog avatar ianco avatar jamshale avatar jsyro avatar shaangill025 avatar swcurran avatar wadebarnes avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aries-acapy-plugin-redis-events's Issues

Cannot install the plugin with pip

Hello,

when running the install command from the readme
$ pip install git+https://github.com/bcgov/aries-acapy-plugin-redis-events.git
I am getting the error in the image
image (9)

Any ideas what could be wrong?

Thanks

Option to read redis connection from ENV

Could redis connection url be set via ENV variable?
Most of acapy configs can be configured this way and it's a lot easier to reuse already built images than building an image for each env if connection url differs (or using them in CI runners).

Error while executing poetry install

Hi,
I have had some trouble running the Demo. I found that the problem it's because of Poetry (maybe?). Given that install-poetry.py has been deprecated, I'm using the install.python-poetry.org instead (check poetry doc https://python-poetry.org/docs/ ). So I modified the Dockerfile in redis_deliverer and redis_relay folders but a different error shows. Maybe the problem is the version of poetry i'm using? I tried with 1.4,1.2, 1.1.5,1.1.15,
Anyone has an idea...?
Thanks in advance

Error example (with poetry 1.1.15)
[base 8/8] RUN poetry install:
#0 0.492 Creating virtualenv redis-deliverer in /usr/src/app/.venv
#0 1.214 Installing dependencies from lock file
#0 1.761
#0 1.761 Package operations: 49 installs, 0 updates, 0 removals
#0 1.761
#0 1.762 • Installing typing-extensions (4.3.0)
#0 1.763 • Installing zipp (3.6.0)
#0 2.860 • Installing distlib (0.3.5)
#0 2.862 • Installing filelock (3.4.1)
#0 2.863 • Installing frozenlist (1.2.0)
#0 2.864 • Installing idna (3.3)
#0 2.864 • Installing importlib-metadata (4.8.3)
#0 2.865 • Installing multidict (5.2.0)
#0 2.866 • Installing platformdirs (2.4.0)
#0 2.867 • Installing pyparsing (3.0.9)
#0 2.868 • Installing wrapt (1.14.1)
#0 6.543 • Installing aiosignal (1.2.0)
#0 6.544 • Installing asgiref (3.4.1)
#0 6.545 • Installing async-timeout (4.0.2)
#0 6.546 • Installing asynctest (0.13.0)
#0 6.547 • Installing attrs (22.1.0)
#0 6.548 • Installing cfgv (3.3.1)
#0 6.549 • Installing charset-normalizer (2.1.1)
#0 6.551 • Installing click (8.0.4)
#0 6.552 • Installing deprecated (1.2.13)
#0 6.553 • Installing h11 (0.13.0)
#0 7.356 • Installing identify (2.4.4)
#0 7.358 • Installing iniconfig (1.1.1)
#0 7.369 • Installing mccabe (0.6.1)
#0 7.430 • Installing mypy-extensions (0.4.3)
#0 7.490 • Installing nodeenv (1.6.0)
#0 7.533 • Installing packaging (21.3)
#0 7.556 • Installing pathspec (0.9.0)
#0 7.585 • Installing pluggy (1.0.0)
#0 7.587 • Installing py (1.11.0)
#0 7.631 • Installing pycodestyle (2.7.0)
#0 7.892 • Installing pydantic (1.9.2)
#0 7.894 • Installing pyflakes (2.3.1)
#0 7.924 • Installing pyyaml (6.0)
#0 7.969 • Installing starlette (0.14.2)
#0 8.046 • Installing toml (0.10.2)
#0 8.145 • Installing tomli (1.2.3)
#0 8.147 • Installing typed-ast (1.5.4)
#0 8.193 • Installing virtualenv (20.16.2)
#0 8.208 • Installing yarl (1.7.2)
#0 14.82
#0 14.82 EnvCommandError
#0 14.82
#0 14.82 Command ['/usr/src/app/.venv/bin/pip', 'install', '--no-deps', '/root/.cache/pypoetry/artifacts/02/51/fc/a99b1209979acb173a2e39a0ab2ad2b6c20466217006fbe3454d6e4564/PyYAML-6.0.tar.gz'] errored with the following return code 1, and output:
#0 14.82 Processing /root/.cache/pypoetry/artifacts/02/51/fc/a99b1209979acb173a2e39a0ab2ad2b6c20466217006fbe3454d6e4564/PyYAML-6.0.tar.gz
#0 14.82 Installing build dependencies: started
#0 14.82 Installing build dependencies: finished with status 'done'
#0 14.82 Getting requirements to build wheel: started
#0 14.82 Getting requirements to build wheel: finished with status 'error'
#0 14.82 error: subprocess-exited-with-error
#0 14.82
#0 14.82 × Getting requirements to build wheel did not run successfully.
#0 14.82 │ exit code: 1
#0 14.82 ╰─> [48 lines of output]
#0 14.82 running egg_info
#0 14.82 writing lib/PyYAML.egg-info/PKG-INFO
#0 14.82 writing dependency_links to lib/PyYAML.egg-info/dependency_links.txt
#0 14.82 writing top-level names to lib/PyYAML.egg-info/top_level.txt
#0 14.82 Traceback (most recent call last):
#0 14.82 File "/usr/src/app/.venv/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in
#0 14.82 main()
#0 14.82 File "/usr/src/app/.venv/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
#0 14.82 json_out['return_val'] = hook(**hook_input['kwargs'])
#0 14.82 File "/usr/src/app/.venv/lib/python3.7/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
#0 14.82 return hook(config_settings)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel
#0 14.82 return self._get_build_requires(config_settings, requirements=['wheel'])
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 323, in _get_build_requires
#0 14.82 self.run_setup()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 338, in run_setup
#0 14.82 exec(code, locals())
#0 14.82 File "", line 312, in
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/init.py", line 107, in setup
#0 14.82 return distutils.core.setup(**attrs)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 185, in setup
#0 14.82 return run_commands(dist)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
#0 14.82 dist.run_commands()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
#0 14.82 self.run_command(cmd)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/dist.py", line 1234, in run_command
#0 14.82 super().run_command(command)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
#0 14.82 cmd_obj.run()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 314, in run
#0 14.82 self.find_sources()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 322, in find_sources
#0 14.82 mm.run()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 551, in run
#0 14.82 self.add_defaults()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/command/egg_info.py", line 589, in add_defaults
#0 14.82 sdist.add_defaults(self)
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/command/sdist.py", line 104, in add_defaults
#0 14.82 super().add_defaults()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
#0 14.82 self._add_defaults_ext()
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/command/sdist.py", line 336, in _add_defaults_ext
#0 14.82 self.filelist.extend(build_ext.get_source_files())
#0 14.82 File "", line 204, in get_source_files
#0 14.82 File "/tmp/pip-build-env-5bhj2yzm/overlay/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 107, in getattr
#0 14.82 raise AttributeError(attr)
#0 14.82 AttributeError: cython_sources
#0 14.82 [end of output]
#0 14.82
#0 14.82 note: This error originates from a subprocess, and is likely not a problem with pip.
#0 14.82 error: subprocess-exited-with-error
#0 14.82
#0 14.82 × Getting requirements to build wheel did not run successfully.
#0 14.82 │ exit code: 1
#0 14.82 ╰─> See above for output.
#0 14.82
#0 14.82 note: This error originates from a subprocess, and is likely not a problem with pip.
#0 14.82
#0 14.82 [notice] A new release of pip available: 22.2.1 -> 23.3
#0 14.82 [notice] To update, run: pip install --upgrade pip
#0 14.82
#0 14.82
#0 14.82 at /opt/poetry/venv/lib/python3.7/site-packages/poetry/utils/env.py:1074 in run
#0 14.84 1070│ output = subprocess.check_output(
#0 14.84 1071│ cmd, stderr=subprocess.STDOUT, **kwargs
#0 14.84 1072│ )
#0 14.84 1073│ except CalledProcessError as e:
#0 14.84 → 1074│ raise EnvCommandError(e, input=input
)
#0 14.84 1075│
#0 14.84 1076│ return decode(output)
#0 14.84 1077│
#0 14.84 1078│ def execute(self, bin, *args, **kwargs):
#0 14.84

Existing installations of ACA-Py are downgraded when installing this plugin

When building a persistent queue mediator instance using this Dockerfile and overriding the FROM to use ghcr.io/hyperledger/aries-cloudagent-python:py3.9-0.10.4, the resulting image contains ACA-Py 0.8.2. The plugin install step unexpectedly downgrades the ACA-Py version.

build.log

The resulting image encounters startup errors. This new image was upgrading an existing, working, image.

2023-10-24 20:24:21,866 aries_cloudagent.resolver WARNING Ledger is not configured, not loading IndyDIDResolver
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: ^acapy::webhook::(.*)$
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: ^acapy::record::([^:]*)::([^:]*)$
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: ^acapy::record::([^:])?
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: acapy::basicmessage::received
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: acapy::problem_report
2023-10-24 20:24:21,867 redis_queue.v1_0.events INFO subscribing to event: acapy::ping::received
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::ping::response_received
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::actionmenu::received
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::actionmenu::get-active-menu
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::actionmenu::perform-menu-action
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::keylist::updated
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::revocation-notification::received
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::revocation-notification-v2::received
2023-10-24 20:24:21,868 redis_queue.v1_0.events INFO subscribing to event: acapy::forward::received
2023-10-24 20:24:21,996 aries_cloudagent.core.profile INFO Create profile manager: askar
2023-10-24 20:24:22,781 aries_cloudagent.askar.profile INFO Ledger support is disabled
2023-10-24 20:24:22,790 aries_cloudagent.config.ledger INFO Ledger instance not provided
2023-10-24 20:24:22,790 aries_cloudagent.core.conductor WARNING No ledger configured

::::::::::::::::::::::::::::::::::::::::::::::
:: BC Mediator (pq)(Dev)                    ::
::                                          ::
::                                          ::
:: Inbound Transports:                      ::
::                                          ::
::   - http://0.0.0.0:3000                  ::
::   - ws://0.0.0.0:3001                    ::
::                                          ::
:: Outbound Transports:                     ::
::                                          ::
::   - http                                 ::
::   - https                                ::
::   - ws                                   ::
::   - wss                                  ::
::                                          ::
:: Public DID Information:                  ::
::                                          ::
::   - DID: 3TbfvFPs93ZV2P8RgPfoAs          ::
::                                          ::
:: Administration API:                      ::
::                                          ::
::   - http://0.0.0.0:3002                  ::
::                                          ::
::                               ver: 0.8.2 ::
::::::::::::::::::::::::::::::::::::::::::::::

Listening...

2023-10-24 20:24:22,912 aries_cloudagent.core.conductor INFO Existing acapy_version storage record found, version set to v0.8.1
2023-10-24 20:24:22,918 aries_cloudagent.commands.upgrade INFO Running upgrade process for v0.8.1
2023-10-24 20:24:26,708 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:24:26 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:24:36,708 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:24:36 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:24:46,707 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:24:46 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:24:50,448 aries_cloudagent.commands.upgrade INFO All recs of <class 'aries_cloudagent.connections.models.conn_record.ConnRecord'> successfully re-saved
2023-10-24 20:24:50,451 aries_cloudagent.commands.upgrade INFO acapy_version storage record set to v0.8.2
2023-10-24 20:24:56,752 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:24:56 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:25:02,832 aries_cloudagent.core.event_bus ERROR Error occurred while processing event
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 577, in connect
    await self.retry.call_with_retry(
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
    return await do()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 922, in _connect
    reader, writer = await asyncio.open_connection(
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1065, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1050, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 961, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 284, in __await__
    yield self  # This tells Task to wait for completion.
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 328, in __wakeup
    future.result()
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 535, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('10.97.52.142', 6379)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 48, in redis_setup
    await redis.ping(target_nodes=RedisCluster.PRIMARIES)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 725, in execute_command
    raise e
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 704, in execute_command
    values = await asyncio.gather(
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 328, in __wakeup
    future.result()
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 256, in __step
    result = coro.send(None)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 750, in _execute_command
    return await target_node.execute_command(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 1016, in execute_command
    await connection.send_packed_command(connection.pack_command(*args), False)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 713, in send_packed_command
    await self.connect()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 585, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 113 connecting to 10.97.52.142:6379. 113.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aries_cloudagent/core/event_bus.py", line 121, in notify
    await processor()
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 84, in handle_event
    redis = await redis_setup(profile, event)
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 51, in redis_setup
    raise TransportError(f"No Redis instance setup, {err}")
aries_cloudagent.transport.error.TransportError: No Redis instance setup, Error 113 connecting to 10.97.52.142:6379. 113.
2023-10-24 20:25:05,968 aries_cloudagent.core.event_bus ERROR Error occurred while processing event
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 577, in connect
    await self.retry.call_with_retry(
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
    return await do()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 922, in _connect
    reader, writer = await asyncio.open_connection(
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1065, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1050, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 961, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 284, in __await__
    yield self  # This tells Task to wait for completion.
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 328, in __wakeup
    future.result()
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 535, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('10.97.58.97', 6379)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 48, in redis_setup
    await redis.ping(target_nodes=RedisCluster.PRIMARIES)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 676, in execute_command
    await self.initialize()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 384, in initialize
    await self.commands_parser.initialize(
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/parser.py", line 34, in initialize
    commands = await self.node.execute_command("COMMAND")
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 1016, in execute_command
    await connection.send_packed_command(connection.pack_command(*args), False)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 713, in send_packed_command
    await self.connect()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 585, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 113 connecting to 10.97.58.97:6379. 113.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aries_cloudagent/core/event_bus.py", line 121, in notify
    await processor()
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 84, in handle_event
    redis = await redis_setup(profile, event)
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 51, in redis_setup
    raise TransportError(f"No Redis instance setup, {err}")
aries_cloudagent.transport.error.TransportError: No Redis instance setup, Error 113 connecting to 10.97.58.97:6379. 113.
Invitation URL (Connections protocol):

Displays invite here ...

2023-10-24 20:25:06,599 aiohttp.access INFO 10.97.114.64 [24/Oct/2023:20:25:06 +0000] "GET /status/ready HTTP/1.1" 200 172 "-" "kube-probe/1.25"
2023-10-24 20:25:06,706 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:25:06 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:25:16,707 aiohttp.access INFO 10.97.128.1 [24/Oct/2023:20:25:16 +0000] "GET / HTTP/1.1" 200 168 "-" "kube-probe/1.25"
2023-10-24 20:25:18,448 aries_cloudagent.core.event_bus ERROR Error occurred while processing event
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 577, in connect
    await self.retry.call_with_retry(
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
    return await do()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 922, in _connect
    reader, writer = await asyncio.open_connection(
  File "/usr/local/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1065, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1050, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 961, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 284, in __await__
    yield self  # This tells Task to wait for completion.
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 328, in __wakeup
    future.result()
  File "/usr/local/lib/python3.9/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 535, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('10.97.52.142', 6379)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 48, in redis_setup
    await redis.ping(target_nodes=RedisCluster.PRIMARIES)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 725, in execute_command
    raise e
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 704, in execute_command
    values = await asyncio.gather(
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 328, in __wakeup
    future.result()
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 256, in __step
    result = coro.send(None)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 750, in _execute_command
    return await target_node.execute_command(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/cluster.py", line 1016, in execute_command
    await connection.send_packed_command(connection.pack_command(*args), False)
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 713, in send_packed_command
    await self.connect()
  File "/usr/local/lib/python3.9/site-packages/redis/asyncio/connection.py", line 585, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 113 connecting to 10.97.52.142:6379. 113.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aries_cloudagent/core/event_bus.py", line 121, in notify
    await processor()
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 56, in on_startup
    await redis_setup(profile, event)
  File "/usr/local/lib/python3.9/site-packages/redis_queue/v1_0/events/__init__.py", line 51, in redis_setup
    raise TransportError(f"No Redis instance setup, {err}")
aries_cloudagent.transport.error.TransportError: No Redis instance setup, Error 113 connecting to 10.97.52.142:6379. 113.

Add project lifecycle badge

No Project Lifecycle Badge found in your readme!

Hello! I scanned your readme and could not find a project lifecycle badge. A project lifecycle badge will provide contributors to your project as well as other stakeholders (platform services, executive) insight into the lifecycle of your repository.

What is a Project Lifecycle Badge?

It is a simple image that neatly describes your project's stage in its lifecycle. More information can be found in the project lifecycle badges documentation.

What do I need to do?

I suggest you make a PR into your README.md and add a project lifecycle badge near the top where it is easy for your users to pick it up :). Once it is merged feel free to close this issue. I will not open up a new one :)

It's Been a While Since This Repository has Been Updated

This issue is a kind reminder that your repository has been inactive for 181 days. Some repositories are maintained in accordance with business requirements that infrequently change thus appearing inactive, and some repositories are inactive because they are unmaintained.

To help differentiate products that are unmaintained from products that do not require frequent maintenance, repomountie will open an issue whenever a repository has not been updated in 180 days.

  • If this product is being actively maintained, please close this issue.
  • If this repository isn't being actively maintained anymore, please archive this repository. Also, for bonus points, please add a dormant or retired life cycle badge.

Thank you for your help ensuring effective governance of our open-source ecosystem!

It's Been a While Since This Repository has Been Updated

This issue is a kind reminder that your repository has been inactive for 180 days. Some repositories are maintained in accordance with business requirements that infrequently change thus appearing inactive, and some repositories are inactive because they are unmaintained.

To help differentiate products that are unmaintained from products that do not require frequent maintenance, repomountie will open an issue whenever a repository has not been updated in 180 days.

  • If this product is being actively maintained, please close this issue.
  • If this repository isn't being actively maintained anymore, please archive this repository. Also, for bonus points, please add a dormant or retired life cycle badge.

Thank you for your help ensuring effective governance of our open-source ecosystem!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.