Line 1: | Line 1: | ||
− | + | ==Git clone== | |
− | git clone https://github.com/OpenClovis/SAFplus-Mgt.git <path> | + | :git clone https://github.com/OpenClovis/SAFplus-Mgt.git <path> |
+ | # Make thirdparty: | ||
+ | <code> | ||
+ | *cd <path>/3rdparty | ||
+ | *make | ||
+ | <code> | ||
− | + | ==Need to rebuild SAFplus SDK with environment variable BUILD_CPP=1== | |
− | + | ||
− | + | *$cd <safplusdir> | |
− | + | *$<safplusdir>/src/SAFplus/configure --with-safplus-build | |
− | $cd <safplusdir> | + | |
− | + | *$export BUILD_CPP=1 | |
− | $<safplusdir>/src/SAFplus/configure --with-safplus-build | + | |
− | + | *$cd build/local | |
− | $export BUILD_CPP=1 | + | |
− | + | *$make | |
− | $cd build/local | + | |
− | + | ||
− | $make | + | |
− | + | ||
− | + | ==Launch OpenClovis IDE and Import Framework Model (i.e <path>/model)== | |
− | + | ==Defined your YANG model view at <model>/src/extras/share/netconf/modules== | |
− | In case you would like to convert YANG model to MIB model, follow the link: [[Convert YANG to MIB model]] and put your MIB model at <model>/src/extras/share/snmp/mibs | + | :In case you would like to convert YANG model to MIB model, follow the link: [[Convert YANG to MIB model]] and put your MIB model at <model>/src/extras/share/snmp/mibs |
− | + | ==Create your object implementor that derive from ClMgtObject mainly base class== | |
or ClMgtObjectContainer or ClMgtList. | or ClMgtObjectContainer or ClMgtList. | ||
Line 73: | Line 73: | ||
</code> | </code> | ||
− | + | ==Declare your YANG/MIB model:== | |
For YANG model: | For YANG model: | ||
<br> | <br> | ||
Line 93: | Line 93: | ||
<br> | <br> | ||
− | + | ==Binding your object instance into YANG or MIB model with follow command:== | |
<br> | <br> | ||
<code> | <code> | ||
Line 105: | Line 105: | ||
</code> | </code> | ||
− | + | ==Building your model:== | |
Right click project -> Build Project | Right click project -> Build Project | ||
<br> | <br> | ||
− | + | ==Running your model:== | |
+ | <model image>/etc/init.d/safplus start | ||
− | FAQ: | + | ==FAQ:== |
Question: | Question: | ||
− | + | ===Cannot connect to NETCONF=== | |
− | Answer: | + | ##Answer: |
If you are running your model with non-root user, port 830 cannot being listening. Your should manual running the script at <model image>/etc/init.d/customerScript.sh with root privileges and test your connect with below command: | If you are running your model with non-root user, port 830 cannot being listening. Your should manual running the script at <model image>/etc/init.d/customerScript.sh with root privileges and test your connect with below command: | ||
<br> | <br> | ||
<code> | <code> | ||
− | + | sudo sh <model image>/etc/init.d/customerScript.sh start --> to start sshd listening | |
</code> | </code> | ||
<br> | <br> | ||
Line 128: | Line 129: | ||
− | + | ===Make 3rdparty failed at libssh2: Need OpenSSL or Libgcrypt (such as Fedora or Centos)=== | |
Answer: | Answer: | ||
− | sudo yum install libgcrypt-devel | + | :*sudo yum install libgcrypt-devel |
[[Using Management CLI]] | [[Using Management CLI]] |
Revision as of 04:18, 23 January 2013
Git clone
- git clone https://github.com/OpenClovis/SAFplus-Mgt.git <path>
- Make thirdparty:
- cd <path>/3rdparty
- make
<code>
Need to rebuild SAFplus SDK with environment variable BUILD_CPP=1
- $cd <safplusdir>
- $<safplusdir>/src/SAFplus/configure --with-safplus-build
- $export BUILD_CPP=1
- $cd build/local
- $make
Launch OpenClovis IDE and Import Framework Model (i.e <path>/model)
- In case you would like to convert YANG model to MIB model, follow the link: Convert YANG to MIB model and put your MIB model at <model>/src/extras/share/snmp/mibs
Create your object implementor that derive from ClMgtObject mainly base class
or ClMgtObjectContainer or ClMgtList.
Example:
<code>
class NetworkInterface : public ClMgtObjectContainer {
private:
ClMgtIndex<string> name; // Interface name ex. "eth0". This is also the index into this data.
/* * "Prov" objects are "provisioned" -- that is, they are stored in the replicated database. * When "bind" is called, these object will be loaded from the database's "active" configuration. * Once bound when the database is modified via an incoming provisioning request, these objects are notified. * ClMgtProv is a template that wraps provisioning functionality around any fundamental type (by fundamental I mean * any type that is serializable via memcpy). */ ClMgtProv<bool> adminStatus; // Administrative status. If you want this to be "up" set it to "true". "False" = "down" ClMgtProv<ClIpAddress> ipAddress; ClMgtProv<ClIpAddress> netMask; ClMgtProv<ClIpAddress> gateway;
ClMgtStat<uint64_t> errorCount; // Cumulative count of errors
/* * ClMgtHistoryStat is an in-ram statistic that returns cumulative count AND contains sub-nodes which are arrays of 10 values containing historical (starting now and extending into the past) data: * 5sec: the cumulative count within second 0-5, 5-10, 10-15, ... * 1min: * 5min: * 1hr: * 1day: * 1week: * 4weeks: * 1year: */ ClMgtHistoryStat<uint64_t> bytesSent; ClMgtHistoryStat<uint64_t> bytesReceived;
public:
NetworkInterface(const char* objName); virtual ~NetworkInterface(); void initialize(std::string ifName, ClMgtObject* parent); void get(void **ppBuffer, ClUint64T *pBuffLen); void set(void *pBuffer, ClUint64T buffLen, ClTransaction& t = NO_TRANSACTION); string IpAddress();
};
Declare your YANG/MIB model:
For YANG model:
/* Declare "network" module */
ClMgtModule yangModule("<your yang model name>");
yangModule.loadModule();
For MIB model:
/* Declare "network" module */
ClMgtModule mibModule("<your mib module name>");
mibModule.loadModule();
Binding your object instance into YANG or MIB model with follow command:
object.bindNetconf("<your yang model name>", "<your xpath model>");
or
object.bindSnmp("<your mib module name>", "<oid instance>");
Building your model:
Right click project -> Build Project
Running your model:
<model image>/etc/init.d/safplus start
FAQ:
Question:
Cannot connect to NETCONF
- Answer:
If you are running your model with non-root user, port 830 cannot being listening. Your should manual running the script at <model image>/etc/init.d/customerScript.sh with root privileges and test your connect with below command:
sudo sh <model image>/etc/init.d/customerScript.sh start --> to start sshd listening
or
- sudo sh <model image>/etc/init.d/customerScript.sh stop --> to stop sshd listening
Make 3rdparty failed at libssh2: Need OpenSSL or Libgcrypt (such as Fedora or Centos)
Answer:
- sudo yum install libgcrypt-devel