forked from Hay1tsme/artemis
add additional details to event_log
This commit is contained in:
parent
70b40ce992
commit
a9587a9c91
@ -0,0 +1,48 @@
|
|||||||
|
"""add_event_log_info
|
||||||
|
|
||||||
|
Revision ID: 2bf9f38d9444
|
||||||
|
Revises: 81e44dd6047a
|
||||||
|
Create Date: 2024-05-21 23:00:17.468407
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import mysql
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '2bf9f38d9444'
|
||||||
|
down_revision = '81e44dd6047a'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('event_log', sa.Column('user', sa.INTEGER(), nullable=True))
|
||||||
|
op.add_column('event_log', sa.Column('arcade', sa.INTEGER(), nullable=True))
|
||||||
|
op.add_column('event_log', sa.Column('machine', sa.INTEGER(), nullable=True))
|
||||||
|
op.add_column('event_log', sa.Column('ip', sa.TEXT(length=39), nullable=True))
|
||||||
|
op.alter_column('event_log', 'when_logged',
|
||||||
|
existing_type=mysql.TIMESTAMP(),
|
||||||
|
server_default=sa.text('now()'),
|
||||||
|
existing_nullable=False)
|
||||||
|
op.create_foreign_key(None, 'event_log', 'machine', ['machine'], ['id'], onupdate='cascade', ondelete='cascade')
|
||||||
|
op.create_foreign_key(None, 'event_log', 'arcade', ['arcade'], ['id'], onupdate='cascade', ondelete='cascade')
|
||||||
|
op.create_foreign_key(None, 'event_log', 'aime_user', ['user'], ['id'], onupdate='cascade', ondelete='cascade')
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_constraint(None, 'event_log', type_='foreignkey')
|
||||||
|
op.drop_constraint(None, 'event_log', type_='foreignkey')
|
||||||
|
op.drop_constraint(None, 'event_log', type_='foreignkey')
|
||||||
|
op.alter_column('event_log', 'when_logged',
|
||||||
|
existing_type=mysql.TIMESTAMP(),
|
||||||
|
server_default=sa.text('current_timestamp()'),
|
||||||
|
existing_nullable=False)
|
||||||
|
op.drop_column('event_log', 'ip')
|
||||||
|
op.drop_column('event_log', 'machine')
|
||||||
|
op.drop_column('event_log', 'arcade')
|
||||||
|
op.drop_column('event_log', 'user')
|
||||||
|
# ### end Alembic commands ###
|
@ -8,7 +8,8 @@ from sqlalchemy.engine.base import Connection
|
|||||||
from sqlalchemy.sql import text, func, select
|
from sqlalchemy.sql import text, func, select
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from sqlalchemy import MetaData, Table, Column
|
from sqlalchemy import MetaData, Table, Column
|
||||||
from sqlalchemy.types import Integer, String, TIMESTAMP, JSON
|
from sqlalchemy.types import Integer, String, TIMESTAMP, JSON, INTEGER, TEXT
|
||||||
|
from sqlalchemy.schema import ForeignKey
|
||||||
from sqlalchemy.dialects.mysql import insert
|
from sqlalchemy.dialects.mysql import insert
|
||||||
|
|
||||||
from core.config import CoreConfig
|
from core.config import CoreConfig
|
||||||
@ -22,6 +23,10 @@ event_log = Table(
|
|||||||
Column("system", String(255), nullable=False),
|
Column("system", String(255), nullable=False),
|
||||||
Column("type", String(255), nullable=False),
|
Column("type", String(255), nullable=False),
|
||||||
Column("severity", Integer, nullable=False),
|
Column("severity", Integer, nullable=False),
|
||||||
|
Column("user", INTEGER, ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
|
||||||
|
Column("arcade", INTEGER, ForeignKey("arcade.id", ondelete="cascade", onupdate="cascade")),
|
||||||
|
Column("machine", INTEGER, ForeignKey("machine.id", ondelete="cascade", onupdate="cascade")),
|
||||||
|
Column("ip", TEXT(39)),
|
||||||
Column("message", String(1000), nullable=False),
|
Column("message", String(1000), nullable=False),
|
||||||
Column("details", JSON, nullable=False),
|
Column("details", JSON, nullable=False),
|
||||||
Column("when_logged", TIMESTAMP, nullable=False, server_default=func.now()),
|
Column("when_logged", TIMESTAMP, nullable=False, server_default=func.now()),
|
||||||
@ -75,12 +80,16 @@ class BaseData:
|
|||||||
return randrange(10000, 9999999)
|
return randrange(10000, 9999999)
|
||||||
|
|
||||||
async def log_event(
|
async def log_event(
|
||||||
self, system: str, type: str, severity: int, message: str, details: Dict = {}
|
self, system: str, type: str, severity: int, message: str, details: Dict = {}, user: int = None, arcade: int = None, machine: int = None, ip: str = None
|
||||||
) -> Optional[int]:
|
) -> Optional[int]:
|
||||||
sql = event_log.insert().values(
|
sql = event_log.insert().values(
|
||||||
system=system,
|
system=system,
|
||||||
type=type,
|
type=type,
|
||||||
severity=severity,
|
severity=severity,
|
||||||
|
user=user,
|
||||||
|
arcade=arcade,
|
||||||
|
machine=machine,
|
||||||
|
ip=ip,
|
||||||
message=message,
|
message=message,
|
||||||
details=json.dumps(details),
|
details=json.dumps(details),
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user