search cancel

Unable to include Special Characters ( ) or [ ] in Model Names in Spectrum after upgrade to 21.2.8

book

Article ID: 238716

calendar_today

Updated On:

Products

CA Spectrum DX NetOps

Issue/Introduction

Prior to Spectrum release 21.2.8, you could update the Model Name with special characters like [] (). However, after 21.2.8 upgrade, the following  error is thrown if these characters are included in a Model Name:

SPC-OCC-10563:An invalid model name was entered. It should match with the pattern defined.

Environment

DX NetOps Spectrum 21.2.8 or later

Resolution

In Spectrum 21.2.8, a new Regular Expression filter is being used for Model naming:

TechDocs : DX NetOps 21.2.8 Spectrum : RegEx for Model Names

So in the file:

$SPECROOT/tomcat/webapps/spectrum/WEB-INF/topo/config/topo-app-config.xml

There is the following section:

<attribute-config>

    <id>AttributeID.MODEL_NAME</id>

    <verifier>

      <class>com.aprisma.spectrum.app.swing.widget.ModelNameVerifier</class>

      <param name="regex">[\p{L}\p{Digit}/.,_-]+</param>

    </verifier>

</attribute-config>

The regex section in green is what you will have to add to to allow other special characters. To match a character having special meaning in regex such as

( ) [ and ]

You need to use a escape sequence prefix with a backslash (\). For example:

\. matches "."

\+ matches "+"

\( matches "("

The last three characters of the regex:

-]+

Meaning if the regex finds any of the preceding characters, anywhere in the given string, then allow it. So you would need to use the escape prefix \ before these special characters:

[\p{L}\p{Digit}/.,_\(\)\[\]-]+

If & is required, it will need to be encoded like the below:

<param name="regex">[\p{L}\p{Digit}/., _&amp;-]+</param>