CA UIM - Perl SDK
CA UIM - Nimsoft - Perl SDK Documentation
The main goal of this git is to provide a perl SDK documentation with a better visibility on all API and community works. It give a new way for the community to contribute if any problems are spotted too.
- Original documentation
- Some examples & references are taken from C SDK Documentation.
For a better experience find the web version Here
Overview and vocabulary
The Perl SDK modules wrap the Nimsoft Message Bus API functions, easing the development of probes that are written in Perl.
-
API.pm is the foundation Perl object, providing your interface into the Nimsoft Controller. Three other Perl objects are abstractions for making particular tasks more convenient:
- CFG.pm - for manipulating probe configuration files
- PDS.pm - for working with machine-independent data manipulation routines (PDS means Portable Data Stream)
- Session.pm - for using the functions available once a Nimsoft session is established.
Convensions used when prototyping the functions
- sz - prefix for string
- i - prefix for integer (number)
- b - prefix for boolean (true(1)/false(0))
rc is the Return Code (integer)
Starter guides
- SDK_Perl on Windows
- SDK_Perl on UNIX
- Setup a code editor (Comming soon)
- API Introduction guide (Comming soon)
API
When you use API for a Perl script that will be executed on a terminal (so not packaged to be executed as a deamon or a timed probe). You will have to login to the NimBus to not encounter Authentification errors.
- NimBUS Authentication - Here
- nimRequest & nimNamedRequest - Here
- [Nimbus] Session(s) - Here
- [Nimbus] CFG - Here
- [Nimbus] PDS - Here
- Probe & Session(s) (Advanced) - Here (WIP)
- CFG - Here
- PDS - Here
- CI - Here (WIP)
- QOS - Here (WIP)
- nimTimer - Here
- nimGet - Here
- nimFind - Here
- nimLog - Here
- nimAlarm - Here
- encryption - Here
- others methods - Here
- Probetoolkit - Comming soon
Code examples
- How to handle and parse nimRequest and nimNamedRequest PDS;
- Building and publishing a User-defined Message on Nimbus
- Build a server (probe) solution
- Subscribing to nimbus messages
- Sending QoS Data
- Sending an Alarm message with nimAlarm
- Sending an Alarm message with spooler post_raw
- Create & Send an Alarm (or) QoS linked to a CI
- Encrypt/Decrypt CFG Field
- Transform Perl HashRef object into a valid PDS
- Get Hubs and Robots basic informations
Troubleshooting
Symptom: Scripts halt with an error message similar to:
Can't locate Nimbus/API.pm in @INC (@INC contains: /usr/local/lib/perl5/sun4-solaris/5.00404 /usr/local/lib/perl5 /usr/local/lib/perl5/site_perl/sun4-solaris /usr/local/lib/perl5/site_perl .) at subex.pl line 1.
BEGIN failed--compilation aborted at subex.pl line 1.
Possible causes:
- The perllib directory structure is not reachable for Perl
- Add PERL5LIB to your environment (for example PERL5LIB = /opt/nimsoft/perllib)
- Add use lib (“/opt/nimsoft/perllib”) to your script header (before use Nimbus::API)
- Perl Extensions for Nimsoft are binary incompatible with the distribution
- Get a compatible Perl distribution (or contact Nimsoft support).
Symptom: You are unable to locate the perllib directory on the file system.
Possible causes:
- The Nimsoft runtime libraries for Perl have not been installed
- Install the runtime libraries
- They do not reside under the root installation directory for Nimsoft
- WIN32: c:\program files\Nimsoft\perllib
- UNIX: /opt/nimsoft/perllib.
Know defects
- nimRequest and nimNamedRequest timeout doesn’t work on both UNIX and Windows system.
- Callbacks arguments are returned as ‘NULL’ or ‘0’ on UNIX systems.
- Nimbus::PDS::asHash() doesn’t work well for Array values.
- nimTimerFree() doesn’t work well.
Community links
- Perl probe kickstarter - Part 1 - Develop a custom Perl probe
- Perl probe kickstarter - Part 2 - Package and distribute
- Perl probe kickstarter - Part 3 - Code, debug and deploy
- Compiling & Installing Perl Modules on Linux
- SDK Perl Releases Notes
- Configuration Items And Metrics