diff --git a/gateway/app/core/service_discovery.py b/gateway/app/core/service_discovery.py index 3bce2bfd..78b58337 100644 --- a/gateway/app/core/service_discovery.py +++ b/gateway/app/core/service_discovery.py @@ -96,7 +96,7 @@ class ServiceDiscovery: key = f"service_health:{service_name}" value = { "healthy": is_healthy, - "last_check": datetime.utcnow().isoformat(), + "last_check": datetime.now(datetime.timezone.utc).isoformat(), "url": self.services[service_name] } diff --git a/gateway/shared/auth/jwt_handler.py b/gateway/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/gateway/shared/auth/jwt_handler.py +++ b/gateway/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/gateway/shared/messaging/events.py b/gateway/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/gateway/shared/messaging/events.py +++ b/gateway/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/auth/app/services/auth_service.py b/services/auth/app/services/auth_service.py index 9cf280c8..bb74b2fa 100644 --- a/services/auth/app/services/auth_service.py +++ b/services/auth/app/services/auth_service.py @@ -61,7 +61,7 @@ class AuthService: UserRegisteredEvent( event_id="", service_name="auth-service", - timestamp=datetime.utcnow(), + timestamp= datetime.now(datetime.timezone.utc), data={ "user_id": str(user.id), "email": user.email, @@ -111,7 +111,7 @@ class AuthService: await db.execute( update(User) .where(User.id == user.id) - .values(last_login=datetime.utcnow()) + .values(last_login= datetime.now(datetime.timezone.utc)) ) await db.commit() @@ -133,7 +133,7 @@ class AuthService: session = UserSession( user_id=user.id, refresh_token_hash=security_manager.hash_password(refresh_token), - expires_at=datetime.utcnow() + timedelta(days=7), + expires_at= datetime.now(datetime.timezone.utc) + timedelta(days=7), ip_address=ip_address, user_agent=user_agent ) @@ -148,7 +148,7 @@ class AuthService: UserLoginEvent( event_id="", service_name="auth-service", - timestamp=datetime.utcnow(), + timestamp= datetime.now(datetime.timezone.utc), data={ "user_id": str(user.id), "email": user.email, diff --git a/services/auth/shared/auth/jwt_handler.py b/services/auth/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/auth/shared/auth/jwt_handler.py +++ b/services/auth/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/auth/shared/messaging/events.py b/services/auth/shared/messaging/events.py index 812e972d..affa94a2 100644 --- a/services/auth/shared/messaging/events.py +++ b/services/auth/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/data/shared/auth/jwt_handler.py b/services/data/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/data/shared/auth/jwt_handler.py +++ b/services/data/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/data/shared/messaging/events.py b/services/data/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/services/data/shared/messaging/events.py +++ b/services/data/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/forecasting/shared/auth/jwt_handler.py b/services/forecasting/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/forecasting/shared/auth/jwt_handler.py +++ b/services/forecasting/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/forecasting/shared/messaging/events.py b/services/forecasting/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/services/forecasting/shared/messaging/events.py +++ b/services/forecasting/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/notification/shared/auth/jwt_handler.py b/services/notification/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/notification/shared/auth/jwt_handler.py +++ b/services/notification/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/notification/shared/messaging/events.py b/services/notification/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/services/notification/shared/messaging/events.py +++ b/services/notification/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/tenant/shared/auth/jwt_handler.py b/services/tenant/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/tenant/shared/auth/jwt_handler.py +++ b/services/tenant/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/tenant/shared/messaging/events.py b/services/tenant/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/services/tenant/shared/messaging/events.py +++ b/services/tenant/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/services/training/app/services/training_service.py b/services/training/app/services/training_service.py index efb52ae7..8f5d9cda 100644 --- a/services/training/app/services/training_service.py +++ b/services/training/app/services/training_service.py @@ -46,8 +46,8 @@ class TrainingService: progress=0, current_step="Queued for training", requested_by=user_data.get("user_id"), - training_data_from=datetime.utcnow() - timedelta(days=request.training_days), - training_data_to=datetime.utcnow() + training_data_from= datetime.now(datetime.timezone.utc) - timedelta(days=request.training_days), + training_data_to= datetime.now(datetime.timezone.utc) ) db.add(training_job) @@ -64,7 +64,7 @@ class TrainingService: TrainingStartedEvent( event_id=str(uuid.uuid4()), service_name="training-service", - timestamp=datetime.utcnow(), + timestamp= datetime.now(datetime.timezone.utc), data={ "job_id": str(training_job.id), "tenant_id": tenant_id, @@ -206,7 +206,7 @@ class TrainingService: async def _execute_training(self, job_id: str, request: TrainingRequest, db: AsyncSession): """Execute training job""" - start_time = datetime.utcnow() + start_time = datetime.now(datetime.timezone.utc) try: # Update job status @@ -229,7 +229,7 @@ class TrainingService: await self._save_trained_models(job_id, models_result, validation_result, db) # Complete job - duration = int((datetime.utcnow() - start_time).total_seconds()) + duration = int(( datetime.now(datetime.timezone.utc) - start_time).total_seconds()) await self._complete_job(job_id, models_result, validation_result, duration, db) # Publish completion event @@ -239,7 +239,7 @@ class TrainingService: TrainingCompletedEvent( event_id=str(uuid.uuid4()), service_name="training-service", - timestamp=datetime.utcnow(), + timestamp= datetime.now(datetime.timezone.utc), data={ "job_id": str(job_id), "models_trained": len(models_result), @@ -263,7 +263,7 @@ class TrainingService: TrainingFailedEvent( event_id=str(uuid.uuid4()), service_name="training-service", - timestamp=datetime.utcnow(), + timestamp= datetime.now(datetime.timezone.utc), data={ "job_id": str(job_id), "error": str(e) @@ -281,7 +281,7 @@ class TrainingService: status=status, progress=progress, current_step=current_step, - updated_at=datetime.utcnow() + updated_at= datetime.now(datetime.timezone.utc) ) ) await db.commit() @@ -374,7 +374,7 @@ class TrainingService: status="completed", progress=100, current_step="Training completed successfully", - completed_at=datetime.utcnow(), + completed_at= datetime.now(datetime.timezone.utc), duration_seconds=duration, models_trained=models_result, metrics=metrics, diff --git a/services/training/shared/auth/jwt_handler.py b/services/training/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/services/training/shared/auth/jwt_handler.py +++ b/services/training/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/services/training/shared/messaging/events.py b/services/training/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/services/training/shared/messaging/events.py +++ b/services/training/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass diff --git a/shared/auth/jwt_handler.py b/shared/auth/jwt_handler.py index 50264943..2eae4724 100644 --- a/shared/auth/jwt_handler.py +++ b/shared/auth/jwt_handler.py @@ -22,9 +22,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(minutes=30) + expire = datetime.now(datetime.timezone.utc) + timedelta(minutes=30) to_encode.update({"exp": expire, "type": "access"}) @@ -36,9 +36,9 @@ class JWTHandler: to_encode = data.copy() if expires_delta: - expire = datetime.utcnow() + expires_delta + expire = datetime.now(datetime.timezone.utc) + expires_delta else: - expire = datetime.utcnow() + timedelta(days=7) + expire = datetime.now(datetime.timezone.utc) + timedelta(days=7) to_encode.update({"exp": expire, "type": "refresh"}) diff --git a/shared/messaging/events.py b/shared/messaging/events.py index 812e972d..cf8f8162 100644 --- a/shared/messaging/events.py +++ b/shared/messaging/events.py @@ -21,7 +21,7 @@ class BaseEvent: if not self.event_id: self.event_id = str(uuid.uuid4()) if not self.timestamp: - self.timestamp = datetime.utcnow() + self.timestamp = datetime.now(datetime.timezone.utc) # Training Events @dataclass