tasklog.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. The ASF licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing,
  13. # software distributed under the License is distributed on an
  14. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. # KIND, either express or implied. See the License for the
  16. # specific language governing permissions and limitations
  17. # under the License.
  18. from __future__ import annotations
  19. from sqlalchemy import Column, Integer, Text
  20. from airflow.models.base import Base
  21. from airflow.utils import timezone
  22. from airflow.utils.sqlalchemy import UtcDateTime
  23. class LogTemplate(Base):
  24. """
  25. Changes to ``log_filename_template`` and ``elasticsearch_id``.
  26. This table is automatically populated when Airflow starts up, to store the
  27. config's value if it does not match the last row in the table.
  28. """
  29. __tablename__ = "log_template"
  30. id = Column(Integer, primary_key=True, autoincrement=True)
  31. filename = Column(Text, nullable=False)
  32. elasticsearch_id = Column(Text, nullable=False)
  33. created_at = Column(UtcDateTime, nullable=False, default=timezone.utcnow)
  34. def __repr__(self) -> str:
  35. attrs = ", ".join(f"{k}={getattr(self, k)}" for k in ("filename", "elasticsearch_id"))
  36. return f"LogTemplate({attrs})"