Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "COSMOS Design 200222"

(''' Test Coverage (required)''')
(''' Test Coverage (required)''')
Line 128: Line 128:
  
 
* We will need a test that makes the same kind of pull request to the MDR as if it were a federating CMDB.  The assumed contents of the SML repository will be the data center example.
 
* We will need a test that makes the same kind of pull request to the MDR as if it were a federating CMDB.  The assumed contents of the SML repository will be the data center example.
 +
 +
Here is a graph query that can be used for a unit test, to retrieve all computers that have an
 +
installed OS with a brand name of "Red Hat 8":
  
 
<pre>
 
<pre>
 
<query>
 
<query>
     <itemTemplate id="user">
+
     <itemTemplate id="software">
         <propertyValueSelector namespace="http://example.com/people"
+
         <propertyValueSelector namespace="http://www.cosmos.rm/dataCenter/os"
                               localName="name">
+
                               localName="brand">
             <equal>Pete the Lab Tech</equal>
+
             <equal>Redhat 8</equal>
 
         </propertyValueSelector>
 
         </propertyValueSelector>
         <recordTypeSelector namespace="http://example.com/people"
+
         <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/os"
                             localName="ContactInfo"/>
+
                             localName="WHAT GOES HERE?"/>
 
     </itemTemplate>
 
     </itemTemplate>
 
     <itemTemplate id="computer">
 
     <itemTemplate id="computer">
         <recordTypeSelector namespace="http://example.com/computerModel"
+
         <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/machine"
                             localName="ComputerConfig"/>
+
                             localName="WHAT GOES HERE?"/>
 
     </itemTemplate>
 
     </itemTemplate>
     <relationshipTemplate id="administers">
+
     <relationshipTemplate id="runsWithOS">
         <recordTypeSelector namespace="http://example.com/computerModel"
+
         <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/machine"
                             localName="administers"/>
+
                             localName="WHAT GOES HERE?"/>
         <source ref="user"/>
+
         <source ref="computer"/>
         <target ref="computer"/>
+
         <target ref="software"/>
 
     </relationshipTemplate>
 
     </relationshipTemplate>
 
</query>
 
</query>
 +
</pre>
 +
 +
''Question:'' relationship labels don't exist in the SML repository.  Do these have to have any significance?
 +
 +
The resultant graph should be as follows:
 +
 +
<pre>
 +
something something
 
</pre>
 
</pre>
  

Revision as of 20:26, 22 August 2007

Adding support for the CMDBf query service on top of the SML repository

Change History

Name: Date: Revised Sections:
David Whiteman 8/21/2007 Initial version

Overview

In order to act as an MDR per the CMDBf spec, the SML repository needs to provide the CMDBf query service. This enhancement is tracked as bugzilla 200222.

Workload Estimation (required)

Rough workload estimate in person weeks
Process Sizing Names of people doing the work
Design 1 David/Ali
Code 2
Test 1
Documentation 0.4
Build and infrastructure 0.2
Code review, etc.* 0.2
TOTAL 4.8
  • - includes other committer work (e.g. check-in, contribution tracking)

Terminologies/Acronyms (required)

The terminologies/acronyms below are commonly used throughout this document. The list below defines each term:

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
SML Repository repository of SML documents hosted in COSMOS with an established API (see bugzilla 179828)
Query service MDRs make data available to Clients via a Query service. Queries may select and return items, relationships, and/or graphs containing items and relationships.
Service description Description of query service supplied to the federating CMDB. This includes ID, descriptive text, supported record types, and other capabilities

Stuff to do

Purpose (required)

This design document addresses COSMOS Bugzilla enhancement request 200222.

Requirements (required)

The necessary functionality will be:

  1. A service description for the federating CMDB to uniquely identify the MDR
  2. A single operation called GraphQuery that answers a graph of the items and relationships that satisfy the constraints of the graph in the query
  3. A facility to translate the graph query to the syntax expected by the SML repository API
  4. A facility that converts the results of the SML repository API call to the graph format expected to be returned by the GraphQuery operation

Use Cases (required)

Use Case 1: (can we just point to section 4.4 of the CMDBf spec as our use case?)

Graphical Layout (optional)

Class Diagram and Implementation Details

Class Diagrams (optional)

<This section is only required for features that are introducing APIs that will be leveraged by other components>

Extension Points (optional)

<This section should only be included if new extension points are being introduced>


<Include any additional topics that will help in completing the implementation>

<Content related to the topic above>

Test Coverage (required)

<Include a description of the unit, functional, and system test cases that will be required to test the overall quality of the feature>

  • We will need a test that makes the same kind of pull request to the MDR as if it were a federating CMDB. The assumed contents of the SML repository will be the data center example.

Here is a graph query that can be used for a unit test, to retrieve all computers that have an installed OS with a brand name of "Red Hat 8":

<query>
    <itemTemplate id="software">
        <propertyValueSelector namespace="http://www.cosmos.rm/dataCenter/os"
                               localName="brand">
            <equal>Redhat 8</equal>
        </propertyValueSelector>
        <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/os"
                            localName="WHAT GOES HERE?"/>
    </itemTemplate>
    <itemTemplate id="computer">
        <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/machine"
                            localName="WHAT GOES HERE?"/>
    </itemTemplate>
    <relationshipTemplate id="runsWithOS">
        <recordTypeSelector namespace="http://www.cosmos.rm/dataCenter/machine"
                            localName="WHAT GOES HERE?"/>
        <source ref="computer"/>
        <target ref="software"/>
    </relationshipTemplate>
</query>

Question: relationship labels don't exist in the SML repository. Do these have to have any significance?

The resultant graph should be as follows:

something something

Task Breakdown (required)

Open Issues/Questions


Back to the top