| commit | e7c24981a7021176e68ee87998c86d21e87f548e | [log] [tgz] |
|---|---|---|
| author | garciadeblas <gerardo.garciadeblas@telefonica.com> | Mon Nov 01 22:04:32 2021 +0100 |
| committer | garciadeblas <gerardo.garciadeblas@telefonica.com> | Fri Nov 05 13:18:05 2021 +0000 |
| tree | 562575bdf8350027e1691b67601d378484c8f69e | |
| parent | 4054a86e8a9e206b36c53d84d67035646f0beee9 [diff] |
Update vim-create and vim-update to accept config and credential files vim-create will accept both a config dict and a config file, with respective options "--config" and "--config_file". If a key is present in both, the value in the config dict will prevail. In addition, vim-create command will accept a new option --creds, required for Google Cloud Platform (GCP) due to the way the authentication works in GCP. That option is codified directly in the config dict that is sent to the NBI, under config["credentials"]. The RO connector for GCP will receive it and will expect those credentials in that dictionary. In the future, other RO connectors might use a similar approach. Finally, this change also adds the option --literal to vim-show command. Change-Id: Ifb4c284593b171353b6c180bdc7af75e8a25dfac Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
OSM client library and console script
# 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 # 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
# 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
Set the OSM_HOSTNAME variable to the host of the OSM server (default: localhost).
localhost$ export OSM_HOSTNAME=<hostname>
localhost$ osm upload-package ubuntu_xenial_vnf.tar.gz {'transaction_id': 'ec12af77-1b91-4c84-b233-60f2c2c16d14'} localhost$ osm vnfd-list +--------------------+--------------------+ | vnfd name | id | +--------------------+--------------------+ | ubuntu_xenial_vnfd | ubuntu_xenial_vnfd | +--------------------+--------------------+
localhost$ osm upload-package ubuntu_xenial_ns.tar.gz {'transaction_id': 'b560c9cb-43e1-49ef-a2da-af7aab24ce9d'} localhost$ osm nsd-list +-------------------+-------------------+ | nsd name | id | +-------------------+-------------------+ | ubuntu_xenial_nsd | ubuntu_xenial_nsd | +-------------------+-------------------+
localhost$ osm vim-list +-------------+-----------------+--------------------------------------+ | ro-account | datacenter name | uuid | +-------------+-----------------+--------------------------------------+ | osmopenmano | openstack-site | 2ea04690-0e4a-11e7-89bc-00163e59ff0c | +-------------+-----------------+--------------------------------------+
localhost$ osm ns-create ubuntu_xenial_nsd testns openstack-site {'success': ''} localhost$ osm ns-list +------------------+--------------------------------------+-------------------+--------------------+---------------+ | ns instance name | id | catalog name | operational status | config status | +------------------+--------------------------------------+-------------------+--------------------+---------------+ | testns | 6b0d2906-13d4-11e7-aa01-b8ac6f7d0c77 | ubuntu_xenial_nsd | running | configured | +------------------+--------------------------------------+-------------------+--------------------+---------------+
Assuming that you have installed python-osmclient package, it's pretty simple to write some Python code to interact with OSM.
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, indent=4, default_flow_style=False)
The code will print for each package a pretty table, then the full details in yaml
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, indent=4, default_flow_style=False)
You can enable autocompletion in OSM client by creating a file osm-complete.sh in the following way:
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_completion.d/osm-complete.sh