diff --git a/10-osm-client-commands-reference.md b/10-osm-client-commands-reference.md index 31c1e613618a2b16b3435a88d3ad83a287babdb0..7afe76e2e74f1df9488c6908033cac3ae95b475e 100644 --- a/10-osm-client-commands-reference.md +++ b/10-osm-client-commands-reference.md @@ -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 -# Make sure that +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 diff --git a/12-osm-nbi.md b/12-osm-nbi.md index a2c48e9e3adb17d290f1b1c7af56d8eb74d1c15b..5ae315a7ae470162f50b5a1343eae524b697515d 100644 --- a/12-osm-nbi.md +++ b/12-osm-nbi.md @@ -44,7 +44,7 @@ For development purposes it admits web browser navigation using a basic http for From Release SIX, operations are authorized via RBAC (Role Base Access Control). Each user and project is assigned with a set of roles, and some of them must grant the intended operation. If administrative query string is used (see next section), role must grant the use of it in addition to the operation. -Role permissions are organized in a hierarchical tree, separated by colon, optionally ending with the http operation. The value of False means not granted, meanwhile with True it is granted. If this permission is missing, the immediate hierarchical permission applies. When there is not hierarchical at all, the defined "default" permission applies, and if "default" is missing, not granted is assumed. See these examples [initial roles ](https://osm.etsi.org/gitweb/?p=osm/NBI.git;a=blob;f=osm_nbi/roles_to_operations.yml); and [role permissions](https://osm.etsi.org/gitweb/?p=osm/NBI.git;a=blob;f=osm_nbi/resources_to_operations.yml) for the list of RBAC permission with their operation. In following sections the RBAC permission granting this operation is indicated in brackets. +Role permissions are organized in a hierarchical tree, separated by colon, optionally ending with the http operation. The value of False means not granted, meanwhile with True it is granted. If this permission is missing, the immediate hierarchical permission applies. When there is not hierarchical at all, the defined "default" permission applies, and if "default" is missing, not granted is assumed. See these examples [initial roles](https://osm.etsi.org/gitweb/?p=osm/NBI.git;a=blob;f=osm_nbi/roles_to_operations.yml); and [role permissions](https://osm.etsi.org/gitweb/?p=osm/NBI.git;a=blob;f=osm_nbi/resources_to_operations.yml) for the list of RBAC permission with their operation. In following sections the RBAC permission granting this operation is indicated in brackets. ## Query String @@ -91,6 +91,8 @@ URL: /osm GET POST /pnf_descriptors 5 5 / 5 5 5 /pnfd_content 5 5 + /subscriptions 5 5 + / 5 X /vnfpkgm/v1 /vnf_packages_content O O @@ -101,6 +103,8 @@ URL: /osm GET POST /upload_from_uri X /vnfd O5 /artifacts[/] O5 + /subscriptions X X + / 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 / O + /subscriptions 5 5 + / 5 X /pdu/v1 - /pdu_descriptor O O + /pdu_descriptors O O / O O O O /admin/v1 @@ -135,6 +141,10 @@ URL: /osm GET POST / O O O /sdns O O / O O O + /k8sclusters O O + / O O O + /k8srepos O O + / 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[/] O + /subscriptions X X + / 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 / O O O + /subscriptions X X + / X X + +query string: + Follows SOL005 section 4.3.2 It contains extra METHOD to override http method, FORCE to force. + simpleFilterExpr := ["."]*["."]"="[","]* + filterExpr := ["&"]* + 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=... all attributes except all complex attributes with minimum cardinality of zero that are not + conditionally mandatory, and that are not provided in . + exclude_fields=... all attributes except those complex attributes with a minimum cardinality of zero that + are not conditionally mandatory, and that are provided in . + 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=... 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 + 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` @@ -441,9 +533,9 @@ NetSlice Instance Life Cicle Management netslice-subnet: [ Same content as section #NSLCM_Details /nslcm/v1/ns_instances_content ], netslice-vld: [ - name: TEXT, - vim-network-name: TEXT or DICT with the name for each vim account: {vimAccountId: network-name, ...}, - vim-network-id: TEXT or DICT with the id for each vim account {vimAccountId: network-id}, + name: TEXT, + vim-network-name: TEXT or DICT with the name for each vim account: {vimAccountId: network-name, ...}, + vim-network-id: TEXT or DICT with the id for each vim account {vimAccountId: network-id}, ip-profile: Profile of the vld ] ``` diff --git a/13-openvim-installation.md b/13-openvim-installation.md index d6bf9701083c0207ac2447e6ac4e42bcf8088ab7..54aad45ca6e46b9785c59af6cda40d9a0ab87178 100644 --- a/13-openvim-installation.md +++ b/13-openvim-installation.md @@ -169,7 +169,7 @@ $ op **NOTE:** ONOS currently uses a modified version of Buck, which has been packaged with ONOS. Please use this version until our changes have been upstreamed and released as part of an official Buck release. ```bash -$ sudo apt-get install zip unzip +$ sudo apt-get install zip unzip $ cd $ONOS_ROOT $ tools/build/onos-buck build onos --show-output Updating Buck... @@ -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 @@ -362,10 +362,10 @@ Modify `openvimd.cfg` and add net controller connection details: ```yaml network_type : ovs -#ovs_controller_ip: # dhcp controller IP address, must be change in - # order to reach computes. +#ovs_controller_ip: # dhcp controller IP address, must be change in + # order to reach computes. #ovs_controller_user: # User for the dchp controller for OVS networks -#ovs_controller_file_path: '/var/lib/openvim' # Net controller Path for dhcp daemon +#ovs_controller_file_path: '/var/lib/openvim' # Net controller Path for dhcp daemon # configuration, by default '/var/lib/openvim ``` @@ -601,7 +601,7 @@ auth_unix_rw = "none" - Create and configure a user to access the compute node from openvim. The user must belong to group libvirt. ```bash -#creates a new user +#creates a new user useradd -m -G libvirt #or modified an existing user usermod -a -G libvirt @@ -773,10 +773,10 @@ echo "export OPENVIM_HOST=<...>" >> /{HOME}/.bashrc In `test` mode we need to provide fake compute nodes with all the necessary information: ```bash -openvim host-add /opt/openvim/test/hosts/host-example0.yaml -openvim host-add /opt/openvim/test/hosts/host-example1.yaml -openvim host-add /opt/openvim/test/hosts/host-example2.yaml -openvim host-add /opt/openvim/test/hosts/host-example3.yaml +openvim host-add /opt/openvim/test/hosts/host-example0.yaml +openvim host-add /opt/openvim/test/hosts/host-example1.yaml +openvim host-add /opt/openvim/test/hosts/host-example2.yaml +openvim host-add /opt/openvim/test/hosts/host-example3.yaml openvim host-list #-v,-vv,-vvv for verbosity levels ``` @@ -786,12 +786,12 @@ In `normal` or `host only` mode, the process is a bit more complex. First, you n #copy /opt/openvim/scripts/host-add.sh and run at compute host for gather all the information ./host_add.sh >> host.yaml #NOTE: If the host contains interfaces connected to the openflow switch for dataplane, -# the switch port where the interfaces are connected must be provided manually, +# the switch port where the interfaces are connected must be provided manually, # otherwise these interfaces cannot be used. Follow one of two methods: # 1) Fill openvim/database_utils/of_ports_pci_correspondence.sql ... # ... and load with mysql -uvim -p vim_db < openvim/database_utils/of_ports_pci_correspondence.sql -# 2) or add manually this information at generated host.yaml with a 'switch_port: ' -# ... entry at 'host-data':'numas': 'interfaces' +# 2) or add manually this information at generated host.yaml with a 'switch_port: ' +# ... entry at 'host-data':'numas': 'interfaces' # copy this generated file host.yaml to the openvim server, and add the compute host with the command: openvim host-add host.yaml # copy openvim ssh key to the compute node. If openvim user didn't have a ssh key generate it using ssh-keygen @@ -927,7 +927,7 @@ service osm-openvim stop git -C /opt/openvim pull --rebase git -C /opt/openvim checkout tags/v2.0.1 #git -C /opt/openvim stash pop #required if the original file has changed -/opt/openvim/database_utils/migrate_vim_db.sh +/opt/openvim/database_utils/migrate_vim_db.sh service osm-openvim start ``` diff --git a/14-tests-for-vim-validation.md b/14-tests-for-vim-validation.md index 00b9d15857640b4e93b9049db888153d09c72f5b..202453e107051df1acccfe960d1fc4e7baf127cf 100644 --- a/14-tests-for-vim-validation.md +++ b/14-tests-for-vim-validation.md @@ -14,13 +14,13 @@ Objectives: Steps: -- Onboard and deploy the Cirros NS, as described in https://osm.etsi.org/wikipub/index.php/OSM_Release_TWO#Deploying_your_first_Network_Service -- Access the console via OSM UI (user: “`cirros`”, pwd: “`cubswin:)`”) +- Onboard and deploy the Cirros NS, as described in [OSM Usage](05-osm-usage.md) +- Access the console via OSM UI (user: "`cirros`", pwd: "`cubswin:)`") - Check that the VMs are up and running and connected via the common link. Images: -- cirros034.qcow2 +- [cirros-0.3.4-x86_64-disk.img](http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img) Descriptors: @@ -35,13 +35,13 @@ Objective: Steps: -- Modify the checksum in the VNF descriptor (using the UI VNF catalog) to add a wrong but format-valid checksum (e.g.: “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”). Same images are used. -- Deploy the same NS as in test1 -- Check that the system refuses to deploy the NS due to a checksum error (“VIM Exception vimconnException Image not found at VIM with filter…”) +- Modify the checksum in the VNF descriptor (using the UI VNF catalog) to add a wrong but format-valid checksum (e.g.: "00000000000000000000000000000000"). Same images are used. +- Deploy the same NS as in "Test 1" +- Check that the system refuses to deploy the NS due to a checksum error ("VIM Exception vimconnException Image not found at VIM with filter") Images: -- cirros034.qcow2 +- [cirros-0.3.4-x86_64-disk.img](http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img) Descriptors: @@ -56,15 +56,15 @@ Objective: Steps: -- Modify the checksum in the VNF descriptor (using the UI VNF catalog) to add the valid checksum for the image (“ee1eca47dc88f4879d8a229cc70a07c6” for the cirros034 image). -- Deploy the same NS as in test1 +- Modify the checksum in the VNF descriptor (using the UI VNF catalog) to add the valid checksum for the image ("ee1eca47dc88f4879d8a229cc70a07c6" for the cirros034 image). +- Deploy the same NS as in "Test 1" - Check that the NS is successfully instantiated. -- Access the console via OSM UI (user: “`cirros`”, pwd: “`cubswin:)`”) +- Access the console via OSM UI (user: "`cirros`", pwd: "`cubswin:)`") - Check that the VMs are up and running and connected via the common link. Images: -- cirros034.qcow2 +- [cirros-0.3.4-x86_64-disk.img](http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img) Descriptors: @@ -80,22 +80,22 @@ Objective: Steps: -- Onboard a “large NS” consisting of: +- Onboard a "large NS" consisting of: - 2 types of VNFs based on Cirros VM. VNF#1 should have 5 interfaces (+management), while VNF#2 would only require 1 interface (+management) - Star topology, with 1 VNF in the middle and 5 instances of the other VNF connected to that one (+ the corresponding management interfaces) - Launch NS instantiation, specifying the right mgmt network to be used - Check that the UI reports a successful deployment -- Connect to each VNF via SSH (user: “`cirros`”, pwd: “`cubswin:)`”) +- Connect to each VNF via SSH (user: "`cirros`", pwd: "`cubswin:)`") Images: -- cirros034.qcow2 +- [cirros-0.3.4-x86_64-disk.img](http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img) Descriptors: -- cirros_2ifaces_vnf -- cirros_6ifaces_vnf -- test3a_ns +- [cirros_2ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_2ifaces_vnf.tar.gz) +- [cirros_6ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_6ifaces_vnf.tar.gz) +- [test3a_ns](http://osm-download.etsi.org/ftp/e2e-tests/test3a_ns.tar.gz) ## Test 3b. Instantiation time of large NS based on Cirros images using IP profiles @@ -103,29 +103,28 @@ Objective: - Check that instantiation time is bounded to avoid spurious timeouts. - Measure delay in the deployment, and evaluate potential issues in the connector. - - Check that IP profiles work properly in a large NS Steps: -- Onboard a “large NS” consisting of: +- Onboard a "large NS" consisting of: - 2 types of VNFs based on Cirros VM. VNF#1 should have 5 interfaces (+management), while VNF#2 would only require 1 interface (+management) - Star topology, with 1 VNF in the middle and 5 instances of the other VNF connected to that one (+ the corresponding management interfaces) - Networks will have an IP profile so that DHCP is enabled - Launch NS instantiation, specifying the right mgmt network to be used - Check that the UI reports a successful deployment -- Connect to each VNF via SSH (user: “`cirros`”, pwd: “`cubswin:)`”) and configure the interfaces to use DHCP, e.g. by changing /etc/network/interfaces and running “ifup ethX” +- Connect to each VNF via SSH (user: "`cirros`", pwd: "`cubswin:)`") and configure the interfaces to use DHCP, e.g. by changing /etc/network/interfaces and running "ifup ethX" - Check that connectivity is appropriate via ping from the different VMs Images: -- cirros034.qcow2 +- [cirros-0.3.4-x86_64-disk.img](http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img) Descriptors: -- cirros_2ifaces_vnf -- cirros_6ifaces_vnf -- test3b_ns +- [cirros_2ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_2ifaces_vnf.tar.gz) +- [cirros_6ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_6ifaces_vnf.tar.gz) +- [test3b_ns](http://osm-download.etsi.org/ftp/e2e-tests/test3b_ns.tar.gz) ## Test 3c. Instantiation time of large NS based on Ubuntu images using IP profiles @@ -137,24 +136,24 @@ Objective: Steps: -- Onboard a “large NS” consisting of: +- Onboard a "large NS" consisting of: - 2 types of VNFs based on Ubuntu VM. VNF#1 should have 5 interfaces (+management), while VNF#2 would only require 1 interface (+management) - Star topology, with 1 VNF in the middle and 5 instances of the other VNF connected to that one (+ the corresponding management interfaces) - Networks will have an IP profile so that DHCP is enabled - Launch NS instantiation, specifying the right mgmt network to be used - Check that the UI reports a successful deployment -- Connect to each VNF via SSH (user: “`osm`”, pwd: “`osm4u`”). +- Connect to each VNF via SSH (user: "`osm`", pwd: "`osm4u`"). - Check that connectivity is appropriate via ping from the different VMs Images: -- US1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_2ifaces_vnf -- ubuntu_6ifaces_vnf -- test3c_ns +- [cirros_2ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_2ifaces_vnf.tar.gz) +- [cirros_6ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/cirros_6ifaces_vnf.tar.gz) +- [test3c_ns](http://osm-download.etsi.org/ftp/e2e-tests/test3c_ns.tar.gz) ## Test 4a. Day 0 configuration: SSH key injection to the default user @@ -165,19 +164,18 @@ Objective: Steps: - Onboard a variant of the NS of Test #1, but with Ubuntu VNFs. -- Add an SSH key through the UI (Launchpad > SSH Keys), where the key to be added is the public key. - Instantiate the NS via UI, requesting the injection of a given SSH key for the default user. Specify also the right mgmt network to be used. - Check that the UI reports a successful deployment - Check that the VMs are accessible via SSH, using the private SSH key, from the management network. Images: -- ubuntu1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_1iface_vnf -- test4a_ns +- [ubuntu_1iface_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_1iface_vnf.tar.gz) +- [test4a_ns](http://osm-download.etsi.org/ftp/e2e-tests/test4a_ns.tar.gz) ## Test 4b. Day 0 configuration: user addition @@ -187,19 +185,19 @@ Objective: Steps: -- Onboard a the variant of the NS of Test #4a (test4b_ns), where the NS includes a user “osm” and SSH public key to be injected to every VNF. +- Onboard a the variant of the NS of Test #4a (test4b_ns), where the NS includes a user "osm" and SSH public key to be injected to every VNF. - Launch NS instantiation via UI, specifying the right mgmt network to be used. - Check that the UI reports a successful deployment. -- Check that the VMs are accessible from the management network via the new user “osm” using its private SSH key (the private key is stored in the folder "test4b_ns/keys" inside the NS package). +- Check that the VMs are accessible from the management network via the new user "osm" using its private SSH key (the private key is stored in the folder "test4b_ns/keys" inside the NS package). Images: -- ubuntu1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_1iface_vnf -- test4b_ns +- [ubuntu_1iface_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_1iface_vnf.tar.gz) +- [test4b_ns](http://osm-download.etsi.org/ftp/e2e-tests/test4b_ns.tar.gz) ## Test 4c. Day 0 configuration: custom user script with cloud-init @@ -216,12 +214,12 @@ Steps: Images: -- ubuntu1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: - ubuntu_1iface_cloudinit_newfile_vnf -- test4c_ns +- [test4c_ns](http://osm-download.etsi.org/ftp/e2e-tests/test4c_ns.tar.gz) ## Test 5. Port security disabled @@ -234,7 +232,7 @@ Steps: - Onboard a variant of the NS of Test #4 (test5_ns), but with a VNF whose single interface has port security disabled. - Launch NS instantiation via UI, specifying the right mgmt network to be used - Check that the UI reports a successful deployment. -- Connect to each VNF via SSH (user: “`osm`”, pwd: “`osm4u`”). +- Connect to each VNF via SSH (user: "`osm`", pwd: "`osm4u`"). - Configure both VNFs with an additional IP address of the same subnet, e.g.: 192.168.50.X/24 - Do not remove the mgmt IP address. - Add an additional IP address to the single interfaces using the command "ip addr add 192.168.50.X/24 dev eth0" and ping from one VNF to the other one. @@ -242,12 +240,12 @@ Steps: Images: -- US1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_1iface_noportsecurity_vnf -- test5_ns +- [ubuntu_1iface_noportsecurity_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_1iface_noportsecurity_vnf.tar.gz) +- [test5_ns](http://osm-download.etsi.org/ftp/e2e-tests/test5_ns.tar.gz) ## Test 6a. Assignment of public IP addresses to management interfaces of single-interface VNFs @@ -258,24 +256,24 @@ Objective: Prerequisites: - Configure the VIM to allow the dynamic assignment of public addresses from a pool -- Configure a VIM network (e.g. “public”) to use the appropriate pool, to allow external access via “public” IP addresses. +- Configure a VIM network (e.g. "public") to use the appropriate pool, to allow external access via "public" IP addresses. - Configure the datacenter in the RO to assign public IP addresses to VNF management interfaces (use_floating_ip: true) Steps: - Onboard and deploy a NS consisting of 2 Ubuntu VNFs interconnected by a single network (mgmt). -- Instantiate the NS via UI, specifying that the NS network “mgmt” must be mapped to the VIM network name “public”, so that a “public” IP address will be assigned from the pool. +- Instantiate the NS via UI, specifying that the NS network "mgmt" must be mapped to the VIM network name "public", so that a "public" IP address will be assigned from the pool. - Check that the UI reports a successful deployment. -- Connect to each VNF via SSH (user: “`osm`”, pwd: “`osm4u`”) using the public IP address. +- Connect to each VNF via SSH (user: "`osm`", pwd: "`osm4u`") using the public IP address. Images: -- US1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_1iface_userosm_vnf -- test6a_ns +- [ubuntu_1iface_userosm_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_1iface_userosm_vnf.tar.gz) +- [test6a_ns](http://osm-download.etsi.org/ftp/e2e-tests/test6a_ns.tar.gz) ## Test 6b. Assignment of public IP addresses to management interfaces of multi-interface VNFs @@ -286,24 +284,24 @@ Objective: Prerequisites: - Configure the VIM to allow the dynamic assignment of public addresses from a pool -- Configure a VIM network (e.g. “public”) to use the appropriate pool, to allow external access via “public” IP addresses. +- Configure a VIM network (e.g. "public") to use the appropriate pool, to allow external access via "public" IP addresses. - Configure the datacenter in the RO to assign public IP addresses to VNF management interfaces (use_floating_ip: true) Steps: - Onboard and deploy a NS consisting of 2 Ubuntu VNFs interconnected by two networks (management and data). -- Instantiate the NS via UI, specifying that the NS network “mgmt” must be mapped to the VIM network name “public”, so that a “public” IP address will be assigned from the pool. +- Instantiate the NS via UI, specifying that the NS network "mgmt" must be mapped to the VIM network name "public", so that a "public" IP address will be assigned from the pool. - Check that the UI reports a successful deployment. -- Connect to each VNF via SSH (user: “`osm`”, pwd: “`osm4u`”) using the public IP address. +- Connect to each VNF via SSH (user: "`osm`", pwd: "`osm4u`") using the public IP address. Images: -- US1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_2ifaces_vnf -- test6b_ns +- [ubuntu_2ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_2ifaces_vnf.tar.gz) +- [test6b_ns](http://osm-download.etsi.org/ftp/e2e-tests/test6b_ns.tar.gz) ## Test 6c. Assignment of public IP addresses to management interfaces of multi-interface VNFs even when IP profiles are used @@ -314,25 +312,25 @@ Objective: Prerequisites: - Configure the VIM to allow the dynamic assignment of public addresses from a pool -- Configure a VIM network (e.g. “public”) to use the appropriate pool, to allow external access via “public” IP addresses. +- Configure a VIM network (e.g. "public") to use the appropriate pool, to allow external access via "public" IP addresses. - Configure the datacenter in the RO to assign public IP addresses to VNF management interfaces (use_floating_ip: true) Steps: - Onboard and deploy the NS used in Test 3c, consisting of a star topology, with 1 VNF in the middle and 5 instances of the other VNF connected to that one (+ the corresponding management interfaces), where all the inter-VNF networks have an IP profile so that DHCP is enabled, but with no default gateway. -- Instantiate the NS via UI, specifying that the NS network “mgmt” must be mapped to the VIM network name “public”, so that a “public” IP address will be assigned from the pool. This is the only change with respect to Test 3c. +- Instantiate the NS via UI, specifying that the NS network "mgmt" must be mapped to the VIM network name "public", so that a "public" IP address will be assigned from the pool. This is the only change with respect to Test 3c. - Check that the UI reports a successful deployment. -- Connect to each VNF via SSH (user: “`osm`”, pwd: “`osm4u`”) using the public IP address. +- Connect to each VNF via SSH (user: "`osm`", pwd: "`osm4u`") using the public IP address. Images: -- US1604 +- [US1604](http://osm-download.etsi.org/ftp/e2e-tests/US1604.qcow2) Descriptors: -- ubuntu_2ifaces_vnf -- ubuntu_6ifaces_vnf -- test3c_ns +- [ubuntu_2ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_2ifaces_vnf.tar.gz) +- [ubuntu_6ifaces_vnf](http://osm-download.etsi.org/ftp/e2e-tests/ubuntu_2ifaces_vnf.tar.gz) +- [test3c_ns](http://osm-download.etsi.org/ftp/e2e-tests/test3c_ns.tar.gz) ## Test 7a. EPA tests - phase 1 @@ -361,12 +359,12 @@ Steps: Images: -- pktgen +- [pktgen](http://osm-download.etsi.org/ftp/e2e-tests/pktgen.qcow2) Descriptors: -- pktgen_4psriov_vnfd -- test7a_ns +- [pktgen_4psriov_vnfd](http://osm-download.etsi.org/ftp/e2e-tests/pktgen_4psriov_vnfd.tar.gz) +- [test7a_ns](http://osm-download.etsi.org/ftp/e2e-tests/test7a_ns.tar.gz) ## Test 7b. EPA tests - phase 2 @@ -384,9 +382,9 @@ Steps: Images: -- pktgen +- [pktgen](http://osm-download.etsi.org/ftp/e2e-tests/pktgen.qcow2) Descriptors: -- pktgen_4ppassthrough_vnfd -- test7b_ns +- [pktgen_4ppassthrough_vnfd](http://osm-download.etsi.org/ftp/e2e-tests/pktgen_4ppassthrough_vnfd.tar.gz) +- [test7b_ns](http://osm-download.etsi.org/ftp/e2e-tests/test7b_ns.tar.gz)