Commit ecf1916d authored by Francisco-Javier Ramon Salguero's avatar Francisco-Javier Ramon Salguero
Browse files

Updated OSM Client reference (chapter 10). Format errors fixed in chapters 12-14

parents ff20fd69 270c866f
Loading
Loading
Loading
Loading
+74 −71
Original line number Diff line number Diff line
@@ -9,122 +9,121 @@ 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
  --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
  -h, --help       Show this message and exit.

Commands:
  k8scluster-add             adds a K8s cluster to OSM NAME: name of the K8s cluster
  k8scluster-delete          deletes a K8s cluster NAME: name or ID of the K8s cluster to be deleted
  k8scluster-list            list all K8s clusters
  k8scluster-show            shows the details of a K8s cluster NAME: name or ID of the K8s cluster
  k8scluster-update          updates a K8s cluster
  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-instance-op-list  shows the history of operations over a Network Slice Instance (NSI)
  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-list     list all Network Slice Templates (NST)
  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...
  nf-list                    list all NF instances
  nfpkg-create               creates a new NFpkg
  nfpkg-delete               deletes a NFpkg
  nfpkg-list                 list all NF pkg (VNF pkg, PNF pkg, HNF pkg)...
  nfpkg-list                 list all xNF packages (VNF, HNF, PNF)
  nfpkg-show                 shows the content of a NF Descriptor
  nfpkg-update               updates a NFpkg
  ns-action                  executes an action/primitive over a NS...
  ns-action                  executes an action/primitive over a NS instance
  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-list                    list all NS instances
  ns-metric-export           exports a metric to the internal OSM bus, which can be read by other apps
  ns-op-list                 shows the history of operations over a NS instance
  ns-op-show                 shows the info of a NS 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-list                   list all NS packages
  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)
  nsi-op-list                shows the history of operations over a Network Slice Instance (NSI)
  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-list                 list all NS packages
  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-list                   list all Network Slice Templates (NST)
  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
  package-build              Build the tar.gz of the package
  package-create             Create a package descriptor
  package-validate           Validate a package descriptor
  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...
  pdu-show                   shows the content of a Physical Deployment Unit (PDU)
  project-create             creates a new project
  project-delete             deletes a project
  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
  project-show               shows the details of a project
  project-update             updates a project (only the name can be updated)
  repo-add                   adds a repo to OSM NAME: name of the repo URI: URI of the repo
  repo-delete                deletes a repo NAME: name or ID of the repo to be deleted
  repo-list                  list all repos
  repo-show                  shows the details of a repo NAME: name or ID of the repo
  repo-update                updates a repo in OSM NAME: name of the repo
  role-create                creates a new 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-delete                deletes an SDN controller
  sdnc-list                  list all SDN controllers
  sdnc-show                  shows the details of an SDN controller NAME:...
  sdnc-show                  shows the details of an SDN controller
  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...
  upload-package             uploads a VNF package or NS package
  user-create                creates a new user
  user-delete                deletes a 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...
  user-show                  shows the details of a user
  user-update                updates user information
  version
  vim-create                 creates a new VIM account
  vim-delete                 deletes a VIM account NAME: name or ID of the...
  vim-delete                 deletes a VIM account
  vim-list                   list all VIM accounts
  vim-show                   shows the details of a VIM account NAME: name...
  vim-show                   shows the details of a VIM account
  vim-update                 updates a VIM account
  vnf-list                   list all NF instances
  vnf-scale                  Executes a VNF scale (adding/removing VDUs)...
  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-list                  list all xNF packages (VNF, HNF, PNF)
  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-list                list all xNF packages (VNF, HNF, PNF)
  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-delete                 deletes a WIM account
  wim-list                   list all WIM accounts
  wim-show                   shows the details of a WIM account NAME: name...
  wim-show                   shows the details of a WIM account
  wim-update                 updates a WIM account
