Add force field to Audit¶
https://blueprints.launchpad.net/watcher/+spec/add-force-field-to-audit
Problem description¶
As now, Watcher doesn’t allow to launch a new audit when there is actionplan ongoing. This is because if the new audit has the same data model as the ongoing actionplan, the new audit may create a wrong actionplan. But if there are different data model scope, we should allow the new audit to run.
Use Cases¶
As a Watcher user, I want to launch audit despite of ongoing actionplan.
Proposed change¶
We need to add a new field force in audit table. If force is True, Watcher will execute the audit even other actionplan is ongoing.
def pre_execute(self, audit, request_context):
LOG.debug("Trigger audit %s", audit.uuid)
if audit.force is False:
self.check_ongoing_action_plans(request_context)
# Write hostname that will execute this audit.
audit.hostname = CONF.host
# change state of the audit to ONGOING
self.update_audit_state(audit, objects.audit.State.ONGOING)
The default value is False. We also need to add an option in the post audit API. So that User can set the value of the force field. CLI example for creating audit with force:
$ watcher audit create -g dummy --force
Alternatives¶
None
Data model impact¶
Add new force field in the audit table
REST API impact¶
Need to add new force parameter in Audits APIs.
Security impact¶
None
Notifications impact¶
Add force to AuditPayload
audit.create
{
"priority": "INFO",
"payload": {
"watcher_object.data": {
"audit_type": "ONESHOT",
"parameters": {
"para2": "hello",
"para1": 3.2
},
"state": "PENDING",
"updated_at": null,
"deleted_at": null,
"interval": null,
"scope": [],
"force": False,
"created_at": "2016-11-04T16:29:20Z",
"uuid": "4a97b9dd-2023-43dc-b713-815bdd94d4d6"
},
"watcher_object.name": "AuditCreatePayload",
"watcher_object.version": "1.0",
"watcher_object.namespace": "watcher"
},
"publisher_id": "infra-optim:localhost",
"timestamp": "2016-11-04 16:31:36.264673 ",
"event_type": "audit.create",
"message_id": "cbcf9f2c-7c53-4b4d-91ec-db49cca024b6"
}
Other end user impact¶
Need to add force to CLI ‘watcher audit create’
Also need to update watcher-dashboard
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
licanwei
Work Items¶
Update architecture doc to add the new field
Add new force field in the audit table
Check the value of force before running audit
Update Watcher API version
Update notification AuditPayload
Update python-watcherclient
Update watcher-dashboard
Dependencies¶
None
Testing¶
Unittest for all changes
Documentation Impact¶
Update architecture doc to add the new field.
References¶
None
History¶
Release Name |
Description |
---|---|
Train |
Introduced |