#2324 Log manage.py commands
Merged 2 years ago by praiskup. Opened 2 years ago by frostyx.
copr/ frostyx/copr log-frontend-manage-py  into  main

file modified
+1 -1
@@ -6,7 +6,7 @@ 

  %global tests_version 2

  %global tests_tar test-data-copr-backend

  

- %global copr_common_version 0.13.1.dev

+ %global copr_common_version 0.15.1.dev

  

  Name:       copr-backend

  Version:    1.161

@@ -561,33 +561,6 @@ 

      return logger

  

  

- def setup_script_logger(log, path):

-     """

-     Backend scripts should simply do:

- 

-         log = logging.getLogger(__name__)

-         setup_script_logger(log, "/var/log/copr-backend/foo.log")

-     """

- 

-     # Don't read copr config, just use INFO. Scripts should implement

-     # some --verbose parameter for debug information

-     log.setLevel(logging.INFO)

- 

-     # Drop the default handler, we will create it ourselves

-     log.handlers = []

- 

-     # Print to stdout

-     stdout_log = logging.StreamHandler(sys.stdout)

-     stdout_log.setFormatter(logging.Formatter("%(message)s"))

-     log.addHandler(stdout_log)

- 

-     # Add file logging

-     file_log = logging.FileHandler(path)

-     log.addHandler(file_log)

- 

-     return log

- 

- 

  def create_file_logger(name, filepath, fmt=None):

      logger = logging.getLogger(name)

  

@@ -23,8 +23,8 @@ 

  import gzip

  from socket import gethostname

  import boto3

+ from copr_common.log import setup_script_logger

  from copr_backend.hitcounter import update_frontend

- from copr_backend.helpers import setup_script_logger

  

  

  # We will allow only this hostname to delete files from the S3 storage

@@ -13,7 +13,7 @@ 

  import logging

  import argparse

  from datetime import datetime

- from copr_backend.helpers import setup_script_logger

+ from copr_common.log import setup_script_logger

  from copr_backend.hitcounter import update_frontend

  

  

@@ -0,0 +1,35 @@ 

+ """

+ Common Copr code for logging

+ """

+ 

+ import sys

+ import logging

+ 

+ 

+ def setup_script_logger(log, path):

+     """

+     Backend scripts should simply do:

+ 

+         log = logging.getLogger(__name__)

+         setup_script_logger(log, "/var/log/copr-backend/foo.log")

+     """

+ 

+     # Don't read copr config, just use INFO. Scripts should implement

+     # some --verbose parameter for debug information

+     log.setLevel(logging.INFO)

+ 

+     # Drop the default handler, we will create it ourselves

+     log.handlers = []

+ 

+     # Print to stdout

+     stdout_log = logging.StreamHandler(sys.stdout)

+     stdout_log.setFormatter(logging.Formatter("%(message)s"))

+     log.addHandler(stdout_log)

+ 

+     # Add file logging

+     file_log = logging.FileHandler(path)

+     file_log_format = "[%(asctime)s][%(levelname)6s]: %(message)s"

+     file_log.setFormatter(logging.Formatter(file_log_format))

+     log.addHandler(file_log)

+ 

+     return log

@@ -16,7 +16,7 @@ 

  %endif

  

  Name:       python-copr-common

- Version:    0.15

+ Version:    0.16

  Release:    1%{?dist}

  Summary:    Python code used by Copr

  
@@ -115,6 +115,9 @@ 

  

  

  %changelog

+ * Sun Oct 02 2022 Jakub Kadlcik <frostyx@email.cz> - 0.16-1

+ - Add setup_script_logger function

+ 

  * Tue Jun 21 2022 Jakub Kadlcik <frostyx@email.cz> 0.15-1

  - Allow SafeRequest's timeout to be specified

  

file modified
+1 -1
@@ -6,7 +6,7 @@ 

  # https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_of_Additional_RPM_Macros

  %global macrosdir       %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)

  

