Skip to content

Commit 80c618c

Browse files
authored
Merge pull request #201 from rackerlabs/issue-191-add-enable-disable-switch-to-scans
Added enable/disable functionality to Scan model
2 parents 82945db + 5dda9d0 commit 80c618c

File tree

6 files changed

+11
-6
lines changed

6 files changed

+11
-6
lines changed

master/django_scantron/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.28"
1+
__version__ = "1.29"

master/django_scantron/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ScanCommandAdmin(admin.ModelAdmin):
3232

3333
class ScanAdmin(admin.ModelAdmin):
3434

35-
list_display = ("id", "site", "scan_name", "start_time", "recurrences")
35+
list_display = ("id", "site", "scan_name", "enable_scan", "start_time", "recurrences")
3636

3737
exclude = ("completed_time", "result_file_base_name")
3838

master/django_scantron/api/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ class Meta:
110110
"id",
111111
"site",
112112
"scan_name",
113+
"enable_scan",
113114
"start_time",
114115
"recurrences",
115116
)

master/django_scantron/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ class Scan(models.Model):
171171
id = models.AutoField(primary_key=True, verbose_name="Scan ID")
172172
site = models.ForeignKey(Site, on_delete=models.CASCADE, verbose_name="Site ID")
173173
scan_name = models.CharField(unique=False, max_length=255, blank=True, verbose_name="Scan Name")
174+
enable_scan = models.BooleanField(verbose_name="Enable scan?")
174175
start_time = models.TimeField(verbose_name="Scan start time")
175176
recurrences = RecurrenceField(include_dtstart=False, verbose_name="Recurrences")
176177

master/scan_scheduler.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ def main():
4242

4343
# Only filter on scans that should start at this time based off hour and minute, ignoring seconds.
4444
# If minute is the time resolution, this script (wrapped with scan_scheduler.sh) must be executed every minute
45-
# through cron. We can't filter on occurrences using Django's filter() method; it will have to be checked using
46-
# logic below.
47-
scans = django_connector.Scan.objects.filter(start_time__hour=now_time_hour).filter(
48-
start_time__minute=now_time_minute
45+
# through cron. Also filter on scans that are enabled. We can't filter on occurrences using Django's filter()
46+
# method; it will have to be checked using logic below.
47+
scans = (
48+
django_connector.Scan.objects.filter(start_time__hour=now_time_hour)
49+
.filter(start_time__minute=now_time_minute)
50+
.filter(enable_scan=True)
4951
)
5052

5153
if not scans:

scantron_api_client/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ At a minimum, you need to include `RDATE:`.
111111
payload = {
112112
"site": 1,
113113
"scan_name": "DMZ Scan",
114+
"enable_scan": True,
114115
"start_time": "16:00:00",
115116
"recurrences": "RRULE:FREQ=WEEKLY;BYDAY=MO\nRDATE:20200113T060000Z",
116117
}

0 commit comments

Comments
 (0)