This article describes an interim solution for an issue affecting Traverse 9.5.053
Problem:
Upon attempting to provision (snmp/wmi) new tests, or update existing ones, the Web Application presents the error:
The system was unable to process the request. Additional information for this error (if applicable) is provided below:
Validation Error
You must correct the following error(s) before proceeding:
The following problem(s)occured while creating the tests. null
In addition, this exception may be generated in webapp\error-yyyy-mm-dd.log
2017-11-07 12:20:55,137 d.c.d.UpdateNetworkDevice[ThreadPool[PooledCommandRunner$PooledCommandRunnerHelper]]: (ERROR\) Failed to execute command: null
2017-11-07 12:20:55,139 w.t.CreateTestAction[http-443-Processor6]: (ERROR\) Unexpected error creating tests: null
java.lang.NullPointerException: null
at com.poet.odmg.ObjectServices.resolveAll(Unknown Source) ~[fastobjects.jar:na]
at com.zyrion.traverse.database.commands.device.UpdateNetworkDevice.doProcessCommand(UpdateNetworkDevice.java:371) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.database.commands.UserCommand.processCommand(UserCommand.java:122) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.database.commands.PoetCommand.doRun(PoetCommand.java:159) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.database.commands.Command.run(Command.java:170) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.database.commands.PooledCommandRunner$PooledCommandRunnerHelper.run(PooledCommandRunner.java:185) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.utils.ThreadPool$PooledThread.doRun(ThreadPool.java:327) ~[traverse-9.5.jar:na]
at com.zyrion.traverse.utils.ThreadPool$PooledThread.run(ThreadPool.java:306) ~[traverse-9.5.jar:na]
Solution:
The interim solution (workaround) is to create a container in the superuser group that contains all devices, as follows:
- Access the Traverse Web Application with a 'superuser' level account
- Navigate to Administration->Containers
- Select the 'lock' icon to activate container editing
- Select the 3 dots to the right of 'Top Level' then choose 'Create a child container'
- Enter 'Z_DO_NOT_USE' for the Container Name
- Choose 'Devices & Containers' under 'Contains'
- Check the box 'Populated dynamically based on a rule.'
- Enter the character '*' (asterisk) in the 'Device Name' field
- Select 'Apply' to save the rule
- Select 'Save' to create the new container