Skip to main content

app-merge component for pop-evbus

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

This project contains app-merge components for pop-evbus .

Getting Started

Prerequisites

  • Python 3.8+

  • git (if installing from source, or contributing to the project)

Installation

If wanting to use evbus-pika, you can do so by either installing from PyPI or from source.

Install from PyPI

pip install evbus-pika

Install from source

# clone repo
git clone git@gitlab.com:vmware/idem/evbus-pika.git
cd evbus-pika

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

Configure pop-evbus for your app.

Create a pika profile

pika:
  default:
    connection:
      host: localhost
      port: 5672
      login: guest
      password: guest
    routing_key:

Encrypt the credentials file and export the ACCT environment variables

$ pip install acct
$ export ACCT_KEY=$(acct encrypt credentials.yml)
$ export ACCT_FILE="$PWD/credentials.yml.fernet"

Now when you put a message on the evbus queue, it will be propagated to your configured pika implementation.

async def my_func(hub):
    await hub.evbus.broker.put(body={"message": "event content"}, profile="default")

Testing

The rabbitmq-server binary needs to be installed via your package manager. Start a local rabbitmq-server with the default parameters:

$ docker run -p 5672:5672 \
--env RABBITMQ_HOSTS=localhost \
--env RABBITMQ_PORT=5672 \
--env RABBITMQ_USER=guest \
--env RABBITMQ_PASS=guest \
--env RABBITMQ_PROTOCOL=amqp \
rabbitmq:management

Configure credentials for testing with a local rabbitmq server:

# credentials.yml
pika:
  test_development_evbus_pika:
    connection:
      host: localhost
      port: 5672
      login: guest
      password: guest
    routing_key:

Encrypt the credentials file and export the ACCT environment variables

$ pip install acct
$ export ACCT_KEY=$(acct encrypt credentials.yml)
$ export ACCT_FILE="$PWD/credentials.yml"

Install testing requirements

$ pip install -r requirements/test.in

Run the tests with pytest: .. code-block:: bash

$ pytest tests

Roadmap

Reference the open issues for a list of proposed features (and known issues).

Acknowledgements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evbus-pika-5.0.0.tar.gz (7.9 kB view hashes)

Uploaded Source

Built Distribution

evbus_pika-5.0.0-py3-none-any.whl (7.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page