summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pwbus.spec1155
-rw-r--r--sources1
3 files changed, 1157 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f3cf9f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pwbus-0.1.39.tar.gz
diff --git a/python-pwbus.spec b/python-pwbus.spec
new file mode 100644
index 0000000..22b3bd3
--- /dev/null
+++ b/python-pwbus.spec
@@ -0,0 +1,1155 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pwbus
+Version: 0.1.39
+Release: 1
+Summary: An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
+License: MIT License
+URL: https://github.com/fszostak/pwbus
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cd/3f/bd5ecea79a95638f1b06f7c1df3e4822751a34d1f35033520ac4ff840ff2/pwbus-0.1.39.tar.gz
+BuildArch: noarch
+
+Requires: python3-boto3
+Requires: python3-botocore
+Requires: python3-certifi
+Requires: python3-chardet
+Requires: python3-colorama
+Requires: python3-connection-pool
+Requires: python3-cursor
+Requires: python3-docutils
+Requires: python3-halo
+Requires: python3-idna
+Requires: python3-jmespath
+Requires: python3-kazoo
+Requires: python3-log-symbols
+Requires: python3-pika
+Requires: python3-pykafka
+Requires: python3-pymongo
+Requires: python3-dateutil
+Requires: python3-dotenv
+Requires: python3-redis
+Requires: python3-requests
+Requires: python3-s3transfer
+Requires: python3-six
+Requires: python3-spinners
+Requires: python3-tabulate
+Requires: python3-termcolor
+Requires: python3-urllib3
+Requires: python3-websockets
+
+%description
+# pwbus
+
+An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
+
+## Features
+
+- Message transformation
+- Task execution management
+- Asynchronous communication
+- Connectors
+
+
+Install:
+
+```
+$ pip3 install pwbus
+```
+
+Start the server:
+
+```
+$ pwbus -f pwbus-registry.json start
+```
+
+Sample: pwbus-registry.json
+
+```
+[
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync REDIS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-redis",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-redis",
+ "_comment": "### Channel for PWBus Demo Pseudosync REDIS",
+
+ "engine.enabled": true,
+ "engine.start_threads": 10,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 20,
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-rabbitmq",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-rabbitmq",
+ "_comment": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+
+ "engine.enabled": true,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "rabbitmq",
+ "flow.in.host": "rabbitmq",
+ "flow.in.port": 5672,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo AWS SQS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-sqs",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/408343843105/app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-sqs",
+ "_comment": "### Channel for PWBus Demo Pseudosync AWS SQS",
+
+ "engine.enabled": false,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "sqs",
+ "flow.in.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Apache Kafka",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-kafka",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-kafka",
+ "_comment": "### Channel for PWBus Demo Pseudosync Apache Kafka",
+
+ "engine.enabled": true,
+ "_____________warning": "if great than 1 cause message out duplication",
+ "engine.start_threads": 1,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "kafka",
+ "flow.in.host": "kafka",
+ "flow.in.port": 9092,
+ "flow.in.resource_name": "app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Mongo",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-mongo",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_request_in",
+ "flow.out.payload_format": "json",
+
+ "flow.out.reply_to": "pwbus_db.app_response_out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-mongo",
+ "_comment": "### Channel for PWBus Demo Pseudosync Mongo",
+
+ "engine.enabled": true,
+ "engine.start_threads": 3,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "mongo",
+ "flow.in.host": "mongodb",
+ "flow.in.port": 21017,
+ "flow.in.resource_name": "pwbus_db.app_request_in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_response_out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Async Service Request",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-async",
+
+ "engine.enabled": false,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": true
+ },
+ {
+ "channel": "app-channel-async-process-csv",
+ "_comment": "### Channel for PWBus Demo Async Service - Process to CSV",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.request.app-in",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.response.app-out",
+ "flow.out.payload_format": "csv",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-async-read-csv-send-http",
+ "_comment": "### Channel for PWBus Demo Async Service - read-csv-send-http",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.response.app-out",
+ "flow.in.payload_format": "csv",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "http",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ }
+]
+```
+
+
+
+
+%package -n python3-pwbus
+Summary: An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
+Provides: python-pwbus
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pwbus
+# pwbus
+
+An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
+
+## Features
+
+- Message transformation
+- Task execution management
+- Asynchronous communication
+- Connectors
+
+
+Install:
+
+```
+$ pip3 install pwbus
+```
+
+Start the server:
+
+```
+$ pwbus -f pwbus-registry.json start
+```
+
+Sample: pwbus-registry.json
+
+```
+[
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync REDIS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-redis",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-redis",
+ "_comment": "### Channel for PWBus Demo Pseudosync REDIS",
+
+ "engine.enabled": true,
+ "engine.start_threads": 10,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 20,
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-rabbitmq",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-rabbitmq",
+ "_comment": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+
+ "engine.enabled": true,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "rabbitmq",
+ "flow.in.host": "rabbitmq",
+ "flow.in.port": 5672,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo AWS SQS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-sqs",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/408343843105/app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-sqs",
+ "_comment": "### Channel for PWBus Demo Pseudosync AWS SQS",
+
+ "engine.enabled": false,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "sqs",
+ "flow.in.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Apache Kafka",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-kafka",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-kafka",
+ "_comment": "### Channel for PWBus Demo Pseudosync Apache Kafka",
+
+ "engine.enabled": true,
+ "_____________warning": "if great than 1 cause message out duplication",
+ "engine.start_threads": 1,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "kafka",
+ "flow.in.host": "kafka",
+ "flow.in.port": 9092,
+ "flow.in.resource_name": "app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Mongo",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-mongo",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_request_in",
+ "flow.out.payload_format": "json",
+
+ "flow.out.reply_to": "pwbus_db.app_response_out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-mongo",
+ "_comment": "### Channel for PWBus Demo Pseudosync Mongo",
+
+ "engine.enabled": true,
+ "engine.start_threads": 3,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "mongo",
+ "flow.in.host": "mongodb",
+ "flow.in.port": 21017,
+ "flow.in.resource_name": "pwbus_db.app_request_in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_response_out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Async Service Request",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-async",
+
+ "engine.enabled": false,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": true
+ },
+ {
+ "channel": "app-channel-async-process-csv",
+ "_comment": "### Channel for PWBus Demo Async Service - Process to CSV",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.request.app-in",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.response.app-out",
+ "flow.out.payload_format": "csv",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-async-read-csv-send-http",
+ "_comment": "### Channel for PWBus Demo Async Service - read-csv-send-http",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.response.app-out",
+ "flow.in.payload_format": "csv",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "http",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ }
+]
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for pwbus
+Provides: python3-pwbus-doc
+%description help
+# pwbus
+
+An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
+
+## Features
+
+- Message transformation
+- Task execution management
+- Asynchronous communication
+- Connectors
+
+
+Install:
+
+```
+$ pip3 install pwbus
+```
+
+Start the server:
+
+```
+$ pwbus -f pwbus-registry.json start
+```
+
+Sample: pwbus-registry.json
+
+```
+[
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync REDIS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-redis",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-redis",
+ "_comment": "### Channel for PWBus Demo Pseudosync REDIS",
+
+ "engine.enabled": true,
+ "engine.start_threads": 10,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 20,
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-rabbitmq",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-channel-pseudosync.response.app-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-rabbitmq",
+ "_comment": "### Channel for PWBus Demo Pseudosync RabbitMQ",
+
+ "engine.enabled": true,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "rabbitmq",
+ "flow.in.host": "rabbitmq",
+ "flow.in.port": 5672,
+ "flow.in.resource_name": "app-channel-pseudosync.request.app-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "rabbitmq",
+ "flow.out.host": "rabbitmq",
+ "flow.out.port": 5672,
+ "flow.out.resource_name": "app-channel-pseudosync.response.app-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo AWS SQS",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-sqs",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/408343843105/app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-sqs",
+ "_comment": "### Channel for PWBus Demo Pseudosync AWS SQS",
+
+ "engine.enabled": false,
+ "engine.start_threads": 2,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "sqs",
+ "flow.in.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "sqs",
+ "flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Apache Kafka",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-kafka",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-request-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 0,
+
+ "flow.out.reply_to": "app-response-out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-kafka",
+ "_comment": "### Channel for PWBus Demo Pseudosync Apache Kafka",
+
+ "engine.enabled": true,
+ "_____________warning": "if great than 1 cause message out duplication",
+ "engine.start_threads": 1,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "kafka",
+ "flow.in.host": "kafka",
+ "flow.in.port": 9092,
+ "flow.in.resource_name": "app-request-in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "kafka",
+ "flow.out.host": "kafka",
+ "flow.out.port": 9092,
+ "flow.out.resource_name": "app-response-out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Mongo",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-pseudosync-mongo",
+
+ "engine.enabled": true,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_request_in",
+ "flow.out.payload_format": "json",
+
+ "flow.out.reply_to": "pwbus_db.app_response_out",
+
+ "flow.message_dump": false,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-pseudosync-fake-mongo",
+ "_comment": "### Channel for PWBus Demo Pseudosync Mongo",
+
+ "engine.enabled": true,
+ "engine.start_threads": 3,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "mongo",
+ "flow.in.host": "mongodb",
+ "flow.in.port": 21017,
+ "flow.in.resource_name": "pwbus_db.app_request_in",
+ "flow.in.payload_format": "json",
+
+ "flow.out.resource_type": "mongo",
+ "flow.out.host": "mongodb",
+ "flow.out.port": 21017,
+ "flow.out.resource_name": "pwbus_db.app_response_out",
+ "flow.out.payload_format": "json",
+
+ "flow.message_dump": false,
+ "flow.execute_services": true
+ },
+
+ {
+ "_comment1": "----------------------------------------------------------",
+ "_comment2": "### Channel for PWBus Demo Async Service Request",
+ "_comment3": "----------------------------------------------------------",
+
+ "channel": "app-channel-async",
+
+ "engine.enabled": false,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "http",
+ "flow.in.resource_name": "/app/v1/request",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.request.app-in",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": true
+ },
+ {
+ "channel": "app-channel-async-process-csv",
+ "_comment": "### Channel for PWBus Demo Async Service - Process to CSV",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.request.app-in",
+ "flow.in.payload_format": "json",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "redis",
+ "flow.out.host": "redis",
+ "flow.out.port": 6379,
+ "flow.out.resource_name": "app-channel-async.response.app-out",
+ "flow.out.payload_format": "csv",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ },
+ {
+ "channel": "app-channel-async-read-csv-send-http",
+ "_comment": "### Channel for PWBus Demo Async Service - read-csv-send-http",
+
+ "engine.enabled": false,
+ "engine.start_threads": 4,
+ "engine.debug": true,
+
+ "flow.in.resource_type": "redis",
+ "flow.in.host": "redis",
+ "flow.in.port": 6379,
+ "flow.in.resource_name": "app-channel-async.response.app-out",
+ "flow.in.payload_format": "csv",
+ "flow.in.pseudosync_mode": false,
+
+ "flow.out.resource_type": "http",
+ "flow.out.payload_format": "json",
+ "flow.out.ttl_seconds": 10,
+ "flow.out.pseudosync_mode": false,
+
+ "flow.message_dump": true,
+ "flow.execute_services": false
+ }
+]
+```
+
+
+
+
+%prep
+%autosetup -n pwbus-0.1.39
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pwbus -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.39-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..cc62034
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9902431b8652d28658dcc7d80641f116 pwbus-0.1.39.tar.gz