VMware Smarts Assurance : EDAA URL unable to pick up notification having "/" in name attribute; 404 Not Found
search cancel

VMware Smarts Assurance : EDAA URL unable to pick up notification having "/" in name attribute; 404 Not Found

book

Article ID: 345362

calendar_today

Updated On:

Products

VMware VMware Smart Assurance

Issue/Introduction

Symptoms:
Notification with / in name attribute is not processed by EDAA and throws error 404 - Not found.
Example notifications : 
IF-MI_ELX-NI-IT-Por-SH01/18 [lan1_0]
TEMP-VF_GRH-Grohe_PT_VEL_PL_S9300-007-1/1012 [Switch 1 - Inlet Temp Sensor, GREEN ]
IF-MI__TMK-COL-NRBSH01/10_Down

Error observed: 


Environment

VMware Smart Assurance - SMARTS

Cause

According to RFC 3986, below special characters are reserved as sub-delimiters.
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="

Thus tomcat disables encoded slashes for security reasons by default.

In Smarts, post request looks as below:
http://localhost:8080/smarts-edaa/msa/servername/instances/className::instanceName/action/action_name
Hence when a notification contains "/" in URL; Smarts is expecting it as action.

Resolution

Edit file catalina.properties located under <SAM_BASE>/smarts/tomcat/conf/ and add line: org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true.
Restart tomcat for changes to take effect.

./sm_service stop smarts-tomcat
./sm_service start smarts-tomcat

Workaround:
In case, if restart of tomcat is not possible due to production environment then use ~2F in the URL for "/" for time being.
Example: http://localhost:8080/smarts-edaa/msa/INCHARGE-SA/instances/ICS_Notification::NOTIFICATION-Interface_PerformanceCiscoRouter_I-InterfacePerformanceCiscoRouter-IF-MI_ACM-USIBKYLATNY01R0006~2F8_HighUtilization"

Additional Information

Impact/Risks:
Unable to create tickets in third party ticking tools (ServiceNow) where Smarts-EDAA acts as source.