|
3 | 3 | from .base_command import BaseCommand |
4 | 4 | from ..common import Object |
5 | 5 | from ..core.enum import Severity, Mode, IPProtocol |
| 6 | +from ..exception import CTERAException |
6 | 7 |
|
7 | 8 |
|
8 | 9 | class Syslog(BaseCommand): |
@@ -47,6 +48,39 @@ def enable(self, server, port=514, proto=IPProtocol.UDP, min_severity=Severity.I |
47 | 48 | logging.getLogger().info('Syslog enabled.') |
48 | 49 | return response |
49 | 50 |
|
| 51 | + def modify(self, server=None, port=None, proto=None, min_severity=None): |
| 52 | + """ |
| 53 | + Modify Syslog log forwarding configuration |
| 54 | +
|
| 55 | + :param str server: Syslog server address |
| 56 | + :param int,optional port: Syslog server port |
| 57 | + :param cterasdk.core.enum.IPProtocol,optional proto: Syslog server IP protocol |
| 58 | + :param cterasdk.core.enum.Severity,optional min_severity: Minimum log severity to forward |
| 59 | + """ |
| 60 | + current_config = self.get_configuration() |
| 61 | + if current_config.mode == Mode.Disabled: |
| 62 | + raise CTERAException("Syslog configuration cannot be modified when disabled") |
| 63 | + if server: |
| 64 | + current_config.server = server |
| 65 | + if port: |
| 66 | + current_config.port = port |
| 67 | + if proto: |
| 68 | + current_config.proto = proto |
| 69 | + if min_severity: |
| 70 | + current_config.minSeverity = min_severity |
| 71 | + |
| 72 | + logging.getLogger().info("Updating syslog server configuration.") |
| 73 | + self._portal.put('/settings/logsSettings/syslogConfig', current_config) |
| 74 | + logging.getLogger().info( |
| 75 | + "Syslog server configured. %s", |
| 76 | + { |
| 77 | + 'server': current_config.server, |
| 78 | + 'port': current_config.port, |
| 79 | + 'protocol': current_config.proto, |
| 80 | + 'minSeverity': current_config.minSeverity |
| 81 | + } |
| 82 | + ) |
| 83 | + |
50 | 84 | def disable(self): |
51 | 85 | logging.getLogger().info('Disabling syslog.') |
52 | 86 | response = self._portal.put('/settings/logsSettings/syslogConfig/mode', Mode.Disabled) |
|
0 commit comments