# Add the start and end time for CONTINUOUS audit¶

Currently we can only set audit execution interval, but we can not set audit start and end time. We need to add the audit start and end time for CONTINUOUS audit.

## Problem description¶

For CONTINUOUS audit, it will run periodically after launch. There is no way to control the start and end time of CONTINUOUS audit yet.

### Use Cases¶

As a Watcher user, I want to set the start and end time for CONTINUOUS audit.

## Proposed change¶

• Add new start_time and end_time fields in the audit table

• For CONTINUOUS audit, if its state is PENDING or ONGOING, launch the audit only if the current time is between start_time and end_time

The user can specify the start and end time or any one, If user doesn’t specify start and end time, the audit’s behavior is the same as before. If no start time, audit starts after creating. If no end time, audit runs until its state is SUSPENDED or CANCELLED. If end time is provided, the audit will be set from ONGOING to SUCCEEDED after end time and not running again. The datetime format is ISO 8601, such as: YYYY-MM-DD hh:mm:ss

Here are some CLI examples:

create audit with start and end time:

$watcher audit create -g dummy -t CONTINUOUS -i 300 \ --start-time '2018-04-01 08:00:00' --end-time '2018-04-03 08:00:00' update audit start or end time:$ watcher audit update 64aa6c03-b676-4904-9d6a-855d1d6f9200 \
replace start_time='2018-04-02 20:30:00'

\$ watcher audit update 64aa6c03-b676-4904-9d6a-855d1d6f9200 \
replace end_time='2018-04-04 20:30:00'

### Alternatives¶

May reuse ‘interval’ field instead of the new start_time and end_time fields. But it will cause complication and not easy to understand.

### Data model impact¶

Add new start_time and end_time fields in the audit table

### REST API impact¶

Need to add new ‘start_time’ and ‘end_time’ parameters in Audits APIs. Their values are local time.

None

### Other end user impact¶

• Need to add ‘start_time’ and ‘end_time’ to CLI ‘watcher audit create’

• Also need to update watcher-dashboard

None

None

None

## Implementation¶

### Assignee(s)¶

Primary assignee:

licanwei

### Work Items¶

• Update architecture doc to add the new fields

• Add new start_time and end_time fields in the audit table

• Check start and end time before running CONTINUOUS audit

• Update python-watcherclient

• Update watcher-dashboard

None

## Testing¶

Unittest for all changes

## Documentation Impact¶

Update architecture doc to add the new fields.

None

None