10-osm-client-commands-reference.md 9.25 KiB
Newer Older
# ANNEX 2: Reference of OSM Client commands and library
**Usage:**

```bash
osm [OPTIONS] COMMAND [ARGS]...
```

**Options:**

```bash
  --hostname TEXT  hostname of server.  Also can set OSM_HOSTNAME in
                   environment
  --user TEXT      user (defaults to admin). Also can set OSM_USER in
                   environment
  --password TEXT  password (defaults to admin). Also can set OSM_PASSWORD in
                   environment
  --project TEXT   project (defaults to admin). Also can set OSM_PROJECT in
                   environment
  --help           Show this message and exit.
```

**Commands:**

```bash
  netslice-instance-create   creates a new Network Slice Instance
  netslice-instance-delete   deletes a Network Slice Instance (NSI)
  netslice-instance-list     list all Network Slice Instances (NSI)
  netslice-instance-op-list  shows the history of operations over a...
  netslice-instance-op-show  shows the info of an operation over a Network
                             Slice Instance(NSI)
  netslice-instance-show     shows the content of a Network Slice Instance
                             (NSI)
  netslice-template-create   creates a new Network Slice Template (NST)
  netslice-template-delete   deletes a Network Slice Template (NST)
  netslice-template-list     list all Network Slice Templates (NST) in the...
  netslice-template-show     shows the content of a Network Slice Template
                             (NST)
  netslice-template-update   updates a Network Slice Template (NST)
  nf-list                    list all NF instances Options: --ns TEXT NS...
  nfpkg-create               creates a new NFpkg
  nfpkg-delete               deletes a NFpkg
  nfpkg-list                 list all NF pkg (VNF pkg, PNF pkg, HNF pkg)...
  nfpkg-show                 shows the content of a NF Descriptor
  nfpkg-update               updates a NFpkg
  ns-action                  executes an action/primitive over a NS...
  ns-alarm-create            creates a new alarm for a NS instance
  ns-create                  creates a new Network Service instance
  ns-delete                  deletes a NS instance
  ns-list                    list all NS instances Options: --filter...
  ns-metric-export           exports a metric to the internal OSM bus,...
  ns-op-list                 shows the history of operations over a NS...
  ns-op-show                 shows the info of an operation
  ns-show                    shows the info of a NS instance
  nsd-create                 creates a new NSD/NSpkg
  nsd-delete                 deletes a NSD/NSpkg
  nsd-list                   list all NSD/NS pkg in the system
  nsd-show                   shows the content of a NSD
  nsd-update                 updates a NSD/NSpkg
  nsi-create                 creates a new Network Slice Instance
  nsi-delete                 deletes a Network Slice Instance (NSI)
  nsi-list                   list all Network Slice Instances (NSI)
  nsi-op-list                shows the history of operations over a...
  nsi-op-show                shows the info of an operation over a Network
                             Slice Instance(NSI)
  nsi-show                   shows the content of a Network Slice Instance
                             (NSI)
  nspkg-create               creates a new NSD/NSpkg
  nspkg-delete               deletes a NSD/NSpkg
  nspkg-list                 list all NSD/NS pkg in the system
  nspkg-show                 shows the content of a NSD
  nspkg-update               updates a NSD/NSpkg
  nst-create                 creates a new Network Slice Template (NST)
  nst-delete                 deletes a Network Slice Template (NST)
  nst-list                   list all Network Slice Templates (NST) in the...
  nst-show                   shows the content of a Network Slice Template
                             (NST)
  nst-update                 updates a Network Slice Template (NST)
  pdu-create                 adds a new Physical Deployment Unit to the
                             catalog
  pdu-delete                 deletes a Physical Deployment Unit (PDU)
  pdu-list                   list all Physical Deployment Units (PDU)
  pdu-show                   shows the content of a Physical Deployment Unit
                             (PDU)
  project-create             Creates a new project NAME: name of the...
  project-delete             deletes a project NAME: name or ID of the...
  project-list               list all projects
  project-show               shows the details of a project NAME: name or...
  project-update             Update a project name :param ctx: :param...
  role-create                creates a role
  role-delete                deletes a role
  role-list                  list all roles
  role-show                  show specific role
  role-update                updates a role
  sdnc-create                creates a new SDN controller
  sdnc-delete                deletes an SDN controller NAME: name or ID of...
  sdnc-list                  list all SDN controllers
  sdnc-show                  shows the details of an SDN controller NAME:...
  sdnc-update                updates an SDN controller
  upload-package             uploads a VNF package or NS package FILENAME:...
  user-create                Creates a new user USERNAME: name of the...
  user-delete                deletes a user NAME: name or ID of the user...
  user-list                  list all users
  user-show                  shows the details of a user NAME: name or ID...
  user-update                Update a user information USERNAME: name of...
  vim-create                 creates a new VIM account
  vim-delete                 deletes a VIM account NAME: name or ID of the...
  vim-list                   list all VIM accounts
  vim-show                   shows the details of a VIM account NAME: name...
  vim-update                 updates a VIM account
  vnf-list                   list all NF instances
  vnf-scale                  Executes a VNF scale (adding/removing VDUs)...
  vnf-show                   shows the info of a VNF instance
  vnfd-create                creates a new VNFD/VNFpkg
  vnfd-delete                deletes a VNFD/VNFpkg
  vnfd-list                  list all VNFD/VNF pkg in the system
  vnfd-show                  shows the content of a VNFD
  vnfd-update                updates a new VNFD/VNFpkg
  vnfpkg-create              creates a new VNFD/VNFpkg
  vnfpkg-delete              deletes a VNFD/VNFpkg
  vnfpkg-list                list all VNFD/VNF pkg in the system
  vnfpkg-show                shows the content of a VNFD
  vnfpkg-update              updates a VNFD/VNFpkg
  wim-create                 creates a new WIM account
  wim-delete                 deletes a WIM account NAME: name or ID of the...
  wim-list                   list all WIM accounts
  wim-show                   shows the details of a WIM account NAME: name...
  wim-update                 updates a WIM account
```

