Merge "Add cdm-scoping spec"

This commit is contained in:
Jenkins 2017-09-14 04:59:31 +00:00 committed by Gerrit Code Review
commit 62f613dc7f

View File

@ -0,0 +1,160 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Define a tailored Scoper for each CDM
==========================================
https://blueprints.launchpad.net/watcher/+spec/cdm-scoping
Problem description
===================
Storage cluster data model was introduced in Pike cycle. Since the model is
different from compute data model, current single CDM scoper does not work
for the model.
Use Cases
----------
As a Watcher user, I want to restrict scope of storage cluster data model.
Proposed change
===============
* Add _audit_scope instance attribute to the BaseClusterDataModelCollector
and initialize when instantiated.
* Remove audit_scope_handler from the current BaseStrategy and move it within
the BaseClusterDataModelCollector.
* Add audit_scope argument to CollectorManager's get_cluster_model_collector
method.
* Change compute_model method to use Collector's audit_scope_handler.
* Change original DefaultScope.
* get_scoped_model simply returns cluster_model.
* For representing multi data model for JSON shema, we change DEFAULT_SCHEMA
as the following::
DEFAULT_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"compute": {
# current JSON schema moved to NovaClusterDataModelCollector
# retrieved from NovaClusterDataModelCollector
},
"storage": {
# retrieved from CinderClusterDatamodelCollector
},
.......
}
}
Properties are dynamically retrieved from collector plugins.
* Update validate method in AuditTemplatePostType in accordance with the
above change.
* Rename the DefaultScope as ComputeScope and override the audit_scope_handler
property in the Compute Collector.
* Change audit template help message in python-watcherclient.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
Scope JSON schema definition for the audit template POST data from
the request body will be changed in accordance with DEFAULT_SCHEMA change.
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
End user defines audit scope in each audit template by specifying yaml or json
file with --scope option. The file format will be changed according to JSON
schema change.
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
<nakamura-h>
Other contributors:
<None>
Work Items
----------
* Add or remove audit_scope and audit_scope_handler from/to base classes.
* Change original DefaultScope.
* Change Compute Collector to use ComputeScope instead of DefaultScope.
* Change python-watcherclient.
Dependencies
============
None
Testing
=======
Unit test will be updated.
Documentation Impact
====================
None, but it is preferable to adding more.
References
==========
* https://blueprints.launchpad.net/watcher/+spec/cinder-model-integration