|
|
(5 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| {{MARKDOWN}} | | {{MARKDOWN}} |
|
| |
|
| 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..
| | **THIS PAGE IS DEPRECATED**. OSM User Guide has been moved to a new location: **<https://osm.etsi.org/docs/user-guide/>** |
| | |
| ## 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)
| |
| ```
| |