## Enable autocompletion

You can enable autocompletion in OSM client by creating a file osm-complete.sh in the following way:

```bash
mkdir -p $HOME/.bash_completion.d
_OSM_COMPLETE=source osm > $HOME/.bash_completion.d/osm-complete.sh
```

Then you can add the following to your $HOME/.bashrc file:

```bash
. .bash_completion.d/osm-complete.sh
```

## Other installation methods

### Installing from git repo

```bash
# Ubuntu pre-requirements
sudo apt install python-pip libcurl4-gnutls-dev libgnutls-dev
# CentOS pre-requirements
# sudo yum install python-pip libcurl-devel gnutls-devel
sudo -H pip install python-magic
# Install OSM client from the git repo.
# You can install the latest client from master branch in this way:
sudo -H pip install git+https://osm.etsi.org/gerrit/osm/osmclient
# You could also install a specific tag/version in this way
sudo -H pip install git+https://osm.etsi.org/gerrit/osm/osmclient@v6.0.1
```

### Installing from cloned repo (for developers)

```bash
# Ubuntu pre-requirements
sudo apt install python-pip libcurl4-gnutls-dev libgnutls-dev
# Make sure that 
# sudo yum install python-pip libcurl-devel gnutls-devel
sudo -H pip install python-magic
# Clone the osmclient repo and install OSM client from the git repo.
git clone https://osm.etsi.org/gerrit/osm/osmclient
sudo -H pip install osmclient
```

## Using osmclient as a library to interact with OSM

Assuming that you have installed python-osmclient package, it's pretty simple to write some Python code to interact with OSM.

### Simple Python code to get the list of NS packages

```python
from osmclient import client
from osmclient.common.exceptions import ClientException
hostname = "127.0.0.1"
myclient = client.Client(host=hostname, sol005=True)
resp = myclient.nsd.list()
print yaml.safe_dump(resp)
```

### Simple Python code to get the list of VNF packages from a specific user and project

The code will print for each package a pretty table, then the full details in yaml

```python
from osmclient import client
from osmclient.common.exceptions import ClientException
import yaml
from prettytable import PrettyTable
hostname = "127.0.0.1"
user = admin
password = admin
project = admin
kwargs = {}
if user is not None:
    kwargs['user']=user
if password is not None:
    kwargs['password']=password
if project is not None:
   kwargs['project']=project
myclient = client.Client(host=hostname, sol005=True, **kwargs)
resp = myclient.vnfd.list()
print yaml.safe_dump(resp)
```