fabric-testbed / fabfed

FABRIC Tool-based Federation Kit for a Testbed of Testbeds
MIT License
2 stars 0 forks source link

Add and test Jupyter notebooks for fabfed example workflows #97

Open xi-yang opened 6 months ago

xi-yang commented 6 months ago

We need a design that uses the Jupyter notebooks as an interface to present the fabfed to users.

zlion commented 6 months ago
zlion commented 6 months ago

Now working on notebooks using FabFed python functions to create workflow.

zlion commented 6 months ago
abessiari commented 6 months ago

@zlion

The handling of fabric credentials should probably be done in a separate notebook. Other notebooks can point to it. The fabric credential notebook should have a quick overview section for each provider and its credentials .... Minimally it should what credentials attributes are needed.

abessiari commented 6 months ago

@zlion For the two quick scenarios we have discussed we should probably have a getting started section which would allow people to run the network stitching in less than two minutes ... No need to have more than one notebook. Users can set the config directory and do either chameleon or cloudlab

abessiari commented 6 months ago

@zlion The description for plan should something like this. It does a whole lot more than list the resources: I recommend: Creates an execution plan which lets you preview the changes before applying

abessiari commented 6 months ago

show is pretty important it displays the state .... it should have its own cell

fabfed_manager.show(session=session_name)
abessiari commented 6 months ago

show (state) and show sessions should be after apply and after destroy.

after destroy if all is well they will both display an emty list

abessiari commented 6 months ago

Listing resources is a few lines. We should have it in its own cell after validate.

The code here lists the resources in the order they will handled.

for resource_config in config.resource_configs:
            dependencies = []

            for dependency in resource_config.dependencies:
                dependencies.append(dependency.resource)

            print(resource_config.label, "depends on ", dependencies)
abessiari commented 6 months ago

For chameleon no need for two files. Add a variable site that defaults to STAR. The only difference is the site. One has STAR and the other has TACC. So basically one config under chameleon suffices. You can then go with the default STAR or if you want TACC you use variables. (edited)