OSM client: Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
No edit summary
(Replaced content with "{{MARKDOWN}} **THIS PAGE IS DEPRECATED**. OSM User Guide has been moved to a new location: **<https://osm.etsi.org/docs/user-guide/>**")
 
Line 2: Line 2:


**THIS PAGE IS DEPRECATED**. OSM User Guide has been moved to a new location: **<https://osm.etsi.org/docs/user-guide/>**
**THIS PAGE IS DEPRECATED**. OSM User Guide has been moved to a new location: **<https://osm.etsi.org/docs/user-guide/>**
---
In those cases where you have an OSM already installed in a remote server, you might still want to operate it from your local computer using the OSM client. The OSM client provides you a client library and a command-line tool to operate OSM..
## Installation
OSM client comes bundled with OSM installation, so if you successfully installed OSM, you already have it.
In addition, you can also install it in a different computer. In order to install OSM client, you will need a Linux machine and follow this procedure.
```bash
wget -qO - https://osm-download.etsi.org/repository/osm/debian/ReleaseSIX/OSM%20ETSI%20Release%20Key.gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=amd64] https://osm-download.etsi.org/repository/osm/debian/ReleaseSIX stable devops osmclient"
sudo apt-get update
sudo -H pip install python-magic
sudo apt-get install python-osmclient
```
## Usage (client commands)
Once installed, type “osm” to see a list of commands. If installed in a host different from where OSM is running, at minimum you will need to specify the OSM host, either via an environment variable or via the osm command line (see “osm --help” for info).
```bash
export OSM_HOSTNAME="127.0.0.1"
```
**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)
```

Latest revision as of 14:19, 10 August 2022

Template:MARKDOWN