This tutorial describes the first steps to use OpenNaaS. we are going to add a device and we will do the first operations to manage it.  You can find more information about the Karaf platform and others commands related with the resources on Server Console

OpenNaaS concepts

OpenNaaS is a framework which is developed through the OSGi technology. OSGi consists of a set of components (named bundles) which provide the necessary operations. In this point, Mantychore adds our bundles with their operations. All these operations represent the capabilities for the end users. When you execute OpenNaaS ( ./opennaas.sh (Linux) or ./opennaas.bat (Windows), it will provide a command line (cli) prompt and you will be able to check the different loaded capabilities ( if you type <tab> or list).

To get more information about bundles and how Mantychore use them, go to this link.

Creating resources

The first step in OpenNaaS is the resource virtualization. In this step, a new device is added to the Mantychore system. For this action, it is necessary to create a file to describe what features and capabilities this virtual resource will be able to have.

For this tutorial, a template from this list template can be used as example (for more information, the wiki has a section to describe each parameter).  The command will be:

resource:create /home/carlos/Escritorio/resource.descriptor

About resource descriptors and how it works link.

Adding protocols

Each resource has to be linked to the necessary protocols which are used to communicate with the physical device and send its operations. This is an example which uses a netconf protocol to connect with the resource:

protocols:context router:junos20  netconf password ssh://myuser:mypassword@193.1.190.254:22/netconf

or the following if you're using key uathentication:

protocols:context router:junos20 netconf publickey ssh://myuser@193.1.190.254.22/netconf privateKeyPath {key-passphrase}

 

Description of the connection parameters:

The information about the used protocols is in this link.

Resources states

A resource is in a set of states which each allow a set of operations. This picture describes these states:

Mainly, a resource will enable all its capabilities when started. For this reason, the next step will be start our resource:

resource:start router:junos20

Doing operations with the resource

A resource includes a set of capabilities or features. These capabilities are the available operations a device has. Mantychore supports:

Removing a resource

Finally, if the resource isn't needed anymore, it can be stopped and removed. First, we stop it:

resource:stop router:junos20

The resource will deactivate all its capabilities and it will be reset. After, we'll destroy it and delete any resource information in Mantychore..

resource:remove router:junos20