#1293 frontend: move constants to copr.conf
Merged 4 years ago by praiskup. Opened 4 years ago by schlupov.
copr/ schlupov/copr move_constants  into  master

frontend: move constants to copr.conf
Silvie Chlupova • 4 years ago  
@@ -132,3 +132,17 @@ 

  # enable Discourse integration

  ENABLE_DISCUSSION = False

  # DISCOURSE_URL = "https://discussion.fedoraproject.org/"

+ 

+ # PAGINATION

+ ITEMS_PER_PAGE = 10

+ PAGES_URLS_COUNT = 5

+ 

+ # Builds defaults

+ # # memory in MB

+ DEFAULT_BUILD_MEMORY = 2048

+ MIN_BUILD_MEMORY = 2048

+ MAX_BUILD_MEMORY = 4096

+ # in seconds

+ DEFAULT_BUILD_TIMEOUT = 3600 * 24

+ MIN_BUILD_TIMEOUT = 0

+ MAX_BUILD_TIMEOUT = 86400

@@ -122,3 +122,10 @@ 

  # enable Discourse integration

  ENABLE_DISCUSSION = False

  # DISCOURSE_URL = "https://discussion.fedoraproject.org/"

+ 

+ # PAGINATION

+ ITEMS_PER_PAGE = 10

+ PAGES_URLS_COUNT = 5

+ 

+ # in seconds. After this time, copr-rpmbuild stops the build

+ DEFAULT_BUILD_TIMEOUT = 3600 * 24

@@ -98,6 +98,20 @@ 

  

      WHITELIST_EMAILS = []

  

+     # PAGINATION

+     ITEMS_PER_PAGE = 10

+     PAGES_URLS_COUNT = 5

+ 

+     # Builds defaults

+     # # memory in MB

+     DEFAULT_BUILD_MEMORY = 2048

+     MIN_BUILD_MEMORY = 2048

+     MAX_BUILD_MEMORY = 4096

+     # in seconds

+     DEFAULT_BUILD_TIMEOUT = 3600 * 24

+     MIN_BUILD_TIMEOUT = 0

+     MAX_BUILD_TIMEOUT = 86400

Nice PR, thanks. Can you please document the important config options in our example config?

+ 

  class ProductionConfig(Config):

      DEBUG = False

      # SECRET_KEY = "put_some_secret_here"

@@ -1,13 +0,0 @@ 

- # PAGINATION

- ITEMS_PER_PAGE = 10

- PAGES_URLS_COUNT = 5

- 

- # Builds defaults

- # # memory in MB

- DEFAULT_BUILD_MEMORY = 2048

- MIN_BUILD_MEMORY = 2048

- MAX_BUILD_MEMORY = 4096

- # in seconds

- DEFAULT_BUILD_TIMEOUT = 3600 * 24

- MIN_BUILD_TIMEOUT = 0

- MAX_BUILD_TIMEOUT = 86400

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

  except ImportError:

      from flask_wtf import Form as FlaskForm

  

- from coprs import constants

  from coprs import app

  from coprs import helpers

  from coprs import models
@@ -481,17 +480,17 @@ 

                  "Memory requirements",

                  validators=[

                      wtforms.validators.NumberRange(

-                         min=constants.MIN_BUILD_MEMORY,

-                         max=constants.MAX_BUILD_MEMORY)],

-                 default=constants.DEFAULT_BUILD_MEMORY)

+                         min=app.config["MIN_BUILD_MEMORY"],

+                         max=app.config["MAX_BUILD_MEMORY"])],

+                 default=app.config["DEFAULT_BUILD_MEMORY"])

  

              timeout = wtforms.IntegerField(

                  "Timeout",

                  validators=[

                      wtforms.validators.NumberRange(

-                         min=constants.MIN_BUILD_TIMEOUT,

-                         max=constants.MAX_BUILD_TIMEOUT)],

-                 default=constants.DEFAULT_BUILD_TIMEOUT)

+                         min=app.config["MIN_BUILD_TIMEOUT"],

+                         max=app.config["MAX_BUILD_TIMEOUT"])],

+                 default=app.config["DEFAULT_BUILD_TIMEOUT"])

  

              enable_net = wtforms.BooleanField(false_values=FALSE_VALUES)

              background = wtforms.BooleanField(false_values=FALSE_VALUES)
@@ -874,18 +873,18 @@ 

              validators=[

                  wtforms.validators.Optional(),

                  wtforms.validators.NumberRange(

-                     min=constants.MIN_BUILD_MEMORY,

-                     max=constants.MAX_BUILD_MEMORY)],

-             default=constants.DEFAULT_BUILD_MEMORY)

+                     min=app.config["MIN_BUILD_MEMORY"],

+                     max=app.config["MAX_BUILD_MEMORY"])],

+             default=app.config["DEFAULT_BUILD_MEMORY"])

  

          F.timeout = wtforms.IntegerField(

              "Timeout",

              validators=[

                  wtforms.validators.Optional(),

                  wtforms.validators.NumberRange(

-                     min=constants.MIN_BUILD_TIMEOUT,

-                     max=constants.MAX_BUILD_TIMEOUT)],

-             default=constants.DEFAULT_BUILD_TIMEOUT)

+                     min=app.config["MIN_BUILD_TIMEOUT"],

+                     max=app.config["MAX_BUILD_TIMEOUT"])],

