CMDB - Dependendent Relationships Override - not working as expected

diegobermudez
Tera Expert

Hi Community,

 

I´m working on several ETLs to populate Databases data into CMDB. In this case I´m trying to create the next structure:

cmdb_ci_mssql_instance ==> Runs on ==> cmdb_ci_win_server

cmdb_ci_mssql_instance ==> Contains ==> cmdb_ci_mssql_database

 

As I can see is the needed dependent relationships for these Database classes:

 

MSSQL Instance (cmdb_ci_mssql_instance) ==> runs on ==> hardware (in my case cmdb_ci_server)

diegobermudez_0-1724400789422.png

 

MSSQL Database (cmdb_ci_mssql_database) <== contains <== MSSQL Instance:

diegobermudez_1-1724400966032.png

 

Wich is the rules that override the parent class dependency relationship (cmdb_ci_appl ==> runs on ==> cmdb_ci_hardware).

 

When I try to import data with an Integration Hub ETL, I cannot import MSSQL Database data due to the error:

"In payload no relations defined for dependent class [cmdb_ci_db_mssql_database] that matches any containment/hosting rules: [cmdb_ci_appl >> Runs on >> cmdb_ci_hardware]."

diegobermudez_2-1724401172417.png

When importing data, I have the next classes:

diegobermudez_3-1724401286614.png

(As it can be seen on the above capture, cmdb_ci_mssql_database is dependent on cmdb_ci_mssql_instance)

And Relationships:

diegobermudez_4-1724401318826.png

So from my concern, are the needed Dependant rules for this structure.

 

I can only import data if I add the next relationship:

cmdb_ci_mssql_database ==> Runs on ==> cmdb_ci_win_server 

wich satisfy the parent dependent rule cmdb_ci_appl ==> Runs On ==> cmdb_ci_hardware.

 

Why I need to add this dependent relationship if the cmdb_ci_mssql_database has his own dependent rule?

 

 

 

2 REPLIES 2

VigneshMC
Mega Sage

Facing the same issue , were you able to solve this ?

Matthew_13
Kilo Sage

@diegobermudez @VigneshMC  - 

This trips a lot of people up and you’re not doing anything “wrong.”

What’s happening is that ETL validation checks the parent class rules first, not just the child’s specific ones. Even though  cmdb_ci_mssql_database is correctly contained by the MSSQL instance, it still inherits the higher-level expectation that applications run on hardware. When the ETL can’t see a hosting path that satisfies that rule, it throws the error.

 

That’s why adding MSSQL Database → Runs on → Windows Server works it satisfies the inherited rule the ETL is validating against. If your model is “database → instance → server,” you need to make sure the ETL payload clearly provides that full hosting chain, or adjust the containment/hosting rules so the database is only validated through the instance ok.

I hope this helps Thumbs up if you find useful!