Skip to content

NFCLI Client API

PICLE Shell CLient¤

Client that implements interactive shell to work with NorFab.

FileServiceCommands ¤

Bases: BaseModel

Sample Usage¤

copy¤

Copy to client's fetched files directory:

file copy_ url nf://cli/commands.txt

Copy file to destination relative to current directory

file copy_ url nf://cli/commands.txt destination commands.txt

list¤

List files at broker root directory:

file list file list url nf://

List files details:

file details
file details url nf://

NorFabShell ¤

Bases: BaseModel

cmd_preloop_override() classmethod ¤

This method called before CMD loop starts

Source code in norfab\clients\picle_shell_client.py
305
306
307
308
@classmethod
def cmd_preloop_override(self):
    """This method called before CMD loop starts"""
    pass

mount_shell_plugins(shell: App, inventory: object) -> None ¤

Mounts shell plugins to the given shell application.

This function iterates over the plugins in the inventory and mounts those that have an "nfcli" configuration to the shell application.

Parameters:

Name Type Description Default
shell App

The shell application to which the plugins will be mounted.

required
inventory object

An object containing the plugins to be mounted. It should have an attribute plugins which is a dictionary where keys are service names and values are service data dictionaries.

required

Returns:

Type Description
None

None

Source code in norfab\clients\picle_shell_client.py
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
def mount_shell_plugins(shell: App, inventory: object) -> None:
    """
    Mounts shell plugins to the given shell application.

    This function iterates over the plugins in the inventory and mounts
    those that have an "nfcli" configuration to the shell application.

    Args:
        shell (App): The shell application to which the plugins will be mounted.
        inventory (object): An object containing the plugins to be mounted.
                            It should have an attribute `plugins` which is a dictionary
                            where keys are service names and values are service data dictionaries.

    Returns:
        None
    """
    for service_name, service_data in inventory.plugins.items():
        if service_data.get("nfcli"):
            shell.model_mount(
                path=service_data["nfcli"]["mount_path"],
                model=service_data["nfcli"]["shell_model"],
            )