Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
COSMOS Design 215267
Contents
Provide support for adding a federating CMDB to COSMOS framework
This is the design for Bugzilla 215267.
Change History
Name: | Date: | Revised Sections: |
---|---|---|
David Whiteman | 1/18/2008 |
|
Ali Mehregani | 1/18/2008 |
|
Workload Estimation
Process | Sizing | Names of people doing the work |
---|---|---|
Design | 1 week | Ali Mehregani |
Code | 2 weeks | Ali Mehregani |
Test | 1 week | Ali Mehregani/QA team |
Documentation | 3 days | Ali Mehregani |
Build and infrastructure | 0 | N/A |
Code review, etc.* | 0 | N/A |
TOTAL | 4 weeks and 3 days |
'* - includes other committer work (e.g. check-in, contribution tracking)
Terminologies/Acronyms
The terminologies/acronyms below are commonly used throughout this document. The list below defines each term regarding how it is used in this document:
Term | Definition |
---|---|
MDR | management data repository |
CMDBf | specification for a CMDB that federates between multiple MDRs [1] |
federating CMDB | the CMDB that federates between MDRs, offering a common access point to clients and correlating identifying record data |
CMDB | configuration management database |
Purpose
We needs to add support for adopters intending to register a federating CMDB with COSMOS framework. This enhancement will include reusable code for adopters intending to provide a server/client side implementation of a federating CMDB.
Implementation details
There is already code in place for adopters to use when implementing an MDR. The following MDR plug-ins will be extended to provide support for a federating CMDB:
org.eclipse.cosmos.dc.mdr org.eclipse.cosmos.dc.mdr.client org.eclipse.cosmos.dc.mdr.common
Three additional plug-ins will be introduced, each of which will be an extension of its MDR counterpart:
org.eclipse.cosmos.dc.federating.cmdb org.eclipse.cosmos.dc.federating.cmdb.client org.eclipse.cosmos.dc.federating.cmdb.common
On server side two operations will be introduced:
- Register
- Deregister
On client side few variations of registration. All variations will also apply to deregistration:
- Registration based on a request
- Registration of all items/relationships of a set of MDRs
- Selective registration based on a CMDBf query on a set of MDRs
Test Coverage
Testing will be blocked by: https://bugs.eclipse.org/bugs/show_bug.cgi?id=214903. A set of JUnit tests will exercise the implementation. The tests will depend on an environment to be set before being executed. The environment will at least have one MDR along with a federating CMDB (implemented as part of 214903) registered. The list below describes the set of tests created as part of this effort:
Test Case1: Registration/Deregistration by Request
- Register items/relationships of an MDR with federating CMDB using a registration request
- Assert response is successful
- Query federating CMDB for the set registered
- Assert result contains expected items/relationships
- Deregister items/relationships using a deregistration request
- Assert response is as expected
- Perform the same query on federating CMDB
- Assert the result is null
Test Case2: Registration/Deregistration by Query
- Register items/relationships of an MDR with federating CMDB using a query request
- Assert response is successful
- Query federating CMDB for the set registered
- Assert result contains expected items/relationships
- Deregister items/relationships by query
- Assert response is as expected
- Perform the same query on federating CMDB
- Assert the result is null
Test Case3: All-inclusive Registration/Deregistration
- Register items/relationships of all MDRs with federating CMDB
- Assert response is as expected
- Submit a query to federating CMDB to extract data originally belonging to multiple MDRs
- Assert the result set is as expected
- Deregister items/relationships of all MDRs
- Assert response is as expected
- Perform the same query on federating CMDB
- Assert the result is null
Open Issues
All reviewer feedback should go in the Talk page for 215267.