class ReplicationModel(sa.Model): __tablename__ = 'storage_replication' id = sa.Column(sa.Integer(), primary_key=True) repl_target_dataset = sa.Column(sa.String(120)) repl_recursive = sa.Column(sa.Boolean(), default=False) repl_compression = sa.Column(sa.String(120), nullable=True, default="LZ4") repl_speed_limit = sa.Column(sa.Integer(), nullable=True, default=None) repl_schedule_begin = sa.Column(sa.Time(), nullable=True, default=time(hour=0)) repl_schedule_end = sa.Column(sa.Time(), nullable=True, default=time(hour=23, minute=45)) repl_enabled = sa.Column(sa.Boolean(), default=True) repl_direction = sa.Column(sa.String(120), default="PUSH") repl_transport = sa.Column(sa.String(120), default="SSH") repl_ssh_credentials_id = sa.Column(sa.ForeignKey('system_keychaincredential.id'), index=True, nullable=True) repl_netcat_active_side = sa.Column(sa.String(120), nullable=True, default=None) repl_netcat_active_side_port_min = sa.Column(sa.Integer(), nullable=True) repl_netcat_active_side_port_max = sa.Column(sa.Integer(), nullable=True) repl_source_datasets = sa.Column(sa.JSON(type=list)) repl_exclude = sa.Column(sa.JSON(type=list)) repl_naming_schema = sa.Column(sa.JSON(type=list)) repl_auto = sa.Column(sa.Boolean(), default=True) repl_schedule_minute = sa.Column(sa.String(100), nullable=True, default="00") repl_schedule_hour = sa.Column(sa.String(100), nullable=True, default="*") repl_schedule_daymonth = sa.Column(sa.String(100), nullable=True, default="*") repl_schedule_month = sa.Column(sa.String(100), nullable=True, default='*') repl_schedule_dayweek = sa.Column(sa.String(100), nullable=True, default="*") repl_only_matching_schedule = sa.Column(sa.Boolean()) repl_readonly = sa.Column(sa.String(120)) repl_allow_from_scratch = sa.Column(sa.Boolean()) repl_hold_pending_snapshots = sa.Column(sa.Boolean()) repl_retention_policy = sa.Column(sa.String(120), default="NONE") repl_lifetime_unit = sa.Column(sa.String(120), nullable=True, default='WEEK') repl_lifetime_value = sa.Column(sa.Integer(), nullable=True, default=2) repl_large_block = sa.Column(sa.Boolean(), default=True) repl_embed = sa.Column(sa.Boolean(), default=False) repl_compressed = sa.Column(sa.Boolean(), default=True) repl_retries = sa.Column(sa.Integer(), default=5) repl_restrict_schedule_minute = sa.Column(sa.String(100), nullable=True, default="00") repl_restrict_schedule_hour = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_daymonth = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_month = sa.Column(sa.String(100), nullable=True, default='*') repl_restrict_schedule_dayweek = sa.Column(sa.String(100), nullable=True, default="*") repl_restrict_schedule_begin = sa.Column(sa.Time(), nullable=True, default=time(hour=0)) repl_restrict_schedule_end = sa.Column(sa.Time(), nullable=True, default=time(hour=23, minute=45)) repl_netcat_active_side_listen_address = sa.Column(sa.String(120), nullable=True, default=None) repl_netcat_passive_side_connect_address = sa.Column(sa.String(120), nullable=True, default=None) repl_logging_level = sa.Column(sa.String(120), nullable=True, default=None) repl_name = sa.Column(sa.String(120)) repl_state = sa.Column(sa.Text(), default="{}") repl_properties = sa.Column(sa.Boolean(), default=True) repl_properties_exclude = sa.Column(sa.JSON(type=list)) repl_properties_override = sa.Column(sa.JSON()) repl_replicate = sa.Column(sa.Boolean()) repl_encryption = sa.Column(sa.Boolean()) repl_encryption_key = sa.Column(sa.EncryptedText(), nullable=True) repl_encryption_key_format = sa.Column(sa.String(120), nullable=True) repl_encryption_key_location = sa.Column(sa.Text(), nullable=True) repl_periodic_snapshot_tasks = sa.relationship('PeriodicSnapshotTaskModel', secondary=lambda: ReplicationPeriodicSnapshotTaskModel.__table__)
class SmartTestModel(sa.Model): __tablename__ = 'tasks_smarttest' id = sa.Column(sa.Integer(), primary_key=True) smarttest_type = sa.Column(sa.String(2)) smarttest_desc = sa.Column(sa.String(120)) smarttest_hour = sa.Column(sa.String(100), default='*') smarttest_daymonth = sa.Column(sa.String(100), default='*') smarttest_month = sa.Column(sa.String(100), default='*') smarttest_dayweek = sa.Column(sa.String(100), default='*') smarttest_all_disks = sa.Column(sa.Boolean(), default=False) smarttest_disks = sa.relationship('DiskModel', secondary=lambda: SmartTestDiskModel.__table__)