```

@@ -151,28 +150,32 @@ Then you can add the following to your $HOME/.bashrc file:

```bash
# Ubuntu pre-requirements
sudo apt install python-pip libcurl4-gnutls-dev libgnutls-dev
sudo apt install python3-pip libcurl4-gnutls-dev libgnutls-dev
# CentOS pre-requirements
# sudo yum install python-pip libcurl-devel gnutls-devel
sudo -H pip install python-magic
# sudo yum install python3-pip libcurl-devel gnutls-devel
sudo -H pip install python3-magic
# Install OSM Information model
sudo -H pip3 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 pip install git+https://osm.etsi.org/gerrit/osm/osmclient
sudo -H pip3 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
sudo -H pip3 install git+https://osm.etsi.org/gerrit/osm/osmclient@v7.0.0rc1
```

### Installing from cloned repo (for developers)

```bash
# Ubuntu pre-requirements
sudo apt install python-pip libcurl4-gnutls-dev libgnutls-dev
sudo apt install python3-pip libcurl4-gnutls-dev libgnutls-dev
# Make sure that
# sudo yum install python-pip libcurl-devel gnutls-devel
sudo -H pip install python-magic
sudo -H pip install python3-magic
# Install OSM Information model
sudo -H pip3 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
sudo -H pip install osmclient
sudo -H pip3 install osmclient
```

## Using osmclient as a library to interact with OSM
+99 −7
Original line number Diff line number Diff line
@@ -91,6 +91,8 @@ URL: /osm GET POST
            /pnf_descriptors                                    5       5
                /<pnfdInfoId>                                   5                       5       5
                    /pnfd_content                               5               5
            /subscriptions                                      5       5
                /<subscriptionId>                               5                       X

        /vnfpkgm/v1
            /vnf_packages_content                               O       O
@@ -101,6 +103,8 @@ URL: /osm GET POST
                        /upload_from_uri                                X
                    /vnfd                                       O5
                    /artifacts[/<artifactPath>]                 O5
            /subscriptions                                      X       X
                /<subscriptionId>                               X                       X

        /nslcm/v1
            /ns_instances_content                               O       O
@@ -117,9 +121,11 @@ URL: /osm GET POST
                    TO BE COMPLETED                             5               5
            /vnf_instances  (also vnfrs for compatibility)      O
                /<vnfInstanceId>                                O
            /subscriptions                                      5       5
                /<subscriptionId>                               5                       X

        /pdu/v1
            /pdu_descriptor                                     O       O
            /pdu_descriptors                                    O       O
                /<id>                                           O               O       O       O

        /admin/v1
@@ -135,6 +141,10 @@ URL: /osm GET POST
                /<id>                                           O                       O       O
            /sdns                                               O       O
                /<id>                                           O                       O       O
            /k8sclusters                                        O       O
                /<id>                                           O                       O       O
            /k8srepos                                           O       O
                /<id>                                           O                               O

        /nst/v1                                                 O       O
            /netslice_templates_content                         O       O
@@ -144,6 +154,8 @@ URL: /osm GET POST
                    /nst_content                                O               O
                    /nst                                        O
                    /artifacts[/<artifactPath>]                 O
            /subscriptions                                      X       X
                /<subscriptionId>                               X                       X

        /nsilcm/v1
            /netslice_instances_content                         O       O
@@ -155,6 +167,62 @@ URL: /osm GET POST
                    action                                              O
            /nsi_lcm_op_occs                                    O       O
                /<nsiLcmOpOccId>                                O                       O       O
            /subscriptions                                      X       X
                /<subscriptionId>                               X                       X

query string:
    Follows SOL005 section 4.3.2 It contains extra METHOD to override http method, FORCE to force.
        simpleFilterExpr := <attrName>["."<attrName>]*["."<op>]"="<value>[","<value>]*
        filterExpr := <simpleFilterExpr>["&"<simpleFilterExpr>]*
        op := "eq" | "neq" (or "ne") | "gt" | "lt" | "gte" | "lte" | "cont" | "ncont"
        attrName := string
    For filtering inside array, it must select the element of the array, or add ANYINDEX to apply the filtering over any
    item of the array, that is, pass if any item of the array pass the filter.
    It allows both ne and neq for not equal
    TODO: 4.3.3 Attribute selectors
        all_fields, fields=x,y,.., exclude_default, exclude_fields=x,y,...
        (none)... same as “exclude_default”
        all_fields... all attributes.
        fields=<list>... all attributes except all complex attributes with minimum cardinality of zero that are not
        conditionally mandatory, and that are not provided in <list>.
        exclude_fields=<list>... all attributes except those complex attributes with a minimum cardinality of zero that
        are not conditionally mandatory, and that are provided in <list>.
        exclude_default... all attributes except those complex attributes with a minimum cardinality of zero that are not
        conditionally mandatory, and that are part of the "default exclude set" defined in the present specification for
        the particular resource
        exclude_default and include=<list>... all attributes except those complex attributes with a minimum cardinality
        of zero that are not conditionally mandatory and that are part of the "default exclude set" defined in the
        present specification for the particular resource, but that are not part of <list>
    Additionally it admits some administrator values:
        FORCE: To force operations skipping dependency checkings
        ADMIN: To act as an administrator or a different project
        PUBLIC: To get public descriptors or set a descriptor as public
        SET_PROJECT: To make a descriptor available for other project

Header field name Reference Example Descriptions
    Accept IETF RFC 7231 [19] application/json Content-Types that are acceptable for the response.
    This header field shall be present if the response is expected to have a non-empty message body.
    Content-Type IETF RFC 7231 [19] application/json The MIME type of the body of the request.
    This header field shall be present if the request has a non-empty message body.
    Authorization IETF RFC 7235 [22] Bearer mF_9.B5f-4.1JqM  The authorization token for the request.
    Details are specified in clause 4.5.3.
    Range IETF RFC 7233 [21] 1000-2000 Requested range of bytes from a file
Header field name Reference Example Descriptions
    Content-Type IETF RFC 7231 [19] application/json The MIME type of the body of the response.
    This header field shall be present if the response has a non-empty message body.
    Location IETF RFC 7231 [19] http://www.example.com/vnflcm/v1/vnf_instances/123 Used in redirection, or when a
    new resource has been created.
    This header field shall be present if the response status code is 201 or 3xx.
    In the present document this header field is also used if the response status code is 202 and a new resource was
    created.
    WWW-Authenticate IETF RFC 7235 [22] Bearer realm="example" Challenge if the corresponding HTTP request has not
    provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization
    token.
    Accept-Ranges IETF RFC 7233 [21] bytes Used by the Server to signal whether or not it supports ranges for
    certain resources.
    Content-Range IETF RFC 7233 [21] bytes 21010-47021/ 47022 Signals the byte range that is contained in the
    response, and the total length of the file.
    Retry-After IETF RFC 7231 [19] Fri, 31 Dec 1999 23:59:59 GMT```
