%PDF- %PDF-
Direktori : /opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/migrations/ |
Current File : //opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/migrations/036_add_block_port.py |
""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> """ import peewee as pw class BlockedPort(pw.Model): """ Port + protocol for blocking data """ port = pw.IntegerField(null=False) proto = pw.CharField(null=False, constraints=[ pw.Check("proto in ('tcp', 'udp', 'all')") ]) comment = pw.CharField(null=True) class Meta: db_table = 'blocked_port' indexes = ( # create an unique on port/proto (('port', 'proto'), True), ) class IgnoredByPort(pw.Model): """ Ignored IPs for port + protocol """ port_proto = pw.ForeignKeyField(BlockedPort, null=False, on_delete='CASCADE', related_name='ips') ip = pw.CharField(null=False) comment = pw.CharField(null=True) class Meta: db_table = 'ignored_by_port_proto' indexes = ( # create an unique on port/ip (('port_proto', 'ip'), True), ) def migrate(migrator, database, fake=False, **kwargs): migrator.create_model(BlockedPort) migrator.create_model(IgnoredByPort) IPList = migrator.orm['iplist'] migrator.add_fields(IPList, full_access=pw.BooleanField(null=True)) def rollback(migrator, database, fake=False, **kwargs): BlockedPort = migrator.orm['blocked_port'] IgnoredByPort = migrator.orm['blocked_port_ip'] IPList = migrator.orm['iplist'] migrator.remove_model(BlockedPort) migrator.remove_model(IgnoredByPort) migrator.remove_fields(IPList, 'full_access')