+             default=app.config["DEFAULT_BUILD_TIMEOUT"])

  

          F.enable_net = wtforms.BooleanField(false_values=FALSE_VALUES)

          F.background = wtforms.BooleanField(default=False, false_values=FALSE_VALUES)

@@ -19,7 +19,6 @@ 

  

  from copr_common.enums import EnumType

  from copr_common.rpm import splitFilename

- from coprs import constants

  from coprs import app

  

  
@@ -98,8 +97,8 @@ 

          self.query = query

          self.total_count = total_count

          self.page = page

-         self.per_page = per_page_override or constants.ITEMS_PER_PAGE

-         self.urls_count = urls_count_override or constants.PAGES_URLS_COUNT

+         self.per_page = per_page_override or app.config["ITEMS_PER_PAGE"]

+         self.urls_count = urls_count_override or app.config["PAGES_URLS_COUNT"]

          self.additional_params = additional_params or dict()

  

          self._sliced_query = None

@@ -23,7 +23,6 @@ 

  from coprs import db

  from coprs import models

  from coprs import helpers

- from coprs.constants import DEFAULT_BUILD_TIMEOUT, MAX_BUILD_TIMEOUT

  from coprs.exceptions import MalformedArgumentException, ActionInProgressException, InsufficientRightsException, \

                               UnrepeatableBuildException, RequestCannotBeExecuted, DuplicateException

  
@@ -288,7 +287,7 @@ 

                      models.BuildChroot.status == StatusEnum("pending"),

                      and_(

                          models.BuildChroot.status == StatusEnum("running"),

-                         models.BuildChroot.started_on < int(time.time() - 1.1 * MAX_BUILD_TIMEOUT),

+                         models.BuildChroot.started_on < int(time.time() - 1.1 * app.config["MAX_BUILD_TIMEOUT"]),

                          models.BuildChroot.ended_on.is_(None)

                      )

                  ))
@@ -621,7 +620,7 @@ 

          )

  

          if timeout:

-             build.timeout = timeout or DEFAULT_BUILD_TIMEOUT

+             build.timeout = timeout or app.config["DEFAULT_BUILD_TIMEOUT"]

  

          db.session.add(build)

  
@@ -663,7 +662,7 @@ 

              source_json=source_json,

              submitted_on=int(time.time()),

              enable_net=package.copr.build_enable_net,

-             timeout=DEFAULT_BUILD_TIMEOUT,

+             timeout=app.config["DEFAULT_BUILD_TIMEOUT"],

              copr_dir=copr_dir,

              update_callback=update_callback,

              scm_object_type=scm_object_type,

@@ -17,7 +17,6 @@ 

  from flask import url_for

  

  from copr_common.enums import ActionTypeEnum, BackendResultEnum, FailTypeEnum, ModuleStatusEnum, StatusEnum

- from coprs import constants

  from coprs import db

  from coprs import helpers

  from coprs import app
@@ -828,9 +827,9 @@ 

      # directory name on backend with the srpm build results

      result_dir = db.Column(db.Text, default='', server_default='', nullable=False)

      # memory requirements for backend builder

-     memory_reqs = db.Column(db.Integer, default=constants.DEFAULT_BUILD_MEMORY)

+     memory_reqs = db.Column(db.Integer, default=app.config["DEFAULT_BUILD_MEMORY"])

      # maximum allowed time of build, build will fail if exceeded

-     timeout = db.Column(db.Integer, default=constants.DEFAULT_BUILD_TIMEOUT)

+     timeout = db.Column(db.Integer, default=app.config["DEFAULT_BUILD_TIMEOUT"])

      # enable networking during a build process

      enable_net = db.Column(db.Boolean, default=False,

                             server_default="0", nullable=False)

@@ -6,7 +6,7 @@ 

  

  from sqlalchemy.orm.exc import NoResultFound

  from coprs import models

- from coprs.constants import MAX_BUILD_TIMEOUT

+ from coprs import app

  

  from copr_common.enums import StatusEnum

  from coprs.exceptions import ActionInProgressException, InsufficientRightsException, MalformedArgumentException
@@ -116,12 +116,12 @@ 

          for build_chroots in [self.b1_bc, self.b2_bc]:

              for build_chroot in build_chroots:

                  build_chroot.status = StatusEnum("running")

-                 build_chroot.started_on = time_now - 2 * MAX_BUILD_TIMEOUT

+                 build_chroot.started_on = time_now - 2 * app.config["MAX_BUILD_TIMEOUT"]

                  build_chroot.ended_on = None

          for build_chroots in [self.b3_bc, self.b4_bc]:

              for build_chroot in build_chroots:

                  build_chroot.status = StatusEnum("failed")

-                 build_chroot.started_on = time_now - 2 * MAX_BUILD_TIMEOUT

+                 build_chroot.started_on = time_now - 2 * app.config["MAX_BUILD_TIMEOUT"]

                  build_chroot.ended_on = None

  

          self.db.session.commit()

no initial comment

Nice PR, thanks. Can you please document the important config options in our example config?

And testsuite needs fix.

rebased onto 5529dd8944b16288a593d825c7fcb4458d5db266

4 years ago

rebased onto 29d438fd05c312066dd1e312bcd496a2a1831144

4 years ago

Testsuite seems broken.

rebased onto 4995fec66b7fbb184695722881fcc678e00767eb

4 years ago

rebased onto 43070133fe114536ac81eacc0958a250cfcf49fe

4 years ago

rebased onto 23a4402

4 years ago

Pull-Request has been merged by praiskup

4 years ago