- %global copr_common_version 0.11.1.dev

+ %global copr_common_version 0.15.1.dev

  

  # Please bump the %%flavor_guard version every-time some incompatible change

  # happens (since the last release) in %%flavor_files set of files.  Those files

@@ -4,10 +4,12 @@ 

  import os

  import sys

  import copy

+ import logging

  from functools import wraps

  import pipes

  import importlib

  import click

+ from copr_common.log import setup_script_logger

  from commands.flask3_wrapper import get_flask_wrapper_command

  import commands.test

  import commands.create_sqlite_file
@@ -123,5 +125,13 @@ 

  app.cli.add_command(get_flask_wrapper_command('shell'))

  

  if __name__ == "__main__":

+     log = logging.getLogger(__name__)

+ 

+     if "test" not in sys.argv:

+         setup_script_logger(log, "/var/log/copr-frontend/manage.log")

+ 

+     cmd = " ".join(sys.argv)

+     log.info("Running command: %s", cmd)

+ 

      with app.app_context():

          app.cli()

file modified
+3
@@ -1,4 +1,5 @@ 

  %global with_test 1

+ %global copr_common_version 0.15.1.dev

  

  Name:       copr-keygen

  Version:    1.85
@@ -18,6 +19,7 @@ 

  BuildRequires: systemd

  

  BuildRequires: python3-devel

+ BuildRequires: python3-copr-common >= %copr_common_version

  BuildRequires: python3-setuptools

  BuildRequires: python3-six

  BuildRequires: python3-flask
@@ -37,6 +39,7 @@ 

  Requires:   passwd

  

  Recommends: logrotate

+ Requires:   python3-copr-common >= %copr_common_version

  Requires:   python3-setuptools

  Requires:   python3-six

  Requires:   python3-flask

file modified
+8
@@ -2,12 +2,20 @@ 

  

  import sys

  import os

+ import logging

  import getpass

+ from copr_common.log import setup_script_logger

  from copr_keygen.gpg import gpg_cmd

  

  if getpass.getuser() != 'copr-signer':

      sys.stderr.write("run as 'copr-signer' user\n")

      sys.exit(1)

  

+ 

+ log = logging.getLogger(__name__)

+ setup_script_logger(log, "/var/log/copr-keygen/gpg-copr.log")

+ 

+ 

  cmd = gpg_cmd + sys.argv[1:]

+ log.info("Running command: %s", " ".join(cmd))

  os.execve(cmd[0], cmd, os.environ)

I wanted to use setup_script_logger from backend, so I moved it to copr-common.

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

rebased onto 3b5ea8bb5067533847dcf7163d8041faa3cdad80

2 years ago

Build succeeded.

1 new commit added

  • keygen: add logging for the gpg-copr script
2 years ago

Build succeeded.

Frontend fails, otherwise looks OK

I just realized, I need to add/change %global copr_common_version 0.15.1.dev for copr-keygen and copr-backend as well.

rebased onto 59f41479f1cb208e1bb65e617c785a4c928c591e

2 years ago

Build succeeded.

Yeah, it would be awesome to have some automation for this - but what I usually do is that I build copr-common with the bumped version directly into @copr/copr-dev, and then re-try.

rebased onto 7a0cbf749fcc698996f7fc50712ee92792bedebc

2 years ago

Build succeeded.

rebased onto 71909bdb92c33a7851cf3a00e527eb6707777f74

2 years ago

Build succeeded.

4 new commits added

  • keygen: add logging for the gpg-copr script
  • common: scripts should log also timestamps etc when logging into file
  • frontend: log manage.py commands
  • backend, common: move setup_script_logger to copr-common
2 years ago

Build succeeded.

Ah, finally I got the tests working.
PTAL

rebased onto 1351c7b

2 years ago

Build succeeded.

Pull-Request has been merged by praiskup

2 years ago