* [gentoo-commits] proj/gentoostats:master commit in: client/bin/, client/
@ 2011-04-30 4:24 Vikraman Choudhury
0 siblings, 0 replies; 4+ messages in thread
From: Vikraman Choudhury @ 2011-04-30 4:24 UTC (permalink / raw
To: gentoo-commits
commit: 510345d1c7882c321f72b6d9e57966581cdafd3f
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sat Apr 30 04:23:44 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sat Apr 30 04:23:44 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=510345d1
added use flags
---
client/bin/client | 9 +++++++--
client/useflags.py | 7 +++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/client/bin/client b/client/bin/client
index bdc16c7..0720466 100755
--- a/client/bin/client
+++ b/client/bin/client
@@ -1,11 +1,16 @@
#!/usr/bin/env python
from packages import Packages
+from useflags import UseFlags
def main ():
p = Packages ()
- for cp in p.getInstalledCPs ():
- print cp
+ u = UseFlags ()
+ for cpv in p.getInstalledCPVs ():
+ print cpv,
+ for x in u.getUseFlags (cpv):
+ print x,
+ print
if __name__ == "__main__":
main ()
diff --git a/client/useflags.py b/client/useflags.py
new file mode 100644
index 0000000..40f453c
--- /dev/null
+++ b/client/useflags.py
@@ -0,0 +1,7 @@
+
+from gentoolkit.flag import *
+
+class UseFlags:
+
+ def getUseFlags (self, cpv):
+ return get_flags (cpv, True)[1]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/bin/, client/
@ 2011-05-01 9:51 Vikraman Choudhury
0 siblings, 0 replies; 4+ messages in thread
From: Vikraman Choudhury @ 2011-05-01 9:51 UTC (permalink / raw
To: gentoo-commits
commit: 40c723a7581cda09900368747bc705614c7a90eb
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sun May 1 09:50:22 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sun May 1 09:50:22 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=40c723a7
fixed code style
---
client/bin/client | 24 ++++++++++++------------
client/environment.py | 18 +++++++++---------
client/packages.py | 10 +++++-----
client/useflags.py | 8 ++++----
4 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/client/bin/client b/client/bin/client
index 26edcb4..7d649d1 100755
--- a/client/bin/client
+++ b/client/bin/client
@@ -4,20 +4,20 @@ from packages import Packages
from useflags import UseFlags
from environment import Environment
-def main ():
- p = Packages ()
- u = UseFlags ()
- for cpv in p.getInstalledCPVs ():
+def main():
+ p = Packages()
+ u = UseFlags()
+ for cpv in p.getInstalledCPVs():
print cpv,
- for x in u.getUseFlags (cpv):
+ for x in u.getUseFlags(cpv):
print x,
print
- e = Environment ()
- print e.getVar ('CFLAGS')
- print e.getVar ('CXXFLAGS')
- print e.getVar ('LDFLAGS')
- print e.getVar ('CHOST')
- print e.getVar ('FEATURES')
+ e = Environment()
+ print e.getVar('CFLAGS')
+ print e.getVar('CXXFLAGS')
+ print e.getVar('LDFLAGS')
+ print e.getVar('CHOST')
+ print e.getVar('FEATURES')
if __name__ == "__main__":
- main ()
+ main()
diff --git a/client/environment.py b/client/environment.py
index 5300bef..074c2d1 100644
--- a/client/environment.py
+++ b/client/environment.py
@@ -1,19 +1,19 @@
import logging
-from subprocess import *
+import subprocess
-class Environment:
+class Environment(object):
- def __init__ (self):
+ def __init__(self):
try:
- p = Popen (['emerge', '--info'], stdout=PIPE)
- self.out = p.stdout.readlines ()
+ p = subprocess.Popen(['emerge', '--info'], stdout=subprocess.PIPE)
+ self.out = p.stdout.readlines()
except OSError, e:
- fatal ('Cannot run emerge --info')
+ fatal('Cannot run emerge --info')
raise e
- def getVar (self, myvar):
+ def getVar(self, myvar):
for line in self.out:
- if line.startswith (myvar):
- return line.strip ()
+ if line.startswith(myvar):
+ return line.strip()
return ''
diff --git a/client/packages.py b/client/packages.py
index 5d41061..4e2bdcd 100644
--- a/client/packages.py
+++ b/client/packages.py
@@ -2,11 +2,11 @@
import logging
from dbapi import VARDB
-class Packages:
- def getInstalledCPs (self):
- installed_cps = sorted (VARDB.cp_all ())
+class Packages(object):
+ def getInstalledCPs(self):
+ installed_cps = sorted(VARDB.cp_all())
return installed_cps
- def getInstalledCPVs (self):
- installed_cpvs = sorted (VARDB.cpv_all ())
+ def getInstalledCPVs(self):
+ installed_cpvs = sorted(VARDB.cpv_all())
return installed_cpvs
diff --git a/client/useflags.py b/client/useflags.py
index 40f453c..1dbda1e 100644
--- a/client/useflags.py
+++ b/client/useflags.py
@@ -1,7 +1,7 @@
-from gentoolkit.flag import *
+from gentoolkit import flag
-class UseFlags:
+class UseFlags(object):
- def getUseFlags (self, cpv):
- return get_flags (cpv, True)[1]
+ def getUseFlags(self, cpv):
+ return flag.get_flags(cpv, True)[1]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/bin/, client/
@ 2011-05-02 14:32 Vikraman Choudhury
0 siblings, 0 replies; 4+ messages in thread
From: Vikraman Choudhury @ 2011-05-02 14:32 UTC (permalink / raw
To: gentoo-commits
commit: 5b654c655741caf0c032ad7626f69849b59a2c25
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon May 2 14:31:46 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon May 2 14:31:46 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=5b654c65
Use portage.settings instead of forking to emerge --info
---
client/bin/client | 7 ++-----
client/environment.py | 16 +++-------------
2 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/client/bin/client b/client/bin/client
index 7d649d1..c41de84 100755
--- a/client/bin/client
+++ b/client/bin/client
@@ -13,11 +13,8 @@ def main():
print x,
print
e = Environment()
- print e.getVar('CFLAGS')
- print e.getVar('CXXFLAGS')
- print e.getVar('LDFLAGS')
- print e.getVar('CHOST')
- print e.getVar('FEATURES')
+ for var in ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CHOST', 'FEATURES'):
+ print e.getVar(var)
if __name__ == "__main__":
main()
diff --git a/client/environment.py b/client/environment.py
index 074c2d1..07b942e 100644
--- a/client/environment.py
+++ b/client/environment.py
@@ -1,19 +1,9 @@
import logging
-import subprocess
+import portage
class Environment(object):
- def __init__(self):
- try:
- p = subprocess.Popen(['emerge', '--info'], stdout=subprocess.PIPE)
- self.out = p.stdout.readlines()
- except OSError, e:
- fatal('Cannot run emerge --info')
- raise e
-
def getVar(self, myvar):
- for line in self.out:
- if line.startswith(myvar):
- return line.strip()
- return ''
+ ret = portage.settings[myvar]
+ return ret
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/bin/, client/
@ 2011-06-05 8:40 Vikraman Choudhury
0 siblings, 0 replies; 4+ messages in thread
From: Vikraman Choudhury @ 2011-06-05 8:40 UTC (permalink / raw
To: gentoo-commits
commit: e5ff4157b6470cd665ab8d6f46a108e2714bdf1a
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sat Jun 4 18:22:09 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sat Jun 4 18:22:09 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=e5ff4157
rewrote client, added more fields
---
client/environment.py | 47 ++++++++++++++++++++++++++++++++++++-
client/metadata.py | 45 ++++++++++++++++++++++++++++++++++++
client/packages.py | 1 +
client/payload.py | 49 ++++++++++++++++++++++++++++++++++++++++
client/{bin/client => send.py} | 29 +++++------------------
client/useflags.py | 8 ------
6 files changed, 146 insertions(+), 33 deletions(-)
diff --git a/client/environment.py b/client/environment.py
index 07b942e..f03a76c 100644
--- a/client/environment.py
+++ b/client/environment.py
@@ -1,9 +1,52 @@
import logging
+import os
+import platform
import portage
+from _emerge.actions import relative_profile_path
class Environment(object):
+ def __init__(self):
+ self.portdir = portage.settings['PORTDIR']
+
def getVar(self, myvar):
- ret = portage.settings[myvar]
- return ret
+ return portage.settings[myvar]
+
+ def getPlatform(self):
+ return platform.platform(aliased=1)
+
+ def getLastSync(self):
+ lastsync = None
+ try:
+ lastsync = portage.grabfile(os.path.join(self.portdir, 'metadata', 'timestamp.chk'))
+ except portage.exception.PortageException:
+ pass
+ if lastsync is None:
+ return 'Unknown'
+ return lastsync[0]
+
+ def getProfile(self):
+ profilever = None
+ profile = portage.settings.profile_path
+ if profile:
+ profilever = relative_profile_path(self.portdir, profile)
+ if profilever is None:
+ try:
+ for parent in portage.grabfile(os.path.join(profile, 'parent')):
+ profilever = relative_profile_path(self.portdir,os.path.join(profile, parent))
+ if profilever is not None:
+ break
+ except portage.exception.PortageException:
+ pass
+
+ if profilever is None:
+ try:
+ profilever = '!' + os.readlink(profile)
+ except (OSError):
+ pass
+
+ if profilever is None:
+ profilever = 'Unknown'
+
+ return profilever
diff --git a/client/metadata.py b/client/metadata.py
new file mode 100644
index 0000000..0b6a751
--- /dev/null
+++ b/client/metadata.py
@@ -0,0 +1,45 @@
+
+import portage
+from dbapi import VARDB
+from gentoolkit.enalyze.lib import FlagAnalyzer
+from gentoolkit.enalyze.lib import KeywordAnalyser
+
+class Metadata(object):
+
+ def __init__(self, cpv):
+ self.repo, self.counter, self.build_time, self.size = VARDB.aux_get(cpv,['repository','COUNTER','BUILD_TIME','SIZE'])
+
+ system_use = portage.settings['USE'].split()
+ fa = FlagAnalyzer(system=system_use)
+ self.flags = fa.analyse_cpv(cpv)
+
+ arch = portage.settings['ARCH']
+ accept_keywords = portage.settings['ACCEPT_KEYWORDS'].split()
+ ka = KeywordAnalyser(arch=arch,accept_keywords=accept_keywords)
+ self.keyword = ka.get_inst_keyword_cpv(cpv)
+
+ def getPlusFlags(self):
+ return list(self.flags[0])
+
+ def getMinusFlags(self):
+ return list(self.flags[1])
+
+ def getUnsetFlags(self):
+ return list(self.flags[2])
+
+ def getKeyword(self):
+ return self.keyword
+
+ def getRepoName(self):
+ if self.repo:
+ return self.repo
+ return 'Unknown'
+
+ def getCounter(self):
+ return self.counter
+
+ def getBuildTime(self):
+ return self.build_time
+
+ def getSize(self):
+ return self.size
diff --git a/client/packages.py b/client/packages.py
index 73cdfc5..7f9ca35 100644
--- a/client/packages.py
+++ b/client/packages.py
@@ -1,5 +1,6 @@
import logging
+import portage
from dbapi import VARDB
class Packages(object):
diff --git a/client/payload.py b/client/payload.py
new file mode 100644
index 0000000..b888af9
--- /dev/null
+++ b/client/payload.py
@@ -0,0 +1,49 @@
+
+import pprint
+from environment import Environment
+from packages import Packages
+from metadata import Metadata
+
+class Payload(object):
+
+ def __init__(self):
+ self.payload = dict()
+ self.payload['PROTOCOL'] = 1
+ self.update()
+
+ def update(self):
+
+ env = Environment()
+ self.payload['PLATFORM'] = env.getPlatform()
+ self.payload['LASTSYNC'] = env.getLastSync()
+ self.payload['PROFILE'] = env.getProfile()
+
+ for var in ['ARCH','CFLAGS','CXXFLAGS','FFLAGS','LDFLAGS','MAKEOPTS']:
+ self.payload[var] = env.getVar(var)
+
+ for var in ['ACCEPT_KEYWORDS','LANG','GENTOO_MIRRORS','SYNC','FEATURES','USE']:
+ self.payload[var] = env.getVar(var).split()
+
+ self.payload['PACKAGES'] = dict()
+ for cpv in Packages().getInstalledCPVs():
+ m = Metadata(cpv)
+ p = dict()
+ p['REPO'] = m.getRepoName()
+ p['KEYWORD'] = m.getKeyword()
+ p['USE'] = dict()
+ p['USE']['PLUS'] = m.getPlusFlags()
+ p['USE']['MINUS'] = m.getMinusFlags()
+ p['USE']['UNSET'] = m.getUnsetFlags()
+ p['COUNTER'] = m.getCounter()
+ p['SIZE'] = m.getSize()
+ p['BUILD_TIME'] = m.getBuildTime()
+ self.payload['PACKAGES'][cpv] = p
+
+ def get(self):
+ return self.payload
+
+ def dump(self,human=False):
+ if human:
+ pprint.pprint(self.payload)
+ else:
+ print self.payload
diff --git a/client/bin/client b/client/send.py
similarity index 63%
rename from client/bin/client
rename to client/send.py
index f920250..8bf2bd2 100755
--- a/client/bin/client
+++ b/client/send.py
@@ -1,8 +1,6 @@
#!/usr/bin/env python
-from packages import Packages
-from useflags import UseFlags
-from environment import Environment
+from payload import Payload
import json
import urllib, httplib
@@ -14,24 +12,6 @@ def getAuthInfo():
}
return auth_info
-def getPostData():
- p = Packages()
- u = UseFlags()
- e = Environment()
-
- post_data = {}
- post_data['PROTOCOL'] = 1
- post_data['AUTH'] = getAuthInfo()
- for key in ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CHOST', 'FEATURES'):
- post_data[key] = e.getVar(key)
-
- packages = {}
- for cpv in p.getInstalledCPVs(sort=True):
- packages[cpv] = u.getUseFlags(cpv)
- post_data['PACKAGES'] = packages
-
- return post_data
-
def serialize(object, human=False):
if human:
indent = 2
@@ -42,8 +22,11 @@ def serialize(object, human=False):
return json.JSONEncoder(indent=indent, sort_keys=sort_keys).encode(object)
def main():
- post_body = serialize(getPostData(), human=True)
- print post_body
+ pl = Payload()
+ pl.dump(human=True)
+ post_data = pl.get()
+ post_data['AUTH'] = getAuthInfo()
+ post_body = serialize(post_data,human=True)
post_headers = {"Content-type": "application/json"}
myuuid = getAuthInfo()['UUID']
conn = httplib.HTTPConnection("127.0.0.1:8080")
diff --git a/client/useflags.py b/client/useflags.py
deleted file mode 100644
index 84a8dcf..0000000
--- a/client/useflags.py
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#TODO: Remove gentoolkit dependency
-from gentoolkit import flag
-
-class UseFlags(object):
-
- def getUseFlags(self, cpv):
- return flag.get_flags(cpv, True)[1]
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-06-05 8:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-05 8:40 [gentoo-commits] proj/gentoostats:master commit in: client/bin/, client/ Vikraman Choudhury
-- strict thread matches above, loose matches on Subject: below --
2011-05-02 14:32 Vikraman Choudhury
2011-05-01 9:51 Vikraman Choudhury
2011-04-30 4:24 Vikraman Choudhury
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox