Change-Id: I5cab3be742f3fbf0f816013b9ce5a389ac596e09
3.3 KiB
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.