magma-orc8r-client

A simple client to communicate with Magma Orchestrator


Keywords
5G, 4G, Magma, Core, Network
License
Apache-2.0
Install
pip install magma-orc8r-client==1.0.4

Documentation

magma-orc8r-client

A simple API client to communicate with Magma's orchestrator service via HTTP.

warning: This project is under construction!

Installation

pip3 install magma-orc8r-client

Usage

Leveraging built-in methods

from magma_orc8r_client.orchestrator import Orc8r
from magma_orc8r_client.schemas.network_dns_config import NetworkDNSConfig
from magma_orc8r_client.schemas.network_epc_configs import NetworkEPCConfigs
from magma_orc8r_client.schemas.network_cellular_configs import NetworkCellularConfigs
from magma_orc8r_client.schemas.lte_network import LTENetwork
from magma_orc8r_client.schemas.network_ran_configs import NetworkRANConfigs, TDDConfig

orc8r_client = Orc8r(
    url="https://api.magma.com",
    admin_operator_pfx_path="/path/to/admin_operator.pfx",
    admin_operator_pfx_password="my_pfx_password",
)
network_id = "my_new_networkid"
new_network = LTENetwork(
    dns=NetworkDNSConfig(dhcp_server_enabled=True, enable_caching=True, local_ttl=0),
    cellular=NetworkCellularConfigs(
        epc=NetworkEPCConfigs(
            gx_gy_relay_enabled=True,
            hss_relay_enabled=False,
            lte_auth_amf="gAA=",
            lte_auth_op="EREREREREREREREREREREQ==",
            mcc="001",
            mnc="01",
            tac=1,
        ),
        ran=NetworkRANConfigs(
            bandwidth_mhz=20,
            tdd_config=TDDConfig(
                earfcndl=44590,
                special_subframe_pattern=7,
                subframe_assignment=2,
            ),
        ),
    ),
    description=network_id,
    id=network_id,
    name=network_id,
)

orc8r_client.lte.create_network(lte_network=new_network)

list_of_networks = orc8r_client.lte.list()

Custom calls

from magma_orc8r_client.orchestrator import Orc8r

orc8r_client = Orc8r(
    url="https://api.magma.com",
    admin_operator_pfx_path="/path/to/admin_operator.pfx",
    admin_operator_pfx_password="my_pfx_password",
)
network_id = "pizza"
apn_list = orc8r_client.get(endpoint=f"lte/{network_id}/apns")