## Installation
-### From git-repo
-
```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
-# 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 pre-requirements
+sudo apt-get install python3-pip
+# Centos pre-requirements
+# sudo yum install python3-pip
```
-### From cloned repo (for developers)
+Clone the osmclient repo:
-```
-# 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.
+```bash
git clone https://osm.etsi.org/gerrit/osm/osmclient
cd osmclient
-python3 -m pip install --user -e .
+```
+
+Finally install osmclient with pip. For development, you should install osmclient in editable mode (`--user -e`):
+
+```bash
+# Install osmclient
+python3 -m pip install --user . -r requirements.txt -r requirements-dev.txt
+# Install osmclient in editable mode (-e)
+# python3 -m pip install --user -e . -r requirements.txt -r requirements-dev.txt
# logout and login so that PATH can be updated. Executable osm will be found in /home/ubuntu/.local/bin
```
+After logging out and in, you can check that osm is running with:
+
+```bash
+which osm
+osm version
+```
+
## Setup
Set the OSM_HOSTNAME variable to the host of the OSM server (default: localhost).
hostname = "127.0.0.1"
myclient = client.Client(host=hostname, sol005=True)
resp = myclient.nsd.list()
-print yaml.safe_dump(resp)
+print yaml.safe_dump(resp, indent=4, default_flow_style=False)
```
### Simple Python code to get the list of VNF packages from a specific user and project
kwargs['project']=project
myclient = client.Client(host=hostname, sol005=True, **kwargs)
resp = myclient.vnfd.list()
-print yaml.safe_dump(resp)
+print yaml.safe_dump(resp, indent=4, default_flow_style=False)
```
## Enable autocompletion
. .bash_completion.d/osm-complete.sh
```
+## Future work
+
+- Option `-c` for list and show operations to filter output and show only selected columns
+- Option `-o <FORMAT>` to adapt output format (table, csv, yaml, json, jsonpath)
+- Command ns-status to show the deployment status (RO) and configuration status (VCA) in an appealing format
+- See how to deprecate commands and options: <https://stackoverflow.com/questions/50366719/correct-way-to-deprecate-parameter-alias-in-click>
+- Evaluate the possibility to re-structure code to uniform all commands: `check`, `table_headers`, `run`, `output`
+