```

## Administrative Content Details
@@ -233,6 +301,18 @@ URL: /osm GET POST
- POST: Add a new sdn.
  - Example of request content: TODO

`/admin/v1/k8sclusters`. (rbac: `k8sclusters`). K8S Clusters to deploy juju bundles or helm packages

- GET: Gets k8s clusters
- POST: Add a new k8s cluster.
  - Example of request content: TODO

`/admin/v1/k8srepos`. (rbac: `k8srepos`). K8S repository that contains the juju bundles or helm packages

- GET: Gets k8s repositories
- POST: Add a new k8s repository.
  - Example of request content: TODO

`/admin/v1/sdns/`. (rbac: `sdn_controllers:id`)

- GET: Get sdn details
@@ -240,6 +320,18 @@ URL: /osm GET POST
  - Example of sdn edition: TODO
- DELETE: Removes sdn.

`/admin/v1/k8sclusters/`. (rbac: `k8sclusters:id`)

- GET: Get k8sclusters details
- PUT/PATCH: Edit k8sclusters.
- DELETE: Removes k8sclusters.

`/admin/v1/k8srepos/`. (rbac: `k8srepos:id`)

- GET: Get k8srepos details
- PUT/PATCH: Edit k8srepos.
- DELETE: Removes k8srepos.

## PDU Details

Physical Data Unit. This is catalogue of physical elements present at some vim_account/s. Deployment of a PNFD/HNFD implies using one of this pdu from the catalogue. Matching from PNFD/HNFD to PDU is done by 'pdu.type'
@@ -284,7 +376,7 @@ TBC

## NSLCM Details

Network Services Life Ciclo Management
Network Services Lifecycle Management

`/nslcm/v1/ns_instances_content`.

@@ -424,7 +516,7 @@ NetSlice Template descriptor

## NSILCM Details

NetSlice Instance Life Cicle Management
NetSlice Instance Lifecycle Management

`/nsilcm/v1/netslice_instances_content`

+15 −15
Original line number Diff line number Diff line
@@ -202,8 +202,8 @@ The outputs are:

**Sources:**

- Onos with Maven: https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
- Onos with Buck: https://wiki.onosproject.org/display/ONOS/Developer+Guide
- [Onos with Maven](https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS)
- [Onos with Buck](https://wiki.onosproject.org/display/ONOS/Developer+Guide)

##### Run ONOS

+68 −70

File changed.

Preview size limit exceeded, changes collapsed.