暂停审计状态

https://blueprints.launchpad.net/watcher/+spec/suspended-audit-state

问题描述

如果需要临时停止处于连续模式的审计以执行审计,然后再重新启动,则必须删除并重新创建它。

用例

  • 作为管理员,我希望暂停处于连续模式的审计,以便定期执行审计进行维护。

  • 作为管理员,我希望在维护完成后恢复处于连续模式的审计。

提议的变更

目前,调度器会定期选取状态为 PENDINGONGOINGSUCCEEDED 的审计。然后,名为 execute_audit 的审计作业会被添加到调度器中。Execute_audit 作业首先检查审计状态。如果状态为 CANCELLEDDELETEDFAILED,则删除审计作业且不执行策略。

此规范添加了新的审计状态 SUSPENDED,并更改了 execute_audit 的审计状态检查条件。如果状态为 CANCELLEDDELETEDFAILEDSUSPENDED,则删除审计作业且不执行策略。否则,执行策略。

由于 SUSPENDED 是新的审计状态,因此在更新审计状态时,审计状态转换检查也发生了变化。ONGOING 状态可以更改为 SUSPENDED。反之,SUSPENDED 可以更改为 ONGOING

备选方案

  • 删除审计并重新创建。

  • 目前,ONGOING 状态可以更改为 CANCELLED 状态,但不能反向更改。如果我们可以从 CANCELLED 状态更改为 ONGOING 状态,那也是一种替代方案。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

<nakamura-h>

工作项

  • 在 watcher.objects.audit 模块的状态类中添加 SUSPENDED

  • 更新 ContinuousAuditHandler,使其将 SUSPENDED 也视为非活动状态。

依赖项

测试

应更新单元测试和 tempest 测试。

文档影响

需要更新架构文档中的 审计状态机

参考资料

历史