Skip to main content

PyPI

Fabric Orchestrator swagger-client

This is Fabric Orchestrator API

This Python package is automatically generated by the Swagger Codegen project:

  • API version: 1.0.1
  • Package version: 1.0.0
  • Build package: io.swagger.codegen.v3.generators.python.PythonClientCodegen

Generating the Client Code

Due to a BUG in swagger-code-gen, Please follow the steps below

That said, there's a bug in the Python generator of Swagger Codegen 3.x, it doesn't generate the code for Bearer authentication in OpenAPI 3.0 definitions. As a workaround, edit your OpenAPI YAML file and replace this part

  securitySchemes:
    bearerAuth:     
      type: http
      scheme: bearer
      bearerFormat: JWT  

to

  securitySchemes:
    sso_auth:
      type: apiKey
      in: header
      name: Authorization

Then generate a new Python client from the modified API definition.

Reference for more details here

Requirements.

Python 3.9+

Installation & Usage

pip install

If the python package is hosted on Github, you can install directly from Github

pip install git+https://github.com/fabric-testbed/OrchestratorClient.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/fabric-testbed/OrchestratorClient.git)

Then import the package:

import fabric_cf.orchestrator.swagger_client 

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import fabric_cf.orchestrator.swagger_client

Getting Started

Please follow the installation procedure and then run the following:

from __future__ import print_function
import time
from fabric_cf.orchestrator.swagger_client.api.version_api import VersionApi
from fabric_cf.orchestrator.swagger_client import Configuration, ApiClient
from fabric_cf.orchestrator.swagger_client.rest import ApiException
from pprint import pprint

# Configure API key authorization: bearerAuth
configuration = Configuration()
configuration.api_key['Authorization'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['Authorization'] = 'Bearer'

# create_slices an instance of the API class
api_instance = VersionApi(ApiClient(configuration))

try:
    # version
    api_response = api_instance.version_get()
    pprint(api_response)
except ApiException as e:
    print("Exception when calling VersionApi->version_get: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to http://127.0.0.1:8700/

Class Method HTTP request Description
PoasApi poas_create_sliver_id_post POST /poas/create/{sliver_id} Perform an operational action on a sliver.
PoasApi poas_get GET /poas/ Request get the status of the POAs.
PoasApi poas_poa_id_get GET /poas/{poa_id} Perform an operational action on a sliver.
ResourcesApi portalresources_get GET /portalresources Retrieve a listing and description of available resources for portal
ResourcesApi resources_get GET /resources Retrieve a listing and description of available resources. By default, a cached available resource information is returned. User can force to request the current available resources.
SlicesApi slices_create_post POST /slices/create Create slice
SlicesApi slices_creates_post POST /slices/creates Create slice
SlicesApi slices_delete_delete DELETE /slices/delete Delete all slices for a User within a project.
SlicesApi slices_delete_slice_id_delete DELETE /slices/delete/{slice_id} Delete slice.
SlicesApi slices_get GET /slices Retrieve a listing of user slices
SlicesApi slices_modify_slice_id_accept_post POST /slices/modify/{slice_id}/accept Accept the last modify an existing slice
SlicesApi slices_modify_slice_id_put PUT /slices/modify/{slice_id} Modify an existing slice
SlicesApi slices_renew_slice_id_post POST /slices/renew/{slice_id} Renew slice
SlicesApi slices_slice_id_get GET /slices/{slice_id} slice properties
SliversApi slivers_get GET /slivers Retrieve a listing of user slivers
SliversApi slivers_sliver_id_get GET /slivers/{sliver_id} slivers properties
VersionApi version_get GET /version Version

Documentation For Models

Documentation For Authorization

bearerAuth

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header

Documentation For Orchestrator Proxy

Users are recommended to use Orchestrator Proxy class for any orchestrator operations. Examples are shown below.

Get Resources

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
resources = proxy.resources(token=token)

Create Slice

 import fim.user as fu
 t = fu.ExperimentTopology()
 n1 = t.add_node(name='n1', site='RENC')
 cap = fu.Capacities()
 cap.set_fields(core=4, ram=64, disk=500)
 n1.set_properties(capacities=cap, image_type='qcow2', image_ref='default_centos_8')
 n1.add_component(ctype=fu.ComponentType.SmartNIC, model='ConnectX-6', name='nic1')

 n2 = t.add_node(name='n2', site='RENC')
 n2.set_properties(capacities=cap, image_type='qcow2', image_ref='default_centos_8')
 n2.add_component(ctype=fu.ComponentType.GPU, model='Tesla T4', name='nic2')

 slice_graph = t.serialize()
 sss_key = "<user public key>"
 orchestrator_host = "dev-3.fabric-testbed.net"
 proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
 status, reservation_list = proxy.create(token=token, slice_name=name, slice_graph=slice_graph, ssh_key=ssh_key)

Get Slices

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, slice_list = proxy.slices(token=token)

Get Slice

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, slice_topology = proxy.get_slice(token=token, slice_id=slice_id)

Get Slivers

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, reservation_list = proxy.slivers(token=token, slice_id=slice_id)

Get Sliver

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, reservation = proxy.slivers(token=token, slice_id=slice_id, sliver_id=sliver_id)

Delete Slice by slice_id

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, result = proxy.delete(token=token, slice_id=slice_id)

Delete Slices by email

orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, result = proxy.delete(token=token, email=email)

Renew Slice

now = datetime.now(timezone.utc)
new_time = now + timedelta(days=2)
orchestrator_host = "dev-3.fabric-testbed.net"
proxy = OrchestratorProxy(orchestrator_host=orchestrator_host)
status, reservation = proxy.renew_slice(token=token, slice_id=slice_id,
                                        new_lease_end_time=new_time.strftime('%Y-%m-%d %H:%M:%S %z'))

Author

kthare10@unc.edu

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fabric_orchestrator_client-2.0.0.tar.gz (38.2 kB view details)

Uploaded Source

Built Distribution

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

fabric_orchestrator_client-2.0.0-py3-none-any.whl (82.2 kB view details)

Uploaded Python 3

File details

Details for the file fabric_orchestrator_client-2.0.0.tar.gz.

File metadata

File hashes

Hashes for fabric_orchestrator_client-2.0.0.tar.gz
Algorithm Hash digest
SHA256 8863b39b656f9c2a3e3ff26cfda51eb8eccc48e59586c2d5c29c1117824c18a7
MD5 834da199f14ddaccbd86462ff612a6ce
BLAKE2b-256 fd426cf43c49c3ad837615de98cfaf17e57d5d177fd8d6d9c44c2a66ea78d726

See more details on using hashes here.

File details

Details for the file fabric_orchestrator_client-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fabric_orchestrator_client-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a12842923de9eaa63b6a932f7ddc2f9914d293c3f7b11f38db79be59cf97145
MD5 54fefaca4f64feaf2fd706ebc46b7980
BLAKE2b-256 e855b936fbc2f6ff61bc8eb6536a96e9f462d747d0b17ba8371e2cbdd18127fa

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0

2 files

0.1.1

2 files

0.1.0

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

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