Bug 710268

Summary: Drift Management : Sprint 01 Tasks
Product: [Other] RHQ Project Reporter: Jay Shaughnessy <jshaughn>
Component: Core ServerAssignee: RHQ Project Maintainer <rhq-maint>
Status: CLOSED NEXTRELEASE QA Contact: Mike Foley <mfoley>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 4.0.1CC: hrupp, jsanda
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-27 20:01:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 707225    

Description Jay Shaughnessy 2011-06-02 21:11:28 UTC
This is the task breakdown for Drift management, Sprint 01.

Sprint Goal : Be able to Detect and Report Drift 

Tasks:

* Define Data Model (tables)

* Define Domain Model (entities)

* Define Agent-Server data flow
  * Define server service API

* Define Plugin descriptor additions
  * MetaData support 

* Server Plugin (Under consideration)

* SLSB Support (CRUD)

* Agent Drift Report execution/generation/send

* Server Drift Report handling

* Simple GUI Report of detected drift

* Update wiki design pages as necessary


Sprint Backlog (future sprint work)
* Drift GUI detail
  - details, diff editor, ack, etc..
* file type/mime type detection (for diff support)
* Drift configure. e.g. optional drift filtering based on
  whitespace-only changes
* Initial import/seed of products
  - to avoid pulling base product content from agent
* plugin meta-data upgrade/deletion
* ModeShape investigation as second backend option
* Golden Image support
* Remediation
* Planned change support

Potential approach: Each following comment will supersede the one before. It will be a full, further edited copy of the one previous, with revisions and, notes, and indications of progress or completion.

Comment 1 Jay Shaughnessy 2011-06-10 21:38:20 UTC
This is the task breakdown for Drift management, Sprint 01.

Sprint Goal : Be able to Detect and Report Drift 

Tasks:

* Define Data Model
storage of changesets, drift files and drift instances defined. as well as
model for type specific and resource specific drift config def and/or configs
-- dbsetup updated
-- dbupgrade updated

* Define Domain Model (entities)
-- initial entity work in place

* Define Agent-Server data flow
  * Define server service API
-- refined flow by breaking up changeset and drift file sends
-- optimized storage based on unique sha
-- initial server services impled

* Define Plugin descriptor additions
  * MetaData support 
-- schema define for descriptor extensions
-- plugin descriptor XSD updated
-- parsing code done
-- server side config def defined in dbsetup/dbupgrade

* Server Plugin
-- plugin plumbing complete

* SLSB Support (CRUD)
Pending - Drift file creation/load lifecycle
pending - Drift instance CRUD

* Agent Drift Report execution/generation/send
In Progress

* Server Drift Report handling
In Progress - finalizing change-set file format
In Progress - change-set file processing

* Simple GUI Report of detected drift
Pending

* Update wiki design pages as necessary
As needed


Sprint Backlog (future sprint work)
* Drift GUI
  - config management
    - enable/disable drift detection
  - details, diff editor, ack, etc..
* file type/mime type detection (for diff support)
* Drift configure. e.g. optional drift filtering based on
  whitespace-only changes
* Initial import/seed of products
  - to avoid pulling base product content from agent
* plugin meta-data upgrade/deletion
* ModeShape investigation as second backend option
* Golden Image support
* Remediation
* Planned change support

Potential approach: Each following comment will supersede the one before. It
will be a full, further edited copy of the one previous, with revisions and,
notes, and indications of progress or completion.

Comment 2 John Sanda 2011-06-11 01:22:34 UTC
This is the task breakdown for Drift management, Sprint 01.

Sprint Goal : Be able to Detect and Report Drift 

Tasks:

* Define Data Model
storage of changesets, drift files and drift instances defined. as well as
model for type specific and resource specific drift config def and/or configs
-- dbsetup updated
-- dbupgrade updated

* Define Domain Model (entities)
-- initial entity work in place

* Define Agent-Server data flow
  * Define server service API
-- refined flow by breaking up changeset and drift file sends
-- optimized storage based on unique sha
-- initial server services impled

* Define Plugin descriptor additions
  * MetaData support 
