The CACTI web service is deployed on prod-cacti01-fra-de.geant.net and prod-cacti02-vie-at.geant.net servers, and is a Java based web service developed using the Jersey libraries.
The source code is stored in GITLab in the restful project: https://gitlab.geant.net/live-projects/restful
The application is a Apache Tomcat application named restful which connects to the MySQL database called cacti using the user cactiuser and the password that is stored in the Systems KeyPass
The compiled classes are compressed into a JAR file called cacti.jar and stored in the /var/lib/tomcat6/webapps/restful/WEB-INF/lib directory. The classes themselves are stored in the /var/lib/tomcat6/webapps/restful/WEB-INF/classes/net/geant/cacti directory.
The web service uses a properties file that is stored in /var/lib/tomcat6/webapps/restful/WEB-INF/classes/net/geant/cacti/restful.properties. This file stores Application specific global variables.
If you have the POSTMAN Chrome Plugin installed (https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) it is possible to review the options within the web service by using the HTTP method of OPTIONS and the endpoint: http://cacti.geant.net:8888/restful/resources/cacti/
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<application xmlns="http://wadl.dev.java.net/2009/02">
<doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.14 09/09/2012 05:39 PM"/>
<grammars/>
<resources base="http://cacti.geant.net:8888/restful/resources/">
<resource path="cacti/">
<resource path="/about/">
<method id="getVersion" name="GET">
<response>
<representation mediaType="application/xml"/>
</response>
</method>
</resource>
<resource path="/create/">
<method id="createService" name="POST">
<request>
<representation mediaType="*/*"/>
</request>
<response>
<representation mediaType="*/*"/>
</response>
</method>
</resource>
<resource path="/delete/{id}/">
<param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="id" style="template" type="xs:string"/>
<method id="deleteService" name="DELETE">
<response>
<representation mediaType="*/*"/>
</response>
</method>
</resource>
</resource>
</resources>
</application>
Log files are created on the prod-cacti01-fra-de.geant.net server in the /tmp directory and start with the name BOD-Log.
The BOD Technology Proxy sends an XML request in the body of the web service call. A copy of the XML is written to /var/log/tomcat6/cactlina.out file. The lines start with [*** BOD REQUEST ***]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Data xmlns="services.schema.networkapi.jmp.juniper.net">
<BoDRequestData>
<Name>pra_ams_BoD_urn_uuid_226968de_be2e_404_3589772045</Name>
<Identity>8535260</Identity>
<Host>
<Device>mx1.pra.cz.geant.net</Device>
<VLanId>558</VLanId>
<Interface>ae11</Interface>
</Host>
<Host>
<Device>mx1.ams.nl.geant.net</Device>
<VLanId>4000</VLanId>
<Interface>ae15</Interface>
</Host>
<Bandwidth>10</Bandwidth>
</BoDRequestData>
</Data>