Smarts SAM: What is the 'PropsName' variable in ics-nl-processing.asl file and how is it used?
search cancel

Smarts SAM: What is the 'PropsName' variable in ics-nl-processing.asl file and how is it used?

book

Article ID: 304005

calendar_today

Updated On:

Products

VMware

Environment

VMware Smart Assurance - SMARTS

Resolution

What is the PropsName variable in the Smarts SAM ics-nl-processing.asl file and how is it used?



PropsName is the name of an object whose class is "ASL_NLData". The following presents the structure for this class:
Class ASL_NLData (MR_MetaObject)
 
no description available
 
    Attributes for class ASL_NLData
    ----------------------------------------------------------------------------
        CreationClassName (STRING):
                    The name of the most-derived class of this instance.
        NLObjectName (STRING):
                    The object name of the NL that generated this notification
        Name (STRING):
                    Name of object
        ServiceName (STRING):
                    Name of external server used for imported events and
                    instrumented attributes.
 
    Operations for class ASL_NLData
    ----------------------------------------------------------------------------
        clone (OBJREF):
            Returns a new instance of the same class as the present one,
            duplicating the values of all attributes and tables except Name.
            ARGS:
                (STRING) clone_name
        exists (BOOLEAN):
            Returns TRUE if the property exists.
            ARGS:
                (STRING) name
        get (STRING):
            Retrieve the value for a given property. The empty string is
            returned if the property does not exist. See the exists() method if
            you need to know if the property exists or not.
            ARGS:
                (STRING) name
        properties (STRING):
            Return the set of property names
            ARGS:
        put (VOID):
            Set the value of a property.
            ARGS:
                (STRING) name
                (STRING) value
 
If we inspect ics-nl-processing.asl, we find the following code:
 
do { props = self->object("ASL_NLData", localProps); }
... and then later ...
 
hook->setVariable("PropsName", localProps) ? IGNORE;
 
So, PropsName is the name of an object whose class is "ASL_NLData". Note the following:
  • The ASL_NLData object is used to store the attributes of the notification for easy access by the scripts which process the notification.  
  • The hookscript is passed the name of the ASL_NLData object in the PropsName variable.  
  • The hookscript can then access most of the attributes of the notification object by calling the get() method.  
  • The put() method can be used to update the ASL_NLData object, which may be useful as a way of passing data back to the calling script, but has no other use (it does not update the notification object).  
  • The advantage to using the ASL_NLData object rather than the notification object directly is that the ASL_NLData object is a local object, existing in the local repository, whereas the notification object might be in a remote repository.  
  • So, in essence, the object whose name is passed in PropsName is a local cache of most of the attributes of the notification object.  
  • To find out which attributes of the notification have been cached, inspect the properties attribute, or call the exists() method