public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-08-01 23:40 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 23:40 UTC (permalink / raw
  To: gentoo-commits

commit:     6c76e75fd3b23be336bdf21c0f071d6574132a4c
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Aug  1 23:40:00 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Aug  1 23:40:00 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=6c76e75f

fix profile json export

---
 server/profile.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/server/profile.py b/server/profile.py
index 798c90d..4e4f65f 100644
--- a/server/profile.py
+++ b/server/profile.py
@@ -9,6 +9,6 @@ class Profile(object):
         for t in profile_count:
             profile_data[t['PROFILE']] = {'HOSTS':t['HOSTS']}
         if helpers.is_json_request():
-            helpers.serialize(profile_data)
+            return helpers.serialize(profile_data)
         else:
             return render.profile(profile_data)



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-08-06 20:04 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-08-06 20:04 UTC (permalink / raw
  To: gentoo-commits

commit:     75c4e361f2ad4df368c319b58494a566a6260a84
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sat Aug  6 20:04:08 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sat Aug  6 20:04:08 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=75c4e361

mv profile.py to profiles.py due to name conflicts

---
 server/app.py                      |    2 +-
 server/{profile.py => profiles.py} |    0
 2 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/server/app.py b/server/app.py
index 4f97f30..f587c46 100755
--- a/server/app.py
+++ b/server/app.py
@@ -5,7 +5,7 @@ import config
 from config import render
 from index import Index
 from arch import Arch
-from profile import Profile
+from profiles import Profile
 from mirror import Mirror
 from feature import Feature
 from kwd import Keyword

diff --git a/server/profile.py b/server/profiles.py
similarity index 100%
rename from server/profile.py
rename to server/profiles.py



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-08-01 23:15 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 23:15 UTC (permalink / raw
  To: gentoo-commits

commit:     ce8c56f9018af95fb2a2918d9c4ed3f647871070
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Aug  1 23:14:44 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Aug  1 23:14:44 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=ce8c56f9

export use data to json

---
 server/use.py |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/server/use.py b/server/use.py
index 13068ec..4318ee8 100644
--- a/server/use.py
+++ b/server/use.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Use(object):
@@ -8,7 +9,10 @@ class Use(object):
             use_query = db.query('SELECT COUNT(DISTINCT UKEY) AS USE_COUNT FROM USEFLAGS')
             use_tuple = use_query[0]
             use_data = {'USE_COUNT':use_tuple['USE_COUNT']}
-            return render.use(use_data)
+            if helpers.is_json_request():
+                return helpers.serialize(use_data)
+            else:
+                return render.use(use_data)
 
         elif l == 1:
             global_use_query = db.query('SELECT COUNT(DISTINCT UUID) AS GLOBAL_COUNT\
@@ -39,8 +43,10 @@ class Use(object):
                     'MINUS_COUNT':minus_use_tuple['MINUS_COUNT'],
                     'UNSET_COUNT':unset_use_tuple['UNSET_COUNT']
                     }
-
-            return render.use_useflag(args[0], use_data)
+            if helpers.is_json_request():
+                return helpers.serialize(use_data)
+            else:
+                return render.use_useflag(args[0], use_data)
 
         else:
             return config.internalerror()



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-08-01 23:04 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 23:04 UTC (permalink / raw
  To: gentoo-commits

commit:     11e802b2f8d6cf1e6a8f460113c6a729a306d90a
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Aug  1 23:03:25 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Aug  1 23:03:25 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=11e802b2

allow exporting to json from search in server

---
 server/search.py |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/server/search.py b/server/search.py
index 7ddcded..d3d35d5 100644
--- a/server/search.py
+++ b/server/search.py
@@ -35,7 +35,16 @@ class Search(object):
             'min_hosts':self.min_hosts,
             'max_hosts':self.max_hosts})
         if helpers.is_json_request():
-            return helpers.serialize(search_tuples)
+            search_list = list()
+            for tuple in search_tuples:
+                search_list.append({
+                    'CAT': tuple['CAT'],
+                    'PKG': tuple['PKG'],
+                    'VER': tuple['VER'],
+                    'REPO': tuple['REPO'],
+                    'HOSTS': tuple['HOSTS']
+                    })
+            return helpers.serialize(search_list)
         else:
             return render.search(search_tuples)
 



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-07-25 12:35 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-07-25 12:35 UTC (permalink / raw
  To: gentoo-commits

commit:     3c459b75e6d5c193fda884068fb749c1b99c6e32
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Jul 25 12:34:52 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Jul 25 12:34:52 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=3c459b75

export json from server

---
 server/arch.py    |    6 +++++-
 server/feature.py |    6 +++++-
 server/helpers.py |   12 ++++++++++++
 server/host.py    |    5 ++++-
 server/kwd.py     |    6 +++++-
 server/lang.py    |    6 +++++-
 server/mirror.py  |    6 +++++-
 server/package.py |   20 ++++++++++++++++----
 server/profile.py |    6 +++++-
 server/repo.py    |    6 +++++-
 server/search.py  |    6 +++++-
 11 files changed, 72 insertions(+), 13 deletions(-)

diff --git a/server/arch.py b/server/arch.py
index 8b9ef99..20dde69 100644
--- a/server/arch.py
+++ b/server/arch.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Arch(object):
@@ -7,4 +8,7 @@ class Arch(object):
         arch_data = dict()
         for t in arch_count:
             arch_data[t['ARCH']] = {'HOSTS':t['HOSTS']}
-        return render.arch(arch_data)
+        if helpers.is_json_request():
+            return helpers.serialize(arch_data)
+        else:
+            return render.arch(arch_data)

diff --git a/server/feature.py b/server/feature.py
index d7674f7..1ea1c36 100644
--- a/server/feature.py
+++ b/server/feature.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Feature(object):
@@ -7,4 +8,7 @@ class Feature(object):
         feature_data = dict()
         for t in feature_count:
             feature_data[t['FEATURE']] = {'HOSTS':t['HOSTS']}
-        return render.feature(feature_data)
+        if helpers.is_json_request():
+            return helpers.serialize(feature_data)
+        else:
+            return render.feature(feature_data)

diff --git a/server/helpers.py b/server/helpers.py
index 28d15a2..a5977be 100644
--- a/server/helpers.py
+++ b/server/helpers.py
@@ -1,4 +1,6 @@
 
+import web
+import json
 import uuid
 import re
 from portage.versions import catpkgsplit
@@ -106,3 +108,13 @@ def get_rkey(db, repo):
     else:
         rkey = db.insert('REPOSITORIES', REPO=repo)
     return rkey
+
+def is_json_request():
+    return web.ctx.environ['HTTP_ACCEPT'].find('json') != -1
+
+def serialize(object, human=True):
+    if human:
+        indent = 2
+    else:
+        indent = None
+    return json.JSONEncoder(indent=indent).encode(object)

diff --git a/server/host.py b/server/host.py
index 6d1f6f3..fab706c 100644
--- a/server/host.py
+++ b/server/host.py
@@ -55,7 +55,10 @@ class Host(object):
             cpv = p['CAT'] + '/' + p['PKG'] + '-' + p['VER']
             host_data['PACKAGES'][cpv] = dict()
 
-        return render.host(host_data)
+        if helpers.is_json_request():
+            return helpers.serialize(host_data)
+        else:
+            return render.host(host_data)
 
     def POST(self, str_uuid):
         post_data = json.JSONDecoder().decode(web.data())

diff --git a/server/kwd.py b/server/kwd.py
index 6cef893..b8c50cd 100644
--- a/server/kwd.py
+++ b/server/kwd.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Keyword(object):
@@ -7,4 +8,7 @@ class Keyword(object):
         keyword_data = dict()
         for t in keyword_count:
             keyword_data[t['KEYWORD']] = {'HOSTS':t['HOSTS'], 'PACKAGES':t['PACKAGES']}
-        return render.keyword(keyword_data)
+        if helpers.is_json_request():
+            return helpers.serialize(keyword_data)
+        else:
+            return render.keyword(keyword_data)

diff --git a/server/lang.py b/server/lang.py
index e8c2d90..de6c625 100644
--- a/server/lang.py
+++ b/server/lang.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Lang(object):
@@ -7,4 +8,7 @@ class Lang(object):
         lang_data = dict()
         for t in lang_count:
             lang_data[t['LANG']] = {'HOSTS':t['HOSTS']}
-        return render.lang(lang_data)
+        if helpers.is_json_request():
+            return helpers.serialize(lang_data)
+        else:
+            return render.lang(lang_data)

diff --git a/server/mirror.py b/server/mirror.py
index c8b44c2..e701404 100644
--- a/server/mirror.py
+++ b/server/mirror.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Mirror(object):
@@ -7,4 +8,7 @@ class Mirror(object):
         mirror_data = dict()
         for t in mirror_count:
             mirror_data[t['MIRROR']] = {'HOSTS':t['HOSTS']}
-        return render.mirror(mirror_data)
+        if helpers.is_json_request():
+            return helpers.serialize(mirror_data)
+        else:
+            return render.mirror(mirror_data)

diff --git a/server/package.py b/server/package.py
index adc2d94..aa037e5 100644
--- a/server/package.py
+++ b/server/package.py
@@ -38,7 +38,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_C':self.__top(top)
                 }
-        return render.package(p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package(p_data)
 
     def __GET_C(self, top, cat):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT, \
@@ -54,7 +57,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_CP':self.__top(top, cat)
                 }
-        return render.package_c(cat, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_c(cat, p_data)
 
     def __GET_CP(self, top, cat, pkg):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT, \
@@ -68,7 +74,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_CPV':self.__top(top, cat, pkg)
                 }
-        return render.package_cp(cat, pkg, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_cp(cat, pkg, p_data)
 
     def __GET_CPV(self, cat, pkg, ver):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT\
@@ -79,7 +88,10 @@ class Package(object):
         p_data = {
                 'HOST_COUNT':p_tuple['HOST_COUNT'],
                 }
-        return render.package_cpv(cat, pkg, ver, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_cpv(cat, pkg, ver, p_data)
 
     def __top(self, count, *args):
         t_list = list()

diff --git a/server/profile.py b/server/profile.py
index c0a0fc5..798c90d 100644
--- a/server/profile.py
+++ b/server/profile.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Profile(object):
@@ -7,4 +8,7 @@ class Profile(object):
         profile_data = dict()
         for t in profile_count:
             profile_data[t['PROFILE']] = {'HOSTS':t['HOSTS']}
-        return render.profile(profile_data)
+        if helpers.is_json_request():
+            helpers.serialize(profile_data)
+        else:
+            return render.profile(profile_data)

diff --git a/server/repo.py b/server/repo.py
index 5db221a..7be99ac 100644
--- a/server/repo.py
+++ b/server/repo.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Repo(object):
@@ -7,4 +8,7 @@ class Repo(object):
         repo_data = dict()
         for t in repo_count:
             repo_data[t['REPO']] = {'HOSTS':t['HOSTS'], 'PACKAGES':t['PACKAGES']}
-        return render.repo(repo_data)
+        if helpers.is_json_request():
+            return helpers.serialize(repo_data)
+        else:
+            return render.repo(repo_data)

diff --git a/server/search.py b/server/search.py
index 69170ac..7ddcded 100644
--- a/server/search.py
+++ b/server/search.py
@@ -1,6 +1,7 @@
 
 import web
 import string
+import helpers
 from config import render, db
 
 what = ['CAT', 'PKG', 'VER', 'REPO', 'COUNT(DISTINCT UUID) AS HOSTS']
@@ -33,7 +34,10 @@ class Search(object):
             'repo':self.args.repo,
             'min_hosts':self.min_hosts,
             'max_hosts':self.max_hosts})
-        return render.search(search_tuples)
+        if helpers.is_json_request():
+            return helpers.serialize(search_tuples)
+        else:
+            return render.search(search_tuples)
 
     def _build_query(self, where, having):
         sep = ' '



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-07-11  8:26 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-07-11  8:26 UTC (permalink / raw
  To: gentoo-commits

commit:     8e10510c42fd9f64d19278e3407add6877ee5b22
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Jul 11 08:26:12 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Jul 11 08:26:12 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=8e10510c

fixes for deploying on vulture

---
 server/app.py    |    1 +
 server/config.py |    4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/server/app.py b/server/app.py
index f2948e8..3d31d73 100755
--- a/server/app.py
+++ b/server/app.py
@@ -16,6 +16,7 @@ from package import Package
 from host import Host
 
 urls = (
+        r'', 'Index',
         r'/', 'Index',
         r'/arch', 'Arch',
         r'/profile', 'Profile',

diff --git a/server/config.py b/server/config.py
index 6cb9ec3..a7b0f26 100644
--- a/server/config.py
+++ b/server/config.py
@@ -5,8 +5,8 @@ import web
 
 db = web.database(
         dbn='mysql',
-        user='gentoo',
-        pw='gentoo',
+        user='gentoostats',
+        pw='poicyurp3ZaddajGhaf',
         db='gentoostats'
         )
 



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-06-30 10:28 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-06-30 10:28 UTC (permalink / raw
  To: gentoo-commits

commit:     a0a5dbd8914b48d470d6feb8968e8ec5446c39a2
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Thu Jun 30 10:27:13 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Thu Jun 30 10:27:13 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=a0a5dbd8

call app.py from separate wsgi handler

---
 server/{main.py => app.py} |    1 -
 server/config.py           |    5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/server/__init__.py b/server/__init__.py
new file mode 100644
index 0000000..e69de29

diff --git a/server/main.py b/server/app.py
similarity index 99%
rename from server/main.py
rename to server/app.py
index 9eb74fa..89ade62 100755
--- a/server/main.py
+++ b/server/app.py
@@ -18,4 +18,3 @@ app.internalerror = config.internalerror
 
 if __name__ == "__main__":
   app.run()
-

diff --git a/server/config.py b/server/config.py
index f4e74cd..ae73fc4 100644
--- a/server/config.py
+++ b/server/config.py
@@ -1,4 +1,6 @@
 
+import os
+import sys
 import web
 
 db = web.database(
@@ -8,7 +10,8 @@ db = web.database(
 	db='gentoostats'
 	)
 
-render = web.template.render('templates/', base='layout')
+rootdir = os.path.abspath(os.path.dirname(__file__)) + '/'
+render = web.template.render(rootdir + 'templates/', base='layout')
 
 def notfound():
   return web.notfound(render.error_404())



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-06-15 20:55 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-06-15 20:55 UTC (permalink / raw
  To: gentoo-commits

commit:     d7869829c9591d6f3e8dddc05a97cdcdfc1975f2
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Wed Jun 15 20:55:03 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Wed Jun 15 20:55:03 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=d7869829

fix index page

---
 server/index.py |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/index.py b/server/index.py
index 038ae51..e5866a2 100644
--- a/server/index.py
+++ b/server/index.py
@@ -3,6 +3,6 @@ from config import render, db
 
 class Index(object):
   def GET(self):
-  	hosts = db.select('hosts', what='count(uuid) as count')
-	count = hosts[0].count
+  	hosts = db.select('HOSTS', what='COUNT(UUID) as COUNT')
+	count = hosts[0]['COUNT']
 	return render.index(count)



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-05-11 23:52 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-05-11 23:52 UTC (permalink / raw
  To: gentoo-commits

commit:     7f427fb2c0b03fbf5c78bd9fb9fd3a7d41ce3543
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Wed May 11 22:50:29 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Wed May 11 22:50:29 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=7f427fb2

handle favicon with a 404 error

---
 server/main.py |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/server/main.py b/server/main.py
index 92e24ce..dbfd3ad 100755
--- a/server/main.py
+++ b/server/main.py
@@ -25,6 +25,8 @@ class index:
 
 class stats:
   def GET(self, uuid):
+    if uuid == 'favicon.ico':
+      return notfound()
     hosts = db.select('hosts', vars=locals(), where="uuid=$uuid")
     env = db.select('env', vars=locals(), where="uuid=$uuid")
     return render.stats(uuid, hosts, env)



^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: server/
@ 2011-05-11 22:42 Vikraman Choudhury
  0 siblings, 0 replies; 10+ messages in thread
From: Vikraman Choudhury @ 2011-05-11 22:42 UTC (permalink / raw
  To: gentoo-commits

commit:     7366313b044fddd519a845f555fc8b2d5bd780f5
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Wed May 11 22:41:43 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Wed May 11 22:41:43 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=7366313b

fix duplicate tuples in packages

---
 server/post.py |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/server/post.py b/server/post.py
index 4cd0712..b9eb46c 100644
--- a/server/post.py
+++ b/server/post.py
@@ -48,9 +48,12 @@ def handler(uuid, data, db):
   pkg = data['PACKAGES']
   for cpv in pkg.keys():
     t = pkgsplit(cpv)
-    db.insert('packages', cat=t['cat'], pkg=t['pn'], ver=t['ver'])
-    pkey = db.select('packages', vars={'cat':t['cat'], 'pkg':t['pn'], 'ver':t['ver']},
-	where='cat=$cat and pkg=$pkg and ver=$ver', what='pkey')[0].pkey
+    s = db.select('packages', vars={'cat':t['cat'], 'pkg':t['pn'], 'ver':t['ver']},
+	where='cat=$cat and pkg=$pkg and ver=$ver')
+    if len(s) == 0:
+      pkey = db.insert('packages', cat=t['cat'], pkg=t['pn'], ver=t['ver'])
+    else:
+      pkey = s[0].pkey
     for use in pkg[cpv]:
       db.insert('useflags', uuid=uuid, useflag=use, pkey=str(pkey))
   



^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-08-06 20:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-01 23:40 [gentoo-commits] proj/gentoostats:master commit in: server/ Vikraman Choudhury
  -- strict thread matches above, loose matches on Subject: below --
2011-08-06 20:04 Vikraman Choudhury
2011-08-01 23:15 Vikraman Choudhury
2011-08-01 23:04 Vikraman Choudhury
2011-07-25 12:35 Vikraman Choudhury
2011-07-11  8:26 Vikraman Choudhury
2011-06-30 10:28 Vikraman Choudhury
2011-06-15 20:55 Vikraman Choudhury
2011-05-11 23:52 Vikraman Choudhury
2011-05-11 22:42 Vikraman Choudhury

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox