Listing IPs in IPLM Core

Listing IPs using CLI

The pi ip list command can be used from the command line interface to list and filter IPs in the system. It is the equivalent of the IP catalog on IPLM Web and can list IPs filtered by Library, IP Name, Line, Version, label and Aliases.

pi ip list Command

> pi ip list -h
Usage: pi ip list [-h] [--format {csv,json,long,table,template} | --verbose]
                  [--model MODEL] [--all | --max MAX] [--limit LIMIT]
                  [--contents] [--label LABEL [LABEL ...]]
                  [--match-substring MATCH_SUBSTRING | --query QUERY | --squery SQUERY]
                  [identifier [identifier ...]]

Description: List all matching IP. A variety of format and filtering options
are supported.

Positional arguments:
  identifier            Filter IP by name.

Optional arguments:
  --all, -a             Include all IP Versions (IPVs), equivalent to --max 0.
  --contents            Display a list of all files and the version of each
                        file for the specified IP. This can generate a LOT of
                        output if an IP contains a large number of files.
  --format {csv,json,long,table,template}
                        Return the results using the specified data structure.
                        The template format produces files that can be used by
                        the pi add|edit commands with the --template option.
  --limit LIMIT         Limit the output to the specified number of records
  --match-substring MATCH_SUBSTRING, -m MATCH_SUBSTRING
                        Filter by matching substring. All fields in the output
                        are considered
  --max MAX             Include at most MAX IP Versions (IPVs).
  --model MODEL         Use the specified report model (table report only).
  --query QUERY, -q QUERY
                        Filter using the Helix IPLM Query Language.
  --squery SQUERY, -sq SQUERY
                        Filter using a Saved Helix IPLM Query.
  --verbose, -v         Alias for --format long.
  -h, --help            Show this help message and exit

Filters:
  --label LABEL [LABEL ...]
                        Filter by IP Label.

Examples:
# List all latest versions of all IP
  pi ip list

# List all latest versions of IP foo.bar
  pi ip list foo.bar

# Show five most recent foo.bar versions
  pi ip list --max 5 foo.bar

# List all latest versions of all IP in library foo
  pi ip list foo.

Controlling the number of IPVs displayed

By default only the latest IPV in each line is displayed by 'pi ip list' additional releases per line can be shown via these options

Command Option Description
--all, -a By default only the latest release on each line will be returned. This option will show all IP Versions (IPVs) on a line, equivalent to --max 0.
 --max MAX Return at most MAX number of IP Versions (IPVs) on a line. --max 0 will display all the IPVs on each line, equivalent to --all

Limiting the number of results

The maximum number of results returned from pi ip list is controlled by the 'max_list_records_limit' setting in piclient.conf. See the Client Configuration section for more information on configuration with piclient.conf. 

The following option can be used to override the default 'max_list_records_limit' setting:

Command Option Description
--limit LIMIT Limit the output to the specified number of records. This setting will override the piclient.conf setting if provided. Using --limit 0 will return all records.

If all existing records are not returned due to a limit being reached (whether from the piclient.conf setting or from the --limit option) the command output will provide a description of how many records were returned out of the total.

Configuring the output format

Helix IPLM can display the list output in a number of different formats

Command Option Format Description
--format table The default format option, a list of values in table format.
template Lists the IPV in the 'pi ip edit' CLI template format. The template format returns at most one result, assuming line TRUNK and the latest IPV on the line if those fields are not provided.
long Displays detailed information about the IPV, equivalent to --verbose, v output
json Display the list of IPVs in json format. Combine with --contents option to include the file contents of the IPV. Note that the Helix IPLM API should be used for scripting purposes.
csv Display the list of IPVs in comma separated value format.
--verbose, -v
Displays detailed information about the IPV, equivalent to --format long output
--contents

Display file contents of the IPV. Without a --format option display is equivalent to --verbose, -v

