1+ import logging
2+ from .enum import Mode
3+ from .base_command import BaseCommand
4+
5+
6+ logger = logging .getLogger ('cterasdk.edge' )
7+
8+
9+ class Antivirus (BaseCommand ):
10+ """Edge Filer Antivirus APIs"""
11+
12+ def __init__ (self , edge ):
13+ super ().__init__ (edge )
14+ self .settings = Settings (self ._edge )
15+
16+ def enable (self ):
17+ """
18+ Enable Bit Defender antivirus.
19+ """
20+ logger .info ('Enabling antivirus.' )
21+ response = self ._edge .api .put ('/config/av/realtime/mode' , Mode .Enabled )
22+ logger .info ('Antivirus enabled.' )
23+ return response
24+
25+ def disable (self ):
26+ """
27+ Disable Bit Defender antivirus.
28+ """
29+ logger .info ('Disabling antivirus.' )
30+ response = self ._edge .api .put ('/config/av/realtime/mode' , Mode .Disabled )
31+ logger .info ('Antivirus disabled.' )
32+ return response
33+
34+ def update (self ):
35+ """
36+ Check for updates.
37+ """
38+ return self ._edge .api .execute ('/config/av/updates' , 'updatenow' )
39+
40+ def status (self ):
41+ """
42+ Get Status.
43+ """
44+ return self ._edge .api .get ('/status/av' )
45+
46+
47+ class Settings (BaseCommand ):
48+
49+ def get (self ):
50+ """
51+ Get antivirus settings.
52+ """
53+ return self ._edge .api .get ('/config/av/updates' )
54+
55+ def update (self , schedule , disabled = False ):
56+ """
57+ Update antivirus settings.
58+
59+ :param cterasdk.edge.types.AntivirusUpdateSchedule schedule: Antivirus update schedule
60+ :param bool,optional disabled: Enable or disable automatic updates, defaults to ``False``
61+ """
62+ settings = self .get ()
63+ settings .mode = Mode .Disabled if disabled is True else Mode .Enabled
64+ settings .schedule = schedule
65+ return self ._edge .api .put ('/config/av/updates' , settings )
0 commit comments