DASL compilation fails for Cisco ACS device class available in default package directory
search cancel

DASL compilation fails for Cisco ACS device class available in default package directory

book

Article ID: 315672

calendar_today

Updated On:

Products

VMware Smart Assurance

Issue/Introduction

Symptoms:

When user restarts or compiles packages in NCM, Cisco ACS fails to compile though there is no custompackage/customization entry.
Error will be thrown on discovery.inc file under $VOYENCE_HOME/package/ddt and devCiscoACS.dasl located under $VOYENCE_HOME/package/cisco/acs.

Error seen in autodisc.log and in daslcompile.log:
Sep 22 11:28:51 795179136#1: +++++++ /opt/smarts-ncm/package/cisco/acs/devCiscoACS.dasl ++++++++
Sep 22 11:28:51 795179136#1: ===>Compiling deviceDriver(30014,1): Cisco ACS
Sep 22 11:28:51 795179136#4: Update Error: Compiler::expectError: Invalid value [ddesDiscInDiscovery] specified, unknown function or variable identifier (ExpressionCompiler.cpp#278) :Error in function ddesDiscoverDevice:/opt/smarts-ncm/package/ddt/discovery.inc (DriverCompiler.cpp#706)
Sep 22 11:28:51 795179136#1: Called From:
Sep 22 11:28:51 795179136#1: /opt/smarts-ncm/package/ddt/discovery.inc:44
Sep 22 11:28:51 795179136#1: /opt/smarts-ncm/package/cisco/acs/devCiscoACS.dasl:31
Sep 22 11:28:51 795179136#1: Compiler::expectError: Invalid value [ddesDiscInDiscovery] specified, unknown function or variable identifier (ExpressionCompiler.cpp#278) :Error in function ddesDiscoverDevice:/opt/smarts-ncm/package/ddt/discovery.inc (DriverCompiler.cpp#706)
Sep 22 11:28:51 795179136#4: Update Error: DriverCompiler::bnfDeviceDriver: Compiler::expectError: Invalid value [ddesDiscInDiscovery] specified, unknown function or variable identifier (ExpressionCompiler.cpp#278) :Error in function ddesDiscoverDevice:/opt/smarts-ncm/package/ddt/discovery.inc (DriverCompiler.cpp#706) (DriverCompiler.cpp#316)
Sep 22 11:28:51 795179136#3: /opt/smarts-ncm/package/ddt/discovery.inc#44:
Sep 22 11:28:51 795179136#3: ddesDiscInDiscovery=true;
Sep 22 11:28:51 795179136#3: ^
Sep 22 11:28:51 795179136#3: DriverCompiler::bnfDeviceDriver: Compiler::expectError: Invalid value [ddesDiscInDiscovery] specified, unknown function or variable identifier (ExpressionCompiler.cpp#278) :Error in function ddesDiscoverDevice:/opt/smarts-ncm/package/ddt/discovery.inc (DriverCompiler.cpp#706) (DriverCompiler.cpp#316)
Sep 22 11:28:51 795179136#1: PACKAGE /opt/smarts-ncm/package/cisco/acs/devCiscoACS.dasl FAILED TO COMPILE!
Sep 22 11:28:51 795179136#1: !> Error In : /opt/smarts-ncm/package/ddt/discovery.inc#44:
Sep 22 11:28:51 795179136#1: !> ddesDiscInDiscovery=true;
Sep 22 11:28:51 795179136#1: !> ^
Sep 22 11:28:51 795179136#1: !> DriverCompiler::bnfDeviceDriver: Compiler::expectError: Invalid value [ddesDiscInDiscovery] specified, unknown function or variable identifier (ExpressionCompiler.cpp#278) :Error in function ddesDiscoverDevice:/opt/smarts-ncm/package/ddt/discovery.inc (DriverCompiler.cpp#706) (DriverCompiler.cpp#316)


Impact/Risks:

  • Unable to discovery new Cisco ACS device.
  • Any modification made to other device class in custompackage is not taken into consideration as DASL compile failed with error.

Environment

NCM - 10.1.x

Cause

Standard library file (stdlib.inc) is called after discovery.inc which is causing failure in compilation of drivers.

Resolution

  • Create $VOYENCE_HOME/custompackage/cisco/acs directory; if it is not available already.
  • Copy devCiscoACS.dasl from $VOYENCE_HOME/package/cisco/acs to $VOYENCE_HOME/custompackage/cisco/acs
  • Open $VOYENCE_HOME/custompackage/cisco/acs/devCiscoACS.dasl 

Change included file sequence from :

#include "ddt/discovery.inc"
#include "stdlib/stdlib.inc"
#include "ddt/cli.inc"
#include "ddt/identity.inc"
#include "ddt/systemProperties.inc"
#include "ddt/fileSystem.inc"
#include "ddt/miscunits.inc"
#include "ddt/pull.inc"
#include "ddt/push.inc"
#include "ddt/password.inc"
#include "ddt/hwinv.inc"
#include "ddt/miscentries.inc"
#include "cisco/acs/quickcmds.inc"

To

#include "stdlib/stdlib.inc"
#include "ddt/cli.inc"
#include "ddt/identity.inc"
#include "ddt/systemProperties.inc"
#include "ddt/discovery.inc"
#include "ddt/fileSystem.inc"
#include "ddt/miscunits.inc"
#include "ddt/pull.inc"
#include "ddt/push.inc"
#include "ddt/password.inc"
#include "ddt/hwinv.inc"
#include "ddt/miscentries.inc"
#include "cisco/acs/quickcmds.inc"

  • Save and close the file.
  • Restart vcmaster service.


    Compile dasl now and confirm success.

    NOTE: $VOYENCE_HOME is path where NCM is installed.
                 Default Path : /opt/smarts-ncm