Merge pull request #1015 from Pythagora-io/use-utc-exec-logs

Use UTC for started_at colum in exec_logs.
This commit is contained in:
LeonOstrez
2024-06-13 14:37:56 +02:00
committed by GitHub
3 changed files with 7 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
from datetime import datetime
from datetime import datetime, timezone
from typing import Optional
from pydantic import BaseModel, Field
@@ -96,13 +96,13 @@ class Executor(BaseAgent):
self.next_state.action = f'Skip "{cmd_name}"'
return AgentResponse.done(self)
started_at = datetime.now()
started_at = datetime.now(timezone.utc)
log.info(f"Running command `{cmd}` with timeout {timeout}s")
status_code, stdout, stderr = await self.process_manager.run_command(cmd, timeout=timeout)
llm_response = await self.check_command_output(cmd, timeout, stdout, stderr, status_code)
duration = (datetime.now() - started_at).total_seconds()
duration = (datetime.now(timezone.utc) - started_at).total_seconds()
self.complete()
self.next_state.action = f'Run "{cmd_name}"'

View File

@@ -4,6 +4,7 @@ from uuid import UUID
from sqlalchemy import ForeignKey, inspect
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.sql import func
from core.db.models import Base
from core.proc.exec_log import ExecLog as ExecLogData
@@ -21,7 +22,7 @@ class ExecLog(Base):
project_state_id: Mapped[Optional[UUID]] = mapped_column(ForeignKey("project_states.id", ondelete="SET NULL"))
# Attributes
started_at: Mapped[datetime] = mapped_column()
started_at: Mapped[datetime] = mapped_column(server_default=func.now())
duration: Mapped[float] = mapped_column()
cmd: Mapped[str] = mapped_column()
cwd: Mapped[str] = mapped_column()

View File

@@ -1,11 +1,11 @@
from datetime import datetime
from datetime import datetime, timezone
from typing import Optional
from pydantic import BaseModel, Field
class ExecLog(BaseModel):
started_at: datetime = Field(default_factory=datetime.now)
started_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
duration: float = Field(description="The duration of the command/process run in seconds")
cmd: str = Field(description="The full command (as executed in the shell)")
cwd: str = Field(description="The working directory for the command (relative to project root)")