Skip to main content

Fabfed Framework

Project description

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

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

fabfed_py-1.10.0.tar.gz (120.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fabfed_py-1.10.0-py3-none-any.whl (156.3 kB view details)

Uploaded Python 3

File details

Details for the file fabfed_py-1.10.0.tar.gz.

File metadata

  • Download URL: fabfed_py-1.10.0.tar.gz
  • Upload date:
  • Size: 120.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for fabfed_py-1.10.0.tar.gz
Algorithm Hash digest
SHA256 5676a1c27e9cb2b53e92764b8b71a0af0fdabe9d50c7c6764119247ce5d7ae2f
MD5 a41db440471cdef10415cf4b567918bf
BLAKE2b-256 92719767fd7173375a967d1fb1e7bde7749c6fe6515d52e15d810a0b7bc1d6f4

See more details on using hashes here.

File details

Details for the file fabfed_py-1.10.0-py3-none-any.whl.

File metadata

  • Download URL: fabfed_py-1.10.0-py3-none-any.whl
  • Upload date:
  • Size: 156.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for fabfed_py-1.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b12fb397abef9dc83b7efc75fddbc00fdf0545df90f56212e4140be49327c9df
MD5 809f482ecdf68b694d1588c6049e1ed8
BLAKE2b-256 94e3abfe4fdb8caa9914d8e424266e0585fb0c58cc1b973dfb6e027a79109cfd

See more details on using hashes here.

Supported by

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