Symp CLI Client


The Zadara zCompute Symp client is a unified CLI (Command Line Interface) to manage and operate your zCompute services.

The zCompute Symp CLI tools should be installed on a VM image that is created from the zCompute Toolbox image, available in the zCompute cluster’s Machine Images Marketplace.

To install the zCompute Symp CLI tools, the VM should be configured to be accessible externally via ssh.

Installing the Symp CLI client

The Symp CLI client is supplied as part of the zCompute Toolbox.

  1. In the zCompute UI, go to Machine Images > Marketplace. If there are more than one zCompute Toolbox images, use the the v2.2.0 (or later) image.


    Do not use the Toolbox v21.0.0 image.

    It is deprecated and exists only for backward compatibility.

  2. In the Zadara apps list, click the zCompute Toolbox icon.

    In the dialog box that opens:


    If you connected as an account admin, it is recommended that the Scope is set to Account.

    Click Download.


    The image download takes a few minutes to finish.

    The download process is complete when the image appears with the status Ready in the Machine Images > Images UI screen.

    The zCompute Toolbox image is named fedora-3x-zadara-toolbox-xxxxx or similar. The image name can be modified at any time.

  3. Create a VM instance:

    1. Go to Compute > Instances > Create.

      1. Enter the Compute parameters:

        • Name: A name for the VM.

        • Create from: Select Image.

        • Image: Select the zcompute-toolbox image downloaded in the previous step.

        • Instance type: Search and select a suitable instance type.

        • Key Pair: Select the key pair to sign-in to the VM over ssh. If no key pair exists for the user, create one using the + sign and follow the instructions to save the private key file.

        • Click Next.

      2. Enter the Storage parameters:

        • Boot Volume - disk size (GB) and volume type that will be used for the boot volume of the VM instance.

        • Data Volumes - add new or existing data volumes. To add a new volume, click Add and + and configure the following:

          • Name - volume name.

          • Description - description of volume.

          • Volume Type - select the volume type from the dropdown list.

          • Size - volume size (GB).

          • Protection Group - protection group for the volume.

        • Click Next.

      3. Enter the Networking tab parameters according to the specific environment, and click Finish. The VM instance will start.

  4. When the VM instance is ready:

    1. Launch the VM in the target project, if it wasn’t started yet:

      1. In the zCompute UI, go to Compute > Instances.

      2. Select the VM, and click Start.

    2. If the Security Group settings are not yet configured to permit ssh access to the VM:

      1. Go to VPC Networking > Security Groups and select the Security Group for the account and project.

      2. On the top toolbar, click Modify.

      3. In the Modify Security Group dialog, click Add to add any required entries to permit ssh access.

      4. Click OK.

    3. Configure an Elastic IP address for the VM:

      1. Go to Compute > Instances, and select the VM instance.

      2. On the top toolbar, select More > Attach > Elastic IP.

      3. In the Attach Elastic IP dialog, allocate an IP address.

      4. In Compute > Instances, click the VM instance’s link in the Name column.

      5. In the VM’s Subnets section, note its Elastic IP address, or copy it to the clipboard.

    4. Connect to the VM instance via ssh, as the user fedora:

      ssh -i <private-key pem path/filename> fedora@<Elastic IP address>

      The VM displays the Zadara Toolbox welcome message:

       _____         _                   _____           _ _
      |__  /__ _  __| | __ _ _ __ __ _  |_   _|__   ___ | | |__   _____  __
        / // _` |/ _` |/ _` | '__/ _` |   | |/ _ \ / _ \| | '_ \ / _ \ \/ /
       / /| (_| | (_| | (_| | | | (_| |   | | (_) | (_) | | |_) | (_) >  <
      /____\__,_|\__,_|\__,_|_|  \__,_|   |_|\___/ \___/|_|_.__/ \___/_/\_\
      Welcome to Zadara Toolbox VM!
  5. Install Symp on the VM by running the following command:

    symp-update -c <Cluster IP> -k

  6. Verify that the Symp installation was successful by running a symp command.

    symp -k --url https://<cluster IP address> -d <account> -u <username> --project <projectname>

    Symp will prompt for the user’s password.

    For example:

    symp -k --url -d cloud_member -u member1 --project vpc_proj1
    Starting new HTTPS connection (1):
     d88888b  dP    dP 8888ba.88ba   888888ba  dP     dP   .88888.  888888ba  dP    dP
    88.    "' Y8.  .8P 88  `8b  `8b  88    `8b 88     88  d8'   `8b 88    `8b Y8.  .8P
    `Y88888b.  Y8aa8P  88   88   88 a88aaaa8P' 88aaaaa88a 88     88 88     88  Y8aa8P
          `8b    88    88   88   88  88        88     88  88     88 88     88    88
    d8'   .8P    88    88   88   88  88        88     88  Y8.   .8P 88     88    88
     Y88888P     dP    dP   dP   dP  dP        dP     dP   `8888P'  dP     dP    dP
    Tap <TAB> twice to get list of available commands.
    Type --help to get help with any command
    Symphony @ cloud_member/vpc_proj1 >

Adaptive-Table Output Format Modifiers

The Adaptive-Table Output Format is Symp’s CLI default output format.

It is sensitive to the terminal width and supports hierarchical data structures and the filtering of rows and columns.


$ symp command [argument [argument...]] [--flag] [-m modifier [modifier...]]

Filter Modifiers

By default, symp displays all rows and columns.

To restrict the output to a select population of rows, columns, or both, apply filter modifiers to the symp command.


Multiple filter modifiers can be applied to a single symp command.

Multiple filter modifiers are processed in the following order:

  1. grep*

  2. head

  3. tail

  4. columns

Filter Modifier



Usage: -m grep=pattern

Displays only those rows containing a value that matches the pattern.

The matching value is case-sensitive.

The pattern can be any regular expression.

For example:

  • grep=name - Displays only those rows containing a value that matches ‘name’.

  • grep=name|number - Displays only those rows containing a value that matches either ‘name’ or ‘number’.

  • 'grep=name grep=number' - Displays only those rows containing both one value that matches ‘name’ and another value that matches ‘number’.

Note: The values are searched recursively.


Usage: -m grep-i=pattern

Same as grep, but the matching value is case-insensitive.


Usage: -m grep-v=pattern

Displays all rows except those containing any values that match the pattern.

The matching value is case-sensitive.

The pattern can be any regular expression.

For example:

  • grep-v=name - Displays all rows except those that contain a value that matches ‘name’.

  • grep-v=name|number - Displays all rows except those that contain a value that matches either ‘name’ or ‘number’.

  • 'grep-v=name grep-v=number' - Displays all rows except those that contain both one value that matches ‘name’ and another value that matches ‘number’.



Usage: -m grep-iv=pattern or -m grep-vi=pattern

Same as grep-v, but the matching value is case-insensitive.


Usage: -m head=n

Displays only the first n rows.


Usage: -m tail=n

Displays only the last n rows.

Thus, if a table has 20 rows, the modifier -m head=10 tail=5 would display the last five of the first ten rows, or rows 6-10.

Note: tail is processed after head regardless of their order in the command.


Usage: -m columns=pattern

Displays only those columns whose headers match the pattern.

The matching value is case-sensitive.

The pattern can be any regular expression.

Note: The columns modifier is processed after the grep* modifiers, so the matched values might not be displayed.

  • columns=name - Displays only those columns whose headers match ‘name’.

  • columns=name|id or 'columns=name columns=id' (In contrast to grep=pattern) - Displays only those columns whose headers match either ‘name’ or ‘id’.

Display Modifiers

To customize the output style, apply display modifiers to the symp command to override the default output style settings.


The display modifiers split-table, force-frames, and horizontal-lines are boolean settings, with the following valid values:

  • true, t

  • yes, y

  • false, f

  • no, n

All boolean values are case-insensitive.

Display Modifier



Usage: -m split-table=<boolean value>

Splits output into multiple, terminal-width tables, each containing some of the columns.

Default: false


Usage: -m column-order=<csv column list>

Displays the columns according to a comma-separated list of column headers.

The unlisted columns are displayed after the listed ones in alphabetical order.

Default: name, id, status, state


Usage: -m force-frames=<boolean value>

Displays frames around all sub-tables.

Default: false


Usage: -m horizontal-lines=<boolean value>

Displays horizontal lines between each row.

Horizontal lines are normally only drawn if either the row above or below is split into multiple lines.

Default: false


Usage: -m split-words=<policy>

Determines whether to split words when displaying cell values that are longer than their cell width.

There are four policies:

  • except-ids (default) - Same as standard except that UUIDs and IPv4 addresses are never split.

  • standard - Cell values are split only between words. Words are not split unless a word is longer than the cell width.

  • always - Cell values can be split both between words and within words. This can result in slightly shorter tables.

  • never - Cell values are never split. This causes the table to look like the output of the regular table formatter.


Usage: -m width=n

Sets the width of the terminal to n characters instead of using the auto-detected value.

Default: auto-detected value.

Symp CLI Reference Guide