Skip to main content

Table of contents

Description

The FabFed is a Python library for a cross-testbed federation framework that (1) models the network experiment (or "slice") across the FABRIC testbed and federated testbeds and providers, and (2) provides workflow tools to stitch l2 and l3 networks between the testbeds and providers.

The FabFed code took the initial form from the Mobius API, and refactored and reinvented the slice modeling, user interface, data structure and stitching workflows.

The example below showcases network stitching across providers, a chi provider and a fabric provider. The configuration, while incomplete, highlights how fabfed-py expresses dependencies.

  1 resource:
  2
  3   - network:
  4       - chi_network:
  5             provider: '{{ chi.chi_provider }}'
  6             site: CHI@UC
  7
  8   - network:
  9       - fabric_network:
 10            provider: '{{ fabric.fabric_provider }}'
 11            site: 'STAR'
 12            stitch_with:
 13              - network: '{{ network.chi_network }}'

Installation

FabFed is available at PyPI.

pip install fabfed-py

Alternatively, you may install and test using the following commands:

pip install -e .
fabfed --help
fabfed stitch-policy --help
fabfed workflow --help
fabfed sessions --help

If using the CloudLab provider, the following portal-tools module is a required dependency:

pip install git+https://gitlab.flux.utah.edu/stoller/portal-tools.git

Operation Instructions

  • Fabfed worflow configuration is specified across one or more .fab files. Fabfed does not care how these files are named. Fabfed simply loads all the .fab configuration files, assembles them and parses the assembled configuration.
  • Fabfed will pickup any file ending with the .fab extension in the directory specified by the --config-dir. If this option is not present, the current directory is used.
  • The --var-file option can be used to override the default value of any variable. It consists of a set of key-value pairs with each pair written as key: value. At runtime, all variables found in an assembled configuration must have a value other than None. The parser will halt and throw an exeption otherwise.
  • The --session is a friendly name used to track a given workflow.
  • Use the --help options shown above if in doubt.
  • When stitching networks across provider use stitch-policy to discover available stitch information
# Example to view stitch policy from cloudlab to fabric
fabfed stitch-policy -providers "fabric,cloudlab"

# Validation
fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -validate
fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -stitch-info [-summary] [-json]

fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -plan [-summary] [-json]

fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -apply

fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -show [-summary] [-json]

fabfed workflow --config-dir some_dir [--var-file some_var_file.yml] --session some_session -destroy

# Use this option to manage your workflow sessions
fabfed sessions -show

Metadata

Release files for fabfed-py 1.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fabfed-py 1.10.1
File Size Uploaded Provenance Actions
fabfed_py-1.10.1.tar.gz 120.3 kB Without provenance Details for fabfed_py-1.10.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fabfed-py 1.10.1
File Interpreter ABI Platform Actions
fabfed_py-1.10.1-py3-none-any.whl Python 3 none any Details for fabfed_py-1.10.1-py3-none-any.whl

Total release size: 276.1 kB

Release files / fabfed_py-1.10.1.tar.gz

Download URL fabfed_py-1.10.1.tar.gz
Size 120.3 kB
Tags Source
SHA-256 checksum
How to use checksums
62ff31ef05b0c826e22db199490bdf1e6ea337cb10f1f5644e8cdae3cdb3d24e
BLAKE2b-256 checksum
How to use checksums
5c072235affbd6f6eb2ba5fca244c3d088ed24f9a28f8e4d8dae697c288e21cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / fabfed_py-1.10.1-py3-none-any.whl

Download URL fabfed_py-1.10.1-py3-none-any.whl
Size 155.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6bc21b73687e882128950718d0a347bb3d4868000b960796f7a05c89f3d99e0
BLAKE2b-256 checksum
How to use checksums
56e7bb8afed8f116cc014b4395e4503a381fe9e94e217fab1cab27d62c05ef12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Security for fabfed-py 1.10.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page