Add to --format json to include the file list in the JSON output.

--model MODEL
Display a custom table format MODEL defined in piclient.conf. See here for more information on configuring display models.

Searching with a Substring match

The "--match-substring" option is provided as a simple to access search across all fields of the IP. Note that using the match substring option is preferred to running an unfiltered list and piping the results through a command like grep. The reason for this is that "--match-substring" will filter the results earlier in the process, and avoid sending unnecessarily large data sets over the network.

Command Option Description
--match-substring MATCH_SUBSTRING
simple search across all fields of the IP. Cannot be combined with -q or -sq (query and Saved query searches.

Filtering search results

IP search results can be filtered by Label. See the Labels section for more information.

Command Option Description
--label LABEL [LABEL ...] Filter the results by the specified Label(s)

Running queries

See the page Querying IPs in the System for more details on using queries.

Command Option Description
--query QUERY, -q QUERY

Search using a Helix IPLM query language expression

Can not be combined with --match-substring search

--squery SQUERY, -sq SQUERY

Search using a saved Helix IPLM query language expression

Can not be combined with --match-substring search

CLI examples

Filtering by FQN

With no options and a FQN missing a version number but including a line specifier, the latest IPV on the lineIPV formatted as a table:

No Version
> pi ip list tutorial.padring@.TRUNK
┌───────────────────────────┬────┬─────────────┬────────────┬───────────────────────────────┬──────────────────────┐
│ NAME                      │ DM │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE      │
╞═══════════════════════════╪════╪═════════════╪════════════╪═══════════════════════════════╪══════════════════════╡
│ tutorial.padring@10.TRUNK │ P4 │ HEAD LATEST │ admin      │ 2020-03-23 19:12:27 -0700 PDT │ new tutorial release │
└───────────────────────────┴────┴─────────────┴────────────┴───────────────────────────────┴──────────────────────┘
Found 1 matching object(s).

Leaving out both version and line returns the latest version of all the lines on the IP:

No Version, No Line
> pi ip list tutorial.padring
┌───────────────────────────┬────┬─────────────┬────────────┬───────────────────────────────┬──────────────────────┐
│ NAME                      │ DM │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE      │
╞═══════════════════════════╪════╪═════════════╪════════════╪═══════════════════════════════╪══════════════════════╡
│ tutorial.padring@1.L1     │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:39 -0800 PST │ padring L1 release   │
│ tutorial.padring@1.L2     │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:48 -0800 PST │ padring L2 release   │
│ tutorial.padring@1.L3     │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:57 -0800 PST │ padring L3 release   │
│ tutorial.padring@1.L4     │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:16:08 -0800 PST │ padring L4 release   │
│ tutorial.padring@10.TRUNK │ P4 │ HEAD LATEST │ admin      │ 2020-03-23 19:12:27 -0700 PDT │ new tutorial release │
└───────────────────────────┴────┴─────────────┴────────────┴───────────────────────────────┴──────────────────────┘
Found 5 matching object(s).

Leaving out all but the Library will return the latest version of each line of each IP in the Library (note the period following the Library name, this indicates all the IPs in the Library):

No Version, No Line, No IP
> pi ip list tutorial.
┌────────────────────────────────┬──────┬─────────────┬────────────┬───────────────────────────────┬──────────────────────┐
│ NAME                           │ DM   │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE      │
╞════════════════════════════════╪══════╪═════════════╪════════════╪═══════════════════════════════╪══════════════════════╡
│ tutorial.CADenv@3.TRUNK        │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:14:24 -0800 PST │ hier release         │
│ tutorial.MS90G@1.TRUNK         │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:10:53 -0800 PST │ hier release         │
│ tutorial.acells_tsmc18@1.TRUNK │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:10:47 -0800 PST │ hier release         │
│ tutorial.adc@1.TRUNK           │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:11:13 -0800 PST │ hier release         │
...
│ tutorial.tutorial@1.L3         │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:17:23 -0800 PST │ tutorial L3 release  │
│ tutorial.tutorial@1.L4         │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:17:49 -0800 PST │ tutorial L4 release  │
│ tutorial.tutorial@7.TRUNK      │ P4   │ HEAD LATEST │ admin      │ 2020-03-23 19:12:27 -0700 PDT │ new tutorial release │
│ tutorial.verif_config@1.TRUNK  │ P4   │ HEAD LATEST │ admin      │ 2020-03-02 08:13:50 -0800 PST │ hier release         │
└────────────────────────────────┴──────┴─────────────┴────────────┴───────────────────────────────┴──────────────────────┘
Found 49 matching object(s).

Showing Multiple IPVs
> pi ip list tutorial.padring@.TRUNK --all
┌───────────────────────────┬────┬─────────────┬────────────┬───────────────────────────────┬──────────────────────┐
│ NAME                      │ DM │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE      │
╞═══════════════════════════╪════╪═════════════╪════════════╪═══════════════════════════════╪══════════════════════╡
│ tutorial.padring@6.TRUNK  │ P4 │ HEAD LATEST │ admin      │ 2020-03-23 19:12:27 -0700 PDT │ new tutorial release │
│ tutorial.padring@5.TRUNK  │ P4 │             │ admin      │ 2020-03-02 08:15:23 -0800 PST │ tutorial release     │
│ tutorial.padring@4.TRUNK  │ P4 │             │ admin      │ 2020-03-02 08:15:22 -0800 PST │ tutorial release     │
│ tutorial.padring@3.TRUNK  │ P4 │             │ admin      │ 2020-03-02 08:15:21 -0800 PST │ tutorial release     │
│ tutorial.padring@2.TRUNK  │ P4 │ GOLD        │ admin      │ 2020-03-02 08:15:20 -0800 PST │ tutorial release     │
│ tutorial.padring@1.TRUNK  │ P4 │ GOLD        │ admin      │ 2020-03-02 08:15:10 -0800 PST │ tutorial release     │
│ tutorial.padring@0.TRUNK  │ P4 │             │ admin      │ 2020-03-02 08:14:26 -0800 PST │ Initial version      │
└───────────────────────────┴────┴─────────────┴────────────┴───────────────────────────────┴──────────────────────┘
Found 7 matching object(s).

Limiting Output
> pi ip list tutorial.padring --limit 4
┌───────────────────────┬────┬─────────────┬────────────┬───────────────────────────────┬────────────────────┐
│ NAME                  │ DM │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE    │
╞═══════════════════════╪════╪═════════════╪════════════╪═══════════════════════════════╪════════════════════╡
│ tutorial.padring@1.L1 │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:39 -0800 PST │ padring L1 release │
│ tutorial.padring@1.L2 │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:48 -0800 PST │ padring L2 release │
│ tutorial.padring@1.L3 │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:15:57 -0800 PST │ padring L3 release │
│ tutorial.padring@1.L4 │ P4 │ HEAD LATEST │ admin      │ 2020-03-02 08:16:08 -0800 PST │ padring L4 release │
└───────────────────────┴────┴─────────────┴────────────┴───────────────────────────────┴────────────────────┘

Displaying 4 of 5 matching object(s).

Verbose Mode
> pi ip list tutorial.padring@.TRUNK -v
IP Version tutorial.padring@10.TRUNK:
    Description               - pad ring
    Line Description          - main development line
    DM type                   - Perforce (P4)
    Host                      -
    Repo Path                 - //mdx_test/tutorial/padring/TRUNK
    Resources                 - tutorial.MS90G@1.TRUNK
                                tutorial.io5v@1.TRUNK
                                tutorial.io_tsmc18@1.TRUNK
    Current Aliases           - HEAD LATEST
    Historic Aliases          -
    Version Message           - new tutorial release

    IP created on             - 2020-03-02 08:14:26 -0800 PST by admin
    Line created on           - 2020-03-02 08:14:26 -0800 PST by admin
    IP Version created on     - 2020-03-23 19:12:27 -0700 PDT by admin

  Project Properties:
    *                         - --mode both --path blocks/$IP

  Labels:
    analog

  Property Sets:
    global:
      IP Properties:
        target_power          - 50.0 mW
        target_size           - 35.0 sq-mm
      IP Version Properties:
        coverage              - 22.0 % (*)
        power                 - 1.0 mW (*)
        regr                  - 100 /2000 (*)
        size                  - 1.0 sq-mm (*)

  Permissions on IP:
    Owner                     - g:tutorial
    Write Permissions         - g:tutorial
    Read Permissions          - g:tutorial

  Permissions on Line TRUNK:
    Owner                     - g:tutorial
    Write Permissions         - g:tutorial
    Read Permissions          - g:tutorial

  Hooks:
    No Hooks defined.

Found 1 matching object(s).

Note:

IPV file lists can be large, so unless --verbose is required, use the -v option instead.

Displaying IPV Contents
> pi ip list tutorial.padring@.TRUNK --contents
IP Version tutorial.padring@10.TRUNK:
    Description               - pad ring
    Line Description          - main development line
    DM type                   - Perforce (P4)
    Host                      -
    Repo Path                 - //mdx_test/tutorial/padring/TRUNK
    Resources                 - tutorial.MS90G@1.TRUNK
                                tutorial.io5v@1.TRUNK
                                tutorial.io_tsmc18@1.TRUNK
    Current Aliases           - HEAD LATEST
    Historic Aliases          -
    Version Message           - new tutorial release

    IP created on             - 2020-03-02 08:14:26 -0800 PST by admin
    Line created on           - 2020-03-02 08:14:26 -0800 PST by admin
    IP Version created on     - 2020-03-23 19:12:27 -0700 PDT by admin

  Project Properties:
    *                         - --mode both --path blocks/$IP

  Labels:
    analog

  Property Sets:
    global:
      IP Properties:
        target_power          - 50.0 mW
        target_size           - 35.0 sq-mm
      IP Version Properties:
        coverage              - 22.0 % (*)
        power                 - 1.0 mW (*)
        regr                  - 100 /2000 (*)
        size                  - 1.0 sq-mm (*)

  Permissions on IP:
    Owner                     - g:tutorial
    Write Permissions         - g:tutorial
    Read Permissions          - g:tutorial

  Permissions on Line TRUNK:
    Owner                     - g:tutorial
    Write Permissions         - g:tutorial
    Read Permissions          - g:tutorial

  Hooks:
    No Hooks defined.

  Contents:
    Files
      cds/padring/.oalib#1
      cds/padring/AOP_AMP_CORE/constraint/hierDesign.oa#1
      cds/padring/AOP_AMP_CORE/constraint/master.tag#1
      cds/padring/AOP_AMP_CORE/constraint/prop.cfg#1
      ...
      hw_code/test/test.v#2
      padring.pmq#1
      sw_code/driver/blg_driver.7z#1
      sw_code/test/blg_driver_test.7z#1

Found 1 matching object(s).

IP List customization options

It is possible to customize the default table output display of 'pi ip list'. See the Client Configuration section for more information. 

The following non-default fields are available: 

Optional Display Field Description
all_resources List of all the direct resources of the IPV (includes both private and non-private resources)
copies List of the IPVs that have been copied from the listed IPV
description IP description
line_description Line description
historic_aliases List of aliases set on the IPV, but for which a newer IPV also has the same alias set
labels List of labels set on the IP
prop_[name] Value of the named property, eg prop_foo, if foo is a property on the IP or IPV
private_resources List of the direct resources of the IPV that are private
resources List of the direct resources of the IPV, that are not private
source The source IPV this IP was copied from (if it was copied)