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, inventory) ¤

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

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"],
            )