aboutsummaryrefslogtreecommitdiffstats
path: root/rrs/models.py
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-07-09 16:47:47 -0500
committerPaul Eggleton <paul.eggleton@linux.intel.com>2018-05-04 23:57:52 +1200
commitac50ffd82e82074e53e598c15cf01a30e4a120c9 (patch)
treed7ede2162c62d32ee7a474bdf4c763cc569ed828 /rrs/models.py
parentb833550285ec58a54131ae8c8adb21104c7b35fa (diff)
downloadopenembedded-core-contrib-ac50ffd82e82074e53e598c15cf01a30e4a120c9.tar.gz
models.py: Code cleanup
Cleaned up the class Raw to have better readability. Also added docstring to methods in this class. Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Diffstat (limited to 'rrs/models.py')
-rw-r--r--rrs/models.py176
1 files changed, 99 insertions, 77 deletions
diff --git a/rrs/models.py b/rrs/models.py
index 166989dc39..144ca16d8a 100644
--- a/rrs/models.py
+++ b/rrs/models.py
@@ -371,55 +371,57 @@ class RecipeUpgrade(models.Model):
self.commit_date)
class Raw():
+ """ Raw SQL call to improve performance
+
+ Table abbrevations:
+ re: Recipe
+ ma: Maintainer
+ reup: Recipe Upstream
+ reupg: Recipe Ugrade
+ rema: Recipe Maintainer
+ remahi: Recipe Maintainer History
+ """
@staticmethod
- def get_remahi_by_end_date(date):
+ def get_re_all():
+ """ Get all Recipes """
cur = connection.cursor()
-
- cur.execute("""SELECT id
- FROM rrs_RecipeMaintainerHistory
- WHERE date <= %s
- ORDER BY date DESC
- LIMIT 1;
- """, [str(date)])
-
- ret = cur.fetchone()
-
- if not ret:
- cur.execute("""SELECT id
- FROM rrs_RecipeMaintainerHistory
- ORDER BY date
- LIMIT 1;""")
- ret = cur.fetchone()
-
- return ret
+ cur.execute("""SELECT id, pn, pv, summary
+ FROM layerindex_Recipe;
+ """)
+ return Raw.dictfetchall(cur)
@staticmethod
def get_re_by_mantainer_and_date(maintainer, date_id):
+ """ Get Recipes based on Maintainer and Recipe Maintainer History """
recipes = []
cur = connection.cursor()
cur.execute("""SELECT DISTINCT rema.recipe_id
- FROM rrs_RecipeMaintainer as rema
- INNER JOIN rrs_maintainer AS ma
- ON rema.maintainer_id = ma.id
- WHERE rema.history_id = %s AND ma.name = %s;
- """, [date_id, maintainer])
+ FROM rrs_RecipeMaintainer AS rema
+ INNER JOIN rrs_maintainer AS ma
+ ON rema.maintainer_id = ma.id
+ WHERE rema.history_id = %s
+ AND ma.name = %s;
+ """, [date_id, maintainer])
for re in cur.fetchall():
recipes.append(re[0])
return recipes
@staticmethod
- def get_reup_by_recipes_and_date(recipes_id, date_id=None):
+ def get_ma_by_recipes_and_date(recipes_id, date_id=None):
+ """ Get Maintainer based on Recipes and Recipe Upstream History """
stats = []
recipes = str(recipes_id).strip('[]')
if date_id:
- qry = """SELECT recipe_id, status, no_update_reason, version
- FROM rrs_RecipeUpstream"""
- qry += "\nWHERE history_id = '%s' AND" % str(date_id)
- qry += "\nrecipe_id IN (%s)\n" % recipes
+ qry = """SELECT rema.recipe_id, ma.name
+ FROM rrs_RecipeMaintainer AS rema
+ INNER JOIN rrs_Maintainer AS ma
+ ON rema.maintainer_id = ma.id"""
+ qry += "\nWHERE rema.history_id = '%s'" % str(date_id)
+ qry += "\nAND rema.recipe_id IN (%s);" % recipes
cur = connection.cursor()
cur.execute(qry)
stats = Raw.dictfetchall(cur)
@@ -427,17 +429,16 @@ class Raw():
return stats
@staticmethod
- def get_ma_by_recipes_and_date(recipes_id, date_id=None):
+ def get_reup_by_recipes_and_date(recipes_id, date_id=None):
+ """ Get Recipe Upstream based on Recipes and Recipe Upstream History """
stats = []
recipes = str(recipes_id).strip('[]')
if date_id:
- qry = """SELECT rema.recipe_id, ma.name
- FROM rrs_RecipeMaintainer AS rema
- INNER JOIN rrs_Maintainer AS ma
- ON rema.maintainer_id = ma.id"""
- qry += "\nWHERE rema.history_id = '%s' AND" % str(date_id)
- qry += "\nrema.recipe_id IN (%s)\n" % recipes
+ qry = """SELECT recipe_id, status, no_update_reason, version
+ FROM rrs_RecipeUpstream"""
+ qry += "\nWHERE history_id = '%s'" % str(date_id)
+ qry += "\nAND recipe_id IN (%s);" % recipes
cur = connection.cursor()
cur.execute(qry)
stats = Raw.dictfetchall(cur)
@@ -445,68 +446,65 @@ class Raw():
return stats
@staticmethod
- def get_re_all():
- cur = connection.cursor()
- cur.execute("""SELECT id, pn, pv, summary
- FROM layerindex_recipe""")
- return Raw.dictfetchall(cur)
-
- @staticmethod
- def get_reupg_by_date(date):
- cur = connection.cursor()
- cur.execute("""SELECT re.id, re.pn, re.summary, te.version, rownum FROM (
- SELECT recipe_id, version, commit_date,
- ROW_NUMBER() OVER(
- PARTITION BY recipe_id
- ORDER BY commit_date DESC
- ) AS rownum
- FROM rrs_RecipeUpgrade
- WHERE commit_date <= %s) AS te
- INNER JOIN layerindex_Recipe AS re
- ON te.recipe_id = re.id
- WHERE rownum = 1
- ORDER BY re.pn;
- """, [date])
- return Raw.dictfetchall(cur)
-
- @staticmethod
def get_reup_by_last_updated(date):
+ """ Get last time the Recipes were upgraded """
cur = connection.cursor()
cur.execute("""SELECT te.recipe_id, te.status, te.date, te.rownum FROM(
- SELECT recipe_id, status, date, ROW_NUMBER() OVER(
- PARTITION BY recipe_id
- ORDER BY date DESC
- ) AS rownum
- FROM rrs_RecipeUpstream
- WHERE status = 'Y'
- AND date <= %s) AS te
- WHERE te.rownum = 1;
- """, [date])
+ SELECT recipe_id, status, date, ROW_NUMBER() OVER(
+ PARTITION BY recipe_id
+ ORDER BY date DESC
+ ) AS rownum
+ FROM rrs_RecipeUpstream
+ WHERE status = 'Y'
+ AND date <= %s) AS te
+ WHERE te.rownum = 1;
+ """, [date])
return Raw.dictfetchall(cur)
@staticmethod
def get_reup_by_date(date_id):
+ """ Get Recipes not up to date based on Recipe Upstream History """
cur = connection.cursor()
cur.execute("""SELECT DISTINCT recipe_id
- FROM rrs_RecipeUpstream
- WHERE status = 'N'
- AND history_id = %s
+ FROM rrs_RecipeUpstream
+ WHERE status = 'N'
+ AND history_id = %s
""", [date_id])
return [i[0] for i in cur.fetchall()]
@staticmethod
+ def get_reupg_by_date(date):
+ """ Get info for Recipes for the milestone """
+ cur = connection.cursor()
+ cur.execute("""SELECT re.id, re.pn, re.summary, te.version, rownum FROM (
+ SELECT recipe_id, version, commit_date, ROW_NUMBER() OVER(
+ PARTITION BY recipe_id
+ ORDER BY commit_date DESC
+ ) AS rownum
+ FROM rrs_RecipeUpgrade
+ WHERE commit_date <= %s) AS te
+ INNER JOIN layerindex_Recipe AS re
+ ON te.recipe_id = re.id
+ WHERE rownum = 1
+ ORDER BY re.pn;
+ """, [date])
+ return Raw.dictfetchall(cur)
+
+ @staticmethod
def get_reupg_by_dates(start_date, end_date):
+ """ Get Recipe Upgrade for the milestone """
cur = connection.cursor()
cur.execute("""SELECT id, recipe_id, maintainer_id, author_date, commit_date
- FROM rrs_recipeupgrade
- WHERE commit_date >= %s
- AND commit_date <= %s
- ORDER BY commit_date DESC;
+ FROM rrs_RecipeUpgrade
+ WHERE commit_date >= %s
+ AND commit_date <= %s
+ ORDER BY commit_date DESC;
""", [start_date, end_date])
return Raw.dictfetchall(cur)
@staticmethod
def get_reupg_by_dates_and_recipes(start_date, end_date, recipes_id):
+ """ Get Recipe Upgrade for the milestone based on Recipes """
recipes = str(recipes_id).strip('[]')
cur = connection.cursor()
@@ -519,6 +517,30 @@ class Raw():
return Raw.dictfetchall(cur)
@staticmethod
+ def get_remahi_by_end_date(date):
+ """ Get the latest Recipe Maintainer History for the milestone """
+ cur = connection.cursor()
+
+ cur.execute("""SELECT id
+ FROM rrs_RecipeMaintainerHistory
+ WHERE date <= %s
+ ORDER BY date DESC
+ LIMIT 1;
+ """, [str(date)])
+
+ ret = cur.fetchone()
+
+ if not ret:
+ cur.execute("""SELECT id
+ FROM rrs_RecipeMaintainerHistory
+ ORDER BY date
+ LIMIT 1;
+ """)
+ ret = cur.fetchone()
+
+ return ret
+
+ @staticmethod
def dictfetchall(cursor):
"Returns all rows from a cursor as a dict"
desc = cursor.description