Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit dde7ab043ba40d8957ee15e6da35956b7afbe29d
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Wed Aug 19 15:32:10 2015 +0200
[backend] comps.xml support: send `update comps` action after chroot updates
---------------------------------------------------------------
frontend/coprs_frontend/coprs/helpers.py | 1 +
.../coprs_frontend/coprs/logic/actions_logic.py | 24 +++++++++++++++++++-
frontend/coprs_frontend/coprs/logic/coprs_logic.py | 4 ++-
.../coprs/views/api_ns/api_general.py | 2 +-
.../coprs/views/coprs_ns/coprs_chroots.py | 2 +-
5 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/helpers.py
b/frontend/coprs_frontend/coprs/helpers.py
index b9a4c8d..c5d614f 100644
--- a/frontend/coprs_frontend/coprs/helpers.py
+++ b/frontend/coprs_frontend/coprs/helpers.py
@@ -64,6 +64,7 @@ class ActionTypeEnum(object):
"rename": 1,
"legal-flag": 2,
"createrepo": 3,
+ "update_comps": 4,
}
diff --git a/frontend/coprs_frontend/coprs/logic/actions_logic.py
b/frontend/coprs_frontend/coprs/logic/actions_logic.py
index 58f388c..8a5b92b 100644
--- a/frontend/coprs_frontend/coprs/logic/actions_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/actions_logic.py
@@ -101,7 +101,7 @@ class ActionsLogic(object):
"projectname": build.copr.name,
"chroots": chroots_to_delete
}
- # import ipdb; ipdb.set_trace()
+
if build.is_older_results_naming_used:
if build.src_pkg_name is None or build.src_pkg_name == "":
return
@@ -119,3 +119,25 @@ class ActionsLogic(object):
created_on=int(time.time())
)
db.session.add(action)
+
+ @classmethod
+ def send_update_comps(cls, chroot):
+ """ Schedules update comps.xml action
+
+ :type copr_chroot: models.CoprChroot
+ """
+
+ data_dict = {
+ "username": chroot.copr.owner.name,
+ "projectname": chroot.copr.name,
+ "chroot": chroot.name,
+ "comps_present": chroot.comps_zlib is not None,
+ }
+
+ action = models.Action(
+ action_type=helpers.ActionTypeEnum("update_comps"),
+ object_type="copr_chroot",
+ data=json.dumps(data_dict),
+ created_on=int(time.time())
+ )
+ db.session.add(action)
diff --git a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
index b041315..9ea19dc 100644
--- a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
@@ -375,11 +375,12 @@ class CoprChrootsLogic(object):
models.CoprChroot(copr=copr, mock_chroot=mock_chroot))
@classmethod
- def update_buildroot_pkgs(cls, copr_chroot, buildroot_pkgs, comps=None,
comps_name=None):
+ def update_chroot(cls, copr_chroot, buildroot_pkgs, comps=None, comps_name=None):
copr_chroot.buildroot_pkgs = buildroot_pkgs
if comps_name is not None:
copr_chroot.comps_zlib = comps
copr_chroot.comps_name = comps_name
+ ActionsLogic.send_update_comps(copr_chroot)
db.session.add(copr_chroot)
@classmethod
@@ -407,6 +408,7 @@ class CoprChrootsLogic(object):
def remove_comps(cls, copr_chroot):
copr_chroot.comps_name = None
copr_chroot.comps_zlib = None
+ ActionsLogic.send_update_comps(copr_chroot)
db.session.add(copr_chroot)
diff --git a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
index afee21e..2070ae2 100644
--- a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
+++ b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py
@@ -552,7 +552,7 @@ def copr_modify_chroot(username, coprname, chrootname):
output = {'output': 'notok', 'error': 'Invalid
request'}
httpcode = 500
else:
- coprs_logic.CoprChrootsLogic.update_buildroot_pkgs(chroot,
form.buildroot_pkgs.data)
+ coprs_logic.CoprChrootsLogic.update_chroot(chroot, form.buildroot_pkgs.data)
db.session.commit()
output = {'output': 'ok', 'buildroot_pkgs':
chroot.buildroot_pkgs}
diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_chroots.py
b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_chroots.py
index ad74907..73d0dab 100644
--- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_chroots.py
+++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_chroots.py
@@ -68,7 +68,7 @@ def chroot_update(username, coprname, chrootname):
comps_blob = compress(form.comps.data.stream.read())
comps_name = form.comps.data.filename
- coprs_logic.CoprChrootsLogic.update_buildroot_pkgs(
+ coprs_logic.CoprChrootsLogic.update_chroot(
chroot, form.buildroot_pkgs.data,
comps=comps_blob, comps_name=comps_name)