Notifications

265 views

Error


MISSING_DEPENDENCY: "In payload no relations defined for dependent class [cmdb_ci_class_name] that matches any containment/hosting rules: [containment_rules_for_ci_comma_separated]. Add appropriate relations in pay
load for '{"className":"cmdb_ci_class_name","values":{"key":"value","sys_class_name":"cmdb_ci_class_name"}}'"

This error is found when the identification engine is processing dependent CIs in a payload and not hosting/containment rules are found for the CI.

Example actual error:
identification_engine : MISSING_DEPENDENCY In payload no relations defined for dependent class [cmdb_ci
_lb_service] that matches any containment/hosting rules: [cmdb_ci_lb_service >> Hosted on >> cmdb_ci_cloud_load_balancer,cmdb_ci_lb_service >> Runs >> cmdb_ci_hardware]. Add appropriate relations in pay
load for '{"className":"cmdb_ci_lb_service","values":{"operational_status":"1","discovery_source":"ServiceNow","install_status":"1","port":"port_number","name":"name","ip_address":"
ip","hit_count":"count","sys_class_name":"cmdb_ci_lb_service"}}'

Solution


Check the possible containment/hosting rules that exist for the CI, these are also present on the error.

  1. Go to "Configuration > CI Class Manager" and select the class which matches the cmdb_class_name from the error.
  2. Click on "Dependent Relationships" to view the possible containment rules for the CI.
  3. On the following image we see the dependent relationships and the target classes, using "Load Balancer Service" as an example.

    Dependent Relationships

Note: The containment/hosting rules can also be seen via "Configuration > Identification/Reconciliation > Metadata Editor"

Payload passed to the identification engine:

The payload passed to the identification engine will be a JSON file split into:

  1. items
  2. relations

For each dependent CI, there should be a relation that contains the parent, child, and type. An example can be seen as follows:

{"parent":25,"child":0,"type":"Runs on::Runs"}

Review payload:

Review the payload passed to the identification engine and confirm if the relation is present or not. In the following example we look at a payload passed to the identification engine by a pattern probe.

  1. Open the discovery status.
  2. Go to the "ECC Queue" related list and click to open the record.

    ECC Queue
  3. Review the JSON result.

    Result
  4. Use a JSON viewer of your choice to review the payload. Use the information in the error to find the CI in the payload and its "index", and then look for the matching relationship.

Payload does not have relationship:

If the payload does not have a relationship between the dependent CI and the main CI, the relationship will need to be added to the payload. If the payload was built by a pattern, the pattern will need to be updated to add such relationship.

  1. Add step "Create Relation/Reference" to pattern.
  2. Provide Parent and Child table.
  3. More detailed information can be found in the following links:

Payload has relationship:

If the payload contains the proper relationships for the CI type, check if the relationship type can be found under "Configuration > Relationships > CI Relation Types"(cmdb_rel_type) and is OOB.

Additional Information


The following links can be used to help troubleshoot identification engine errors:

Article Information

Last Updated:2019-05-21 11:51:48
Published:2019-02-08
Dependent Relationships.pngECC Queue.pngPayload.png