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
-h, --help Show this message and exit.
Commands:
k8scluster-add adds a K8s cluster to OSM NAME: name of the K8s cluster
k8scluster-delete deletes a K8s cluster NAME: name or ID of the K8s cluster to be deleted
k8scluster-list list all K8s clusters
k8scluster-show shows the details of a K8s cluster NAME: name or ID of the K8s cluster
k8scluster-update updates a K8s cluster
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 Network Slice Instance (NSI)
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)
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
nfpkg-create creates a new NFpkg
nfpkg-delete deletes a NFpkg
nfpkg-list list all xNF packages (VNF, HNF, PNF)
nfpkg-show shows the content of a NF Descriptor
nfpkg-update updates a NFpkg
ns-action executes an action/primitive over a NS instance
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
ns-metric-export exports a metric to the internal OSM bus, which can be read by other apps
ns-op-list shows the history of operations over a NS instance
ns-op-show shows the info of a NS 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 NS packages
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 Network Slice Instance (NSI)
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 NS packages
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)
nst-show shows the content of a Network Slice Template (NST)
nst-update updates a Network Slice Template (NST)
package-build Build the tar.gz of the package
package-create Create a package descriptor
package-validate Validate a package descriptor
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
project-delete deletes a project
project-list list all projects
project-show shows the details of a project
project-update updates a project (only the name can be updated)
repo-add adds a repo to OSM NAME: name of the repo URI: URI of the repo
repo-delete deletes a repo NAME: name or ID of the repo to be deleted
repo-list list all repos
repo-show shows the details of a repo NAME: name or ID of the repo
repo-update updates a repo in OSM NAME: name of the repo
role-create creates a new 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
sdnc-list list all SDN controllers
sdnc-show shows the details of an SDN controller
sdnc-update updates an SDN controller
upload-package uploads a VNF package or NS package
user-create creates a new user
user-delete deletes a user
user-list list all users
user-show shows the details of a user
user-update updates user information
version
vim-create creates a new VIM account
vim-delete deletes a VIM account
vim-list list all VIM accounts
vim-show shows the details of a VIM account
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 xNF packages (VNF, HNF, PNF)
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 xNF packages (VNF, HNF, PNF)
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
wim-list list all WIM accounts
wim-show shows the details of a WIM account
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 18.04 pre-requirements
sudo apt-get install python3-pip libcurl4-gnutls-dev
# CentOS pre-requirements
# sudo yum install python3-pip libcurl-devel gnutls-devel
sudo -H python3 -m pip install python-magic
# Install OSM Information model
sudo -H python3 -m pip install git+https://osm.etsi.org/gerrit/osm/IM --upgrade
# Install OSM client from the git repo.
# You can install the latest client from master branch in this way:
sudo -H python3 -m pip install git+https://osm.etsi.org/gerrit/osm/osmclient
# You could also install a specific tag/version in this way
sudo -H python3 -m pip install git+https://osm.etsi.org/gerrit/osm/osmclient@v7.0.0rc1
```
### Installing from cloned repo (for developers)
```bash
# Ubuntu 18.04 pre-requirements
sudo apt-get install python3-pip libcurl4-openssl-dev libssl-dev
# Centos pre-requirements:
# sudo yum install python3-pip libcurl-devel gnutls-devel
sudo -H python3 -m pip install python-magic
# Install OSM Information model
sudo -H python3 -m pip install git+https://osm.etsi.org/gerrit/osm/IM --upgrade
# Clone the osmclient repo and install OSM client from the git repo.
git clone https://osm.etsi.org/gerrit/osm/osmclient
cd osmclient
python3 -m pip install --user -e .
# logout and login so that PATH can be updated. Executable osm will be found in /home/ubuntu/.local/bin
```
To uninstall, just:
```bash
python3 -m pip uninstall osmclient
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
```
## 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)
```