Skip to main content

Asynchronous xApp framework

Project description

aiomsa

build style PyPI - Downloads

aiomsa is a Python 3.7+ framework built using asyncio. At its core, aiomsa provides a simple and standardized way to write xApps that can be deployed as microservices in Python.

Installation

aiomsa can be installed from PyPI.

pip install aiomsa

You can also get the latest code from GitHub.

poetry add git+https://github.com/facebookexternal/aiomsa

Getting Started

The follwing example shows how to use aiomsa to create a simple xApp for subscribing to the E2T service for a particular custom service model.

import asyncio

import aiomsa
import aiomsa.abc
from onos_ric_sdk_py import E2Client, SDLClient

from .models import MyModel


async def run(e2: aiomsa.abc.E2Client, e2_node_id: str) -> None:
   subscription = await e2.subscribe(
      e2_node_id,
      service_model_name="my_model",
      service_model_version="v1",
      subscription_id="my_app-my_model-sub",
      trigger=bytes(MyModel(param="foo")),
      actions=[
         aiomsa.abc.RICAction(
            id=1,
            type=aiomsa.abc.RICActionType.REPORT,
            subsequent_action_type=aiomsa.abc.RICSubsequentActionType.CONTINUE,
            time_to_wait=aiomsa.abc.RICTimeToWait.ZERO,
         )
      ],
   )

   async for (_header, message) in subscription:
      print(message)


async def main() -> None:
   async with E2Client(app_id="my_app", e2t_endpoint="e2t:5150") as e2, SDLClient(
      topo_endpoint="topo:5150"
   ) as sdl:
      async for e2_node in sdl.watch_e2_connections():
         asyncio.create_task(run(e2, e2_node.id))


if __name__ == "__main__":
   aiomsa.run(main())

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

aiomsa-0.1.0a8.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

aiomsa-0.1.0a8-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file aiomsa-0.1.0a8.tar.gz.

File metadata

  • Download URL: aiomsa-0.1.0a8.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Linux/5.8.0-1036-azure

File hashes

Hashes for aiomsa-0.1.0a8.tar.gz
Algorithm Hash digest
SHA256 3c0a177a5482ff0c50f5a6274e76576796f582249099f38a1b8072b2f6c93917
MD5 edb0a8aebddf6392eea1a871726350af
BLAKE2b-256 aacbf192ee60f96d3c9617f6365b1f3d6ecb0d61bfa686c878a7fd0152c7cd02

See more details on using hashes here.

File details

Details for the file aiomsa-0.1.0a8-py3-none-any.whl.

File metadata

  • Download URL: aiomsa-0.1.0a8-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Linux/5.8.0-1036-azure

File hashes

Hashes for aiomsa-0.1.0a8-py3-none-any.whl
Algorithm Hash digest
SHA256 f2db5164df23b7f1917858cb5d2fb5e9841be3100c9cbaf99ad2a202e63346d0
MD5 e023c0d3f498ef2294707e5beff7ea9c
BLAKE2b-256 c1109d24952bb77ae1d5d6a71c3b944f2793bfba7b3ec6fcb5eaf2ce0116c12e

See more details on using hashes here.

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