Copyright © 2015-2016 Open Baton. Licensed under Apache v2 License.
Open Baton Client contains the Open Baton SDK and the Open Baton command-line interface. The SDK provides methods to access the RESTful NFVO API. The command-line interface enables you to use the OpenBaton SDK via the command-line.
The project contains the two modules cli and sdk.
Git clone this project. Navigate into the root directory of the project and execute ./gradlew build.
Navigate into the project's root directory and execute source nfvo.properties. A dialog appears and will ask you for some properties.
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-name [arg-1] [arg-2] [arg-3]
print help: openbaton.sh -h
print help for a command: openbaton.sh command-name help
list the available commands: openbaton.sh -l
$ openbaton.sh COMMAND help
create
$ openbaton.sh VimInstance-create file.json
delete
$ openbaton.sh VimInstance-delete id-vim-instance
update
$ openbaton.sh VimInstance-update file.json id-vim-instance
findAll
$ openbaton.sh VimInstance-findAll
findById
$ openbaton.sh VimInstance-findById id-vim-instance
create
$ openbaton.sh NetworkServiceDescriptor-create file.json
delete
$ openbaton.sh NetworkServiceDescriptor-delete id-network-service-descriptor
findAll
$ openbaton.sh NetworkServiceDescriptor-findAll
findById
$ openbaton.sh NetworkServiceDescriptor-findById id-network-service-descriptor
createVNFDependency
$ 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
$ openbaton.sh NetworkServiceDescriptor-deleteVNFDependency id-network-service-descriptor id-vnfdependency
getVNFDependencies
$ openbaton.sh NetworkServiceDescriptor-getVNFDependencies id-network-service-descriptor
getVNFDependency
$ openbaton.sh NetworkServiceDescriptor-getVNFDependency id-network-service-descriptor id-vnfdependency
getVirtualNetworkFunctionDescriptors
$ openbaton.sh NetworkServiceDescriptor-getVirtualNetworkFunctionDescriptors id-network-service-descriptor
getVirtualNetworkFunctionDescriptor
$ openbaton.sh NetworkServiceDescriptor-getVirtualNetworkFunctionDescriptor id-network-service-descriptor id-vnfd
create
$ openbaton.sh VirtualNetworkFunctionDescriptor-create file.json
delete
$ openbaton.sh VirtualNetworkFunctionDescriptor-delete id-virtual-network-function-descriptor
findAll
$ openbaton.sh VirtualNetworkFunctionDescriptor-findAll
findById
$ openbaton.sh VirtualNetworkFunctionDescriptor-findById id-virtual-network-function-descriptor
create
$ 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
$ openbaton.sh NetworkServiceRecord-delete id-network-service-record
update
$ openbaton.sh NetworkServiceRecord-update file.json id-network-service-record
findAll
$ openbaton.sh NetworkServiceRecord-findAll
findById
$ openbaton.sh NetworkServiceRecord-findById id-network-service-record
getVirtualNetworkFunctionRecords
$ openbaton.sh NetworkServiceRecord-getVirtualNetworkFunctionRecords id-network-service-record
getVirtualNetworkFunctionRecord
$ openbaton.sh NetworkServiceRecord-getVirtualNetworkFunctionRecord id-network-service-record id-vnfr
deleteVirtualNetworkFunctionRecord
$ openbaton.sh NetworkServiceRecord-deleteVirtualNetworkFunctionRecord id-network-service-record id-vnfr
createVNFDependency
$ openbaton.sh NetworkServiceRecord-createVNFDependency id-network-service-record file.json
deleteVNFDependency
$ openbaton.sh NetworkServiceRecord-deleteVNFDependency id-network-service-record id-vnfdependency
getVNFDependencies
$ openbaton.sh NetworkServiceRecord-getVNFDependencies id-network-service-record
getVNFDependency
$ openbaton.sh NetworkServiceRecord-getVNFDependency id-network-service-record id-vnfdependency
createVNFCInstance
$ openbaton.sh NetworkServiceRecord-createVNFCInstance id-network-service-record id-virtual-network-function-record vnfcomponent-file.json vim-list-file.json
createVNFCInstance
$ openbaton.sh NetworkServiceRecord-createVNFCInstance id-network-service-record id-virtual-network-function-record id-vdu vnfcomponent-file.json vim-list-file.json
deleteVNFCInstance
$ openbaton.sh NetworkServiceRecord-deleteVNFCInstance id-network-service-record id-virtual-network-function-record
startVNFCInstance
$ openbaton.sh NetworkServiceRecord-startVNFCInstance id-nsr id-vnfr id-vdu id-vnfcinstance
stopVNFCInstance
$ openbaton.sh NetworkServiceRecord-stopVNFCInstance id-nsr id-vnfr id-vdu id-vnfcinstance
create
$ openbaton.sh User-create file.json
delete
$ openbaton.sh User-delete user-id
update
$ openbaton.sh User-update file.json user-id
findAll
$ openbaton.sh User-findAll
findByName
$ openbaton.sh User-findByName username
changePassword
$ 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.
create
$ openbaton.sh Project-create file.json
delete
$ openbaton.sh Project-delete id-project
update
$ openbaton.sh Project-delete id-project
findAll
$ openbaton.sh Project-findAll
findById
$ openbaton.sh Project-findById id-project
generateKey
$ openbaton.sh Key-generateKey keyname
You will get back the private key.
importKey
$ openbaton.sh Key-importKey keyname publicKey
delete
$ openbaton.sh Key-delete id-key
findAll
$ openbaton.sh Key-findAll
findById
$ openbaton.sh Key-findById id-key
create
$ openbaton.sh Event-create file.json
delete
$ openbaton.sh Event-delete id-event
findAll
$ openbaton.sh Event-findAll
findById
$ openbaton.sh Event-findById id-event
create
$ openbaton.sh Configuration-create file.json
delete
$ openbaton.sh Configuration-delete id-configuration
findAll
$ openbaton.sh Configuration-findAll
findById
$ openbaton.sh Configuration-findById id-configuration
create
$ openbaton.sh Image-create file.json
delete
$ openbaton.sh Image-delete id-image
findAll
$ openbaton.sh Image-findAll
findById
$ openbaton.sh Image-findById id-image
create
$ openbaton.sh VirtualLink-create file.json
delete
$ openbaton.sh VirtualLink-delete id-virtual-link
update
$ openbaton.sh VirtualLink-update file.json id-virtual-link
findAll
$ openbaton.sh VirtualLink-findAll
findById
$ openbaton.sh VirtualLink-findById id-virtual-link
create
$ openbaton.sh VNFPackage-upload file.tar
delete
$ openbaton.sh VNFPackage-delete id-vnfPackage
update
$ openbaton.sh VNFPackage-update file.json id-vnfPackage
findAll
$ openbaton.sh VNFPackage-findAll
findById
$ openbaton.sh VNFPackage-findById id-vnfPackage
Issues and bug reports should be posted to the GitHub Issue Tracker of this project
Open Baton is an open source project providing a comprehensive implementation of the ETSI Management and Orchestration (MANO) specification and the TOSCA Standard.
Open Baton provides multiple mechanisms for interoperating with different VNFM vendor solutions. It has a modular architecture which can be easily extended for supporting additional use cases.
It integrates with OpenStack as standard de-facto VIM implementation, and provides a driver mechanism for supporting additional VIM types. It supports Network Service management either using the provided Generic VNFM and Juju VNFM, or integrating additional specific VNFMs. It provides several mechanisms (REST or PUB/SUB) for interoperating with external VNFMs.
It can be combined with additional components (Monitoring, Fault Management, Autoscaling, and Network Slicing Engine) for building a unique MANO comprehensive solution.
The Source Code of the other Open Baton projects can be found here and the documentation can be found here .
Check the Open Baton Website Follow us on Twitter @openbaton.
Copyright © [2015-2016] Open Baton project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
The Open Baton project provides community support through the Open Baton Public Mailing List and through StackOverflow using the tags openbaton.