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

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

book

Article ID: 345362

calendar_today

Updated On:

Products

VMware Smart Assurance VMware Telco Cloud Service Assurance

Issue/Introduction

Symptoms:

Notification with / in name attribute is not processed by EDAA and throws error 404 - Not found.
Example notifications : 
IF-<InterfaceName>/18 [lan1_0]
TEMP-<TempName>/1012 [Switch 1 - Inlet Temp Sensor, GREEN ]
IF-<InterfaceName>/10_Down

Error observed: 

HTTP Status 404 - Not found

Environment

SMARTS - 10.1.x

TCSA - 2.x

Cause

According to RFC 3986 (RFC986_Link), 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/servicename/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-<InterfaceName>~2F8_HighUtilization"

Additional Information

Impact/Risks:

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