psdi.app.dpldasset

Class SwSuiteCronTask

  • All Implemented Interfaces:
    CronTask


    public class SwSuiteCronTask
    extends SimpleCronTask
    A MAXIMO crontask used for extraction of software suite information based upon the detection of certain software products Control structures The structures hold the definitions of software suites and also detection flags that used (set and reset) during the processing 1) A vector of SW suite definitions. A SW suite definition consists of - suite ID (database PK) - Suite name - Version that is assigned to the suite upon detection - A flag that shows whether the suite has been detected for the currently processed computer system - A collection (vector) of software variants A SW suite component definition consists of - Version filter low - Version filter high - Required flag - Found in this computer system status flag (Software ID valid only if this flag is true) - Software ID - the unique ID of the software that matched this definition - A reference to the suite that contains this definition - Note there is no need to include the software name in this object 2) A hash map keyed on software name, and containing vectors of references to the same instances of SW suite component definition objects referenced by the vectors in the SW suite definitions How the software suite identification process works: - every time all SW suite definitions are loaded in memory - from this point, the process goes computer system by computer system all further steps refer to one computer system only - reset all status flags in the suite definitions and in the component definitions - enumerate all software entries - if a name of an entry is found in the hash map, go in sequence through all the suite components and look for a matching version window - if a match is found, set the found flag and fill in the software ID - if a match is not found, and the SW suite ID is not empty, modify the software record - build a MBO set of all existing suites - enumerate all suite definitions - loop through all its components, set the 'found' flag if all required components are found, or if there are no required components and there is at least one non-required component that has been found - if the 'found' flag has been set, go through all components of the record set and set the suite ID - if the 'found' flag for the suite has not been set, reset the suite ID for all entries in the software MBO set that have been found for the suite - if the suite has been found in the existing suite list, update its fields where necessary - if a suite has not been found, insert it in the MBO set - enumerate the set of existing definitions, for every definition go through the list of found suites (NOTE this becomes lengthy for 10+ suite definitions) - if a suite has not been found, delete that Mbo from its set - save the suite Mbo set - save the software Mbo set There is an alternative way to run a SW suite identification from the GUI where suite configurations are defined. The identification process is altered in the following ways for thsi purpose: - a new entry point - any exception is thrown back at caller - no logging - caller will be responsible for that - references to any other suites are not touched
    • Constructor Detail

      • SwSuiteCronTask

        public SwSuiteCronTask()
    • Method Detail

      • identifySuite

        public void identifySuite(MboRemote theSwSuiteDefinition)
                           throws MXException
        An alternative entry point - identify just one SW suite
        Throws:
        MXException
      • processSuite

        public void processSuite(java.util.HashMap suiteComponentName2SuitesMap,
                                 java.util.Vector suiteVector,
                                 boolean identifyingSuiteOnDemand)
                          throws MXException,
                                 java.rmi.RemoteException,
                                 java.sql.SQLException
        Throws:
        MXException
        java.rmi.RemoteException
        java.sql.SQLException