IRM to Atrium CI Integration
In some cases, objects may exist in IRM that do not exist in the CMDB, in which case it may be desirable to push those objects to the CMDB. In IRM this can be done via the context menu option “Push to external system…” that is available for several types of objects.
The option is enabled for object classes that can be pushed directly and also for objects that imply collections of other objects, such as Areas, Spaces, Groupings, and Categories:
-
An Area or Space implies all the Equipment (and potentially Maintenance Holes, Pathways, and Circuits) within the bounds of the Area or Space
-
A Grouping implies all the objects explicitly or implicitly listed in the Grouping
-
A Category implies all the objects contained within that Category, or of Types contained within that Category
-
Selecting this option opens the Push to External System dialog, which allows to select a Proxy Source (BMC in the example screenshot below). Also, there's a checkbox for including contained Equipment objects to the BMC Asset Database. This allows the user to push a slotted object, like a chassis and specify that any contained cards/modules/etc. are also pushed.
-
When the user presses “OK” in the “Push to External System” dialog, the Web Client creates a new outgoing Task Request with the following parameters specified:
-
-
-
Target App set to BMC (or whatever is appropriate for the chosen Proxy Source)
-
Task Request Objects is set to the objects on which the push operation was invoked; e.g. if “Push to External System” is invoked on an Area, it is the Area itself that goes in Task Request objects, which is essential for efficiency when dealing with large object collections.
-
Stage is set to “Scheduled”
-
Applies To Super Category set appropriately for the objects being pushed
Below is an example of several Task Requests listed in the Discovery Manager dialog:
-
IRM's Discovery Integration Service (DIS) sees the new Task Request with a Target App it knows about - in this case it's BMC, and starts processing it, setting the Stage to "In progress". If it doesn’t already exist, DIS creates a new BMC Collection named “Planet IRM Objects” and also a BMC Collection object for each “By Function” Category. All of the latter are placed in “Planet IRM Objects”.
-
DIS processes Task Request objects, starting by fetching all the objects:
-
If an object is an Equipment, for example, DIS proceeds to push it directly.
-
If an object is a collection, DIS uses the most efficient Site Master endpoint to get a batch of objects from the collection.
-
DIS ignores/skips any object which already exists in Target App and creates new objects for the rest. Each new object is placed into the appropriate “By Function” Collection by DIS using key identity fields such as Serial Number, Name, etc..
-
For each new object created in BMC, DIS creates a matching Proxy in IRM.
-
When DIS finishes, it sets the Task Request stage appropriately.
-
DIS always looks for unfinished Task Requests and starts on them again, so in case the push operation fails for some reason, any uncompleted Task Request gets detected and processed by DIS.
|