OpenBaton Command Line Interface (CLI)
The Openbaton Client project provides a command-line interface, which enables you to use the NFVO's API and send commands to it.
Install the Openbaton Client
Git clone the project. Navigate into the root directory of the project and execute ./gradlew build.
git clone https://github.com/openbaton/openbaton-client.git
cd openbaton-client
./gradlew build
Set the required environment variables
Navigate into the project's root directory and execute source nfvo.properties. A dialog appears and will ask you for some properties.
cd openbaton-client
source nfvo.properties
Openbaton Client usage
After you typed in all the required properties you can start using the cli for sending commands to the NFVO.
Run a command:
# openbaton.sh command_name [arg-1] [arg-2] [arg-3]
Show the configuration:
openbaton.sh -c
Activate debug mode:
openbaton.sh -d COMMAND [arg-1] [arg-2] [arg-3]
Print help:
openbaton.sh -h
Print help for a command:
openbaton.sh COMMAND help
List the available commands:
openbaton.sh -l
For help on a specific openbaton command, enter:
$ openbaton.sh COMMAND help
Available commands
In the following section we list all the currently avalilable commands for the cli grouped by the components they work with.
Vim Instance Subcommands
create
- Create a Vim Instance
$ openbaton.sh VimInstance-create file.json
delete
- Delete the Vim Instance with the specified id
$ openbaton.sh VimInstance-delete id-vim-instance
update
- Update a Vim Instance by passing a file containing the new one and the id of the old one
$ openbaton.sh VimInstance-update file.json id-vim-instance
findAll
- Find all Vim Instances
$ openbaton.sh VimInstance-findAll
findById
- Find a Vim Instance specified by the id
$ openbaton.sh VimInstance-findById id-vim-instance
Network Service Descriptor Subcommands
create
- Create a Network Service Descriptor
$ openbaton.sh NetworkServiceDescriptor-create file.json
delete
- Delete a Network Service Descriptor passing its id
$ openbaton.sh NetworkServiceDescriptor-delete id-network-service-descriptor
findAll
- Find all Network Service Descriptors
$ openbaton.sh NetworkServiceDescriptor-findAll
findById
- Find a Network Service Descriptor by passing its id
$ openbaton.sh NetworkServiceDescriptor-findById id-network-service-descriptor
createVNFDependency
- Create a Virtual Network Function Descriptor dependency for a Network Service Descriptor with a specific id
$ openbaton.sh NetworkServiceDescriptor-createVNFDependency id-network-service-descriptor file.json
The file should look similar to this:
{
"parameters":["theParameter"],
"version":1,
"source":{"id":"950811b6-ebb6-4a17-bf4e-ab61974acbc8"},
"target": {"id":"9873ad54-2963-424d-ab5d-39403a5dd544"}
}
The ids belong to the particular VirtualNettworkFunctionDescriptor.
deleteVNFDependency
- Delete the Virtual Network Function Descriptor dependency of a Network Service Descriptor with a specific id
$ openbaton.sh NetworkServiceDescriptor-deleteVNFDependency id-network-service-descriptor id-vnfdependency
getVNFDependencies
- Get all the Virtual Network Function Descriptor Dependencies of a Network Service Descriptor with a specific id
$ openbaton.sh NetworkServiceDescriptor-getVNFDependencies id-network-service-descriptor
getVNFDependency
- Get the VirtualNetwork Function Descriptor Dependency with a specific id of a Network Service Descriptor with a specific id
$ openbaton.sh NetworkServiceDescriptor-getVNFDependency id-network-service-descriptor id-vnfdependency
getVirtualNetworkFunctionDescriptors
- Find all Virtual Network Function Descriptors
$ openbaton.sh NetworkServiceDescriptor-getVirtualNetworkFunctionDescriptors id-network-service-descriptor
getVirtualNetworkFunctionDescriptor
- Find a Virtual Network Function Descriptor specified by its id
$ openbaton.sh NetworkServiceDescriptor-getVirtualNetworkFunctionDescriptor id-network-service-descriptor id-vnfd
Virtual Network Function Descriptor Subcommands
- create
- Create a Virtual Network Function Descriptor
$ openbaton.sh VirtualNetworkFunctionDescriptor-create file.json
- delete
- Delete a Virtual Network Function Descriptor passing its id
$ openbaton.sh VirtualNetworkFunctionDescriptor-delete id-virtual-network-function-descriptor
- findAll
- Find all Virtual Network Function Descriptors
$ openbaton.sh VirtualNetworkFunctionDescriptor-findAll
- findById
- Find a Virtual Network Function Descriptor by passing its id
$ openbaton.sh VirtualNetworkFunctionDescriptor-findById id-virtual-network-function-descriptor
Network Service Record Subcommands
create
- Create a Network Service Record from a Network Service Descriptor stored in the orchestrator
$ openbaton.sh NetworkServiceRecord-create id-network-service-descriptor vim-map-file keypair-file configurations-file
The three arguments after the NSD id can be used to specify the VIM on which a VDU should be deployed, the keypairs that shall be used to deploy the NSR and configuration parameters for the VNFRs.
If you want to specify the VIM to use for a particular VDU you can pass a file containing a map like this:
{"vdu1Name":[vim1,vim2,vim3], "vdu2Name":[vim1]}
In this case the VDU named vdu2Name would be deployed on vim1 and the VDU named vdu1Name randomly on one of the VIMs vim1, vim2 or vim3.
The second command argument specifies a file containing a list that describes which keypairs shall be used to deploy the NSR. Here is an example:
["key1", "key2", "key3"]
The last command argument specifies a file containing a map of VNFR names and configuration parameters. Here is an example:
{
"configurations":{
"vnfrName1":{"name":"conf1","configurationParameters":[{"confKey":"key1", "value":"value1", "description":"description1"}]},
"vnfrName2":{"name":"conf2","configurationParameters":[{"confKey":"key1", "value":"value1", "description":"description1"}]}
}
}
Of course you do not have to specify VIMs, keys and configurations. If you do not want to specify them just put empty objects into the files i.e. {} and [].
delete
- Delete a Network Service Record passing its id
$ openbaton.sh NetworkServiceRecord-delete id-network-service-record
update
- Update the Network Service Record by passing a file with the new version of it and the id of the Network Service Record to update
$ openbaton.sh NetworkServiceRecord-update file.json id-network-service-record
findAll
- Find all Network Service Records
$ openbaton.sh NetworkServiceRecord-findAll
findById
- Find a Network Service Record by passing its id
$ openbaton.sh NetworkServiceRecord-findById id-network-service-record
getVirtualNetworkFunctionRecords
- Get all the Virtual Network Function Records of a Network Service Record with a specific id
$ openbaton.sh NetworkServiceRecord-getVirtualNetworkFunctionRecords id-network-service-record
getVirtualNetworkFunctionRecord
- Get the Virtual Network Function Record by providing its id of a Network Service Record with a specific id
$ openbaton.sh NetworkServiceRecord-getVirtualNetworkFunctionRecord id-network-service-record id-vnfr
deleteVirtualNetworkFunctionRecord
- Delete the Virtual Network Function Record of a Network Service Record with a specific id
$ openbaton.sh NetworkServiceRecord-deleteVirtualNetworkFunctionRecord id-network-service-record id-vnfr
createVNFDependency
- Create a Virtual Network Function Record Dependency of a NetworkServiceRecord with a specific id
$ openbaton.sh NetworkServiceRecord-createVNFDependency id-network-service-record file.json
deleteVNFDependency
- Delete the Virtual Network Function Record Dependency of a NetworkServiceRecord with a specific id
$ openbaton.sh NetworkServiceRecord-deleteVNFDependency id-network-service-record id-vnfdependency
getVNFDependencies
- Get all the Virtual Network Function Record Dependencies of a Network Service Record with a specific id
$ openbaton.sh NetworkServiceRecord-getVNFDependencies id-network-service-record
getVNFDependency
- Get the Virtual Network Function Record Dependency of a Network Service Record with a specific id
$ openbaton.sh NetworkServiceRecord-getVNFDependency id-network-service-record id-vnfdependency
createVNFCInstance
- Perform a SCALE_OUT operation on a Virtual Network Function by adding a VNFCInstance to its Virtual Network Function Record
$ openbaton.sh NetworkServiceRecord-createVNFCInstance id-network-service-record id-virtual-network-function-record file.json
deleteVNFCInstance
- Perform a SCALE_IN operation on a Virtual Network Function by deleting a VNFCInstance from the Virtual Network Function Record
$ openbaton.sh NetworkServiceRecord-deleteVNFCInstance id-network-service-record id-virtual-network-function-record
startVNFCInstance
- Start a VNFCInstance specified by it's id
$ openbaton.sh NetworkServiceRecord-startVNFCInstance id-nsr id-vnfr id-vdu id-vnfcinstance
stopVNFCInstance
- Stop a VNFCInstance specified by it's id
$ openbaton.sh NetworkServiceRecord-stopVNFCInstance id-nsr id-vnfr id-vdu id-vnfcinstance
User Subcommands
create
- Create a new User
$ openbaton.sh User-create file.json
delete
- Delete a user passing his id
$ openbaton.sh User-delete user-id
update
- Update a User
$ openbaton.sh User-update file.json user-id
findAll
- Find all Users
$ openbaton.sh User-findAll
findByName
- Find a User by his username
$ openbaton.sh User-findByName username
changePassword
- Change the password of the current user
$ openbaton.sh User-changePassword oldPassword newPassword
Remember to source nfvo.properties afterwards and set the new password if you want to continue working as this User.
Project Subcommands
create
- Create a new Project
$ openbaton.sh Project-create file.json
delete
- Delete a Project passing its id
$ openbaton.sh Project-delete id-project
update
- Delete a Project passing its id
$ openbaton.sh Project-delete id-project
findAll
- Find all Projects
$ openbaton.sh Project-findAll
findById
- Find a Project by passing its id
$ openbaton.sh Project-findById id-project
Key Subcommands
generateKey
- Generate a new Key in the NFVO
$ openbaton.sh Key-generateKey keyname
You will get back the private key.
importKey
- Import a Key into the NFVO
$ openbaton.sh Key-importKey keyname publicKey
delete
- Delete a Key passing its id
$ openbaton.sh Key-delete id-key
findAll
- Find all Keys
$ openbaton.sh Key-findAll
findById
- Find a Key by passing its id
$ openbaton.sh Key-findById id-key
Event Subcommands
create
- Create an Event
$ openbaton.sh Event-create file.json
delete
- Delete an Event passing its id
$ openbaton.sh Event-delete id-event
findAll
- Find all Events
$ openbaton.sh Event-findAll
findById
- Find an Event by passing its id
$ openbaton.sh Event-findById id-event
Configuration Subcommands
create
- Create a Configuration
$ openbaton.sh Configuration-create file.json
delete
- Delete a Configuration passing its id
$ openbaton.sh Configuration-delete id-configuration
findAll
- Find all Configurations
$ openbaton.sh Configuration-findAll
findById
- Find a Configuration by passint its id
$ openbaton.sh Configuration-findById id-configuration
Image Subcommands
create
- Create an Image
$ openbaton.sh Image-create file.json
delete
- Delete an Image passing its id
$ openbaton.sh Image-delete id-image
findAll
- Find all Images
$ openbaton.sh Image-findAll
findById
- Find an Image by passing its id
$ openbaton.sh Image-findById id-image
VirtualLink Subcommands
create
- Create a Virtual Link
$ openbaton.sh VirtualLink-create file.json
delete
- Delete a Virtual Link by passing its id
$ openbaton.sh VirtualLink-delete id-virtual-link
update
- Update a Virtual Link passing the new object and the id of the old Virtual Link
$ openbaton.sh VirtualLink-update file.json id-virtual-link
findAll
- Find all Virtual Links
$ openbaton.sh VirtualLink-findAll
findById
- Find a Virtual Link by passing its id
$ openbaton.sh VirtualLink-findById id-virtual-link
VNFPackage Subcommands
create
- Create a VNFPackage by uploading a tar file to the NFVO
$ openbaton.sh VNFPackage-upload file.tar
delete
- Delete a VNFPackage by passing its id
$ openbaton.sh VNFPackage-delete id-vnfPackage
findAll
- Find all VNFPackages
$ openbaton.sh VNFPackage-findAll
findById
- Find a VNFPackage by passing its id
$ openbaton.sh VNFPackage-findById id-vnfPackage