-- schema define for descriptor extensions
-- plugin descriptor XSD updated
-- parsing code done
-- server side config def defined in dbsetup/dbupgrade

* Server Plugin
-- plugin plumbing complete

* SLSB Support (CRUD)
Pending - Drift file creation/load lifecycle
pending - Drift instance CRUD

* Agent Drift Report execution/generation/send
  * drift detection
  * send drift report to server
  * manage change sets (meta data and content)
    * store meta locally
    * delete content once it is successfully received by server 
  * change set (i.e., meta data) file parser
    * meta data writer
    * meta data reader
In Progress

* Server Drift Report handling
In Progress - finalizing change-set file format
In Progress - change-set file processing

* Simple GUI Report of detected drift
Pending

* Update wiki design pages as necessary
As needed


Sprint Backlog (future sprint work)
* Drift GUI
  - config management
    - enable/disable drift detection
  - details, diff editor, ack, etc..
* file type/mime type detection (for diff support)
* Drift configure. e.g. optional drift filtering based on
  whitespace-only changes
* Initial import/seed of products
  - to avoid pulling base product content from agent
* plugin meta-data upgrade/deletion
* ModeShape investigation as second backend option
* Golden Image support
* Remediation
* Planned change support
* Make the rate at which drift detection runs configurable
  * Add a plugin container config property
* Investigate optimizations for detecting change
  * using timestamps
  * efficient/optimized digest algorithms

Potential approach: Each following comment will supersede the one before. It
will be a full, further edited copy of the one previous, with revisions and,
notes, and indications of progress or completion.

Comment 3 Jay Shaughnessy 2011-06-17 21:13:53 UTC
This is the task breakdown for Drift management, Sprint 01.

Sprint Goal : Be able to Detect and Report Drift 

Tasks:

* Define Data Model
storage of changesets, drift files and drift instances defined. as well as
model for type specific and resource specific drift config def and/or configs
-- dbsetup updated
-- dbupgrade updated
   (incomplete, will be finished later when churn reduces)

* Define Domain Model (entities)
-- initial entity work in place

* Define Agent-Server data flow
  * Define server service API
-- refined flow by breaking up changeset and drift file sends
-- optimized storage based on unique sha
-- initial server services impled

* Define Plugin descriptor additions
  * MetaData support 
-- schema define for descriptor extensions
-- plugin descriptor XSD updated
-- parsing code done
-- server side config def defined in dbsetup/dbupgrade

* Server Plugin
-- plugin plumbing complete
   Currently deferring more work on the plugin until the plugin API can be
   better defined.  

* SLSB Support (CRUD)
-- Support in place for ChangeSets, DriftFiles and Drift occurences

* Agent Drift Report execution/generation/send
  * drift detection
  * send drift report to server
  * manage change sets (meta data and content)
    * store meta locally
    * delete content once it is successfully received by server 
  * change set (i.e., meta data) file parser
    * meta data writer
    * meta data reader

-- Change-set file structure defined and read/write parsing near complete
-- Initial Change-set processing in place
-- ChangeSet delta (drift detection) work in progress (to be completed in S2)


* Server Drift Report handling
-- Change-set file processing in place. Changeset, file and drift occurrences.

* Simple GUI Report of detected drift
Push to sprint 2 along with more extensive GUI work

* Update wiki design pages as necessary
As needed

Sprint Backlog (future sprint work)
* Drift GUI
  - config management
    - enable/disable drift detection
  - details, diff editor, ack, etc..
* file type/mime type detection (for diff support)
* Drift configure. e.g. optional drift filtering based on
  whitespace-only changes
* Initial import/seed of products
  - to avoid pulling base product content from agent
* plugin meta-data upgrade/deletion
* ModeShape investigation as second backend option
* Golden Image support
* Remediation
* Planned change support
* Make the rate at which drift detection runs configurable
  * Add a plugin container config property
* Investigate optimizations for detecting change
  * using timestamps
  * efficient/optimized digest algorithms

Potential approach: Each following comment will supersede the one before. It
will be a full, further edited copy of the one previous, with revisions and,
notes, and indications of progress or completion.