Snap packaging

This commit introduces snap packaging for osmclient.

Snaps are a fancy zip file containing an application and all of its
dependencies, and a description of how it should run safely on a
user's system. This is a multi-distribution alternative to installing from source, or debian package.

Snaps are designed to be secure, sandboxed, containerised applications isolated from the underlying system and from other applications. Snaps allow the safe installation of apps from any vendor on mission critical devices and desktops. Updates are done atomically, rolling back automatically in the case of failure, with support for release channel and series.

More info on snaps can be found here: https://snapcraft.io/

Signed-off-by: Adam Israel <adam.israel@canonical.com>
3 files changed
tree: e1b12fad5b006a27c09ce9bebeee7e2b50f35a83
  1. .gitignore
  2. Dockerfile
  3. Jenkinsfile
  4. LICENSE
  5. README.md
  6. docker_command.sh
  7. osmclient/
  8. setup.py
  9. snap/
  10. stdeb.cfg
  11. tox.ini
README.md

python-osmclient

A python client for osm orchestration

Installation

python-osmclient

Install dependencies

sudo apt-get install python-dev libcurl4-gnutls-dev python-pip libgnutls-dev python-prettytable  
sudo pip install pycurl

Install python-osmclient

sudo pip install git+https://github.com/mfmarche/python-osmclient

Snap

apt install snapd
snap install osmclient --channel=beta

Setup

Set the OSM_HOSTNAME variable to the host of the osm server.

Example

localhost$ export OSM_HOSTNAME=<hostname>:8008

Examples

upload vnfd

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 |
+--------------------+--------------------+

upload nsd

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 |
+-------------------+-------------------+

vim-list

localhost$ osm vim-list
+-------------+-----------------+--------------------------------------+
| ro-account  | datacenter name | uuid                                 |
+-------------+-----------------+--------------------------------------+
| osmopenmano | openstack-site  | 2ea04690-0e4a-11e7-89bc-00163e59ff0c |
+-------------+-----------------+--------------------------------------+

instantiate ns

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    |
+------------------+--------------------------------------+-------------------+--------------------+---------------+

Bash Completion

python-osmclient uses click. You can setup bash completion by putting this in your .bashrc:

eval "$(_OSM_COMPLETE=source osm)"