aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorVikraman Choudhury <vikraman.choudhury@gmail.com>2011-07-11 02:58:35 +0530
committerVikraman Choudhury <vikraman.choudhury@gmail.com>2011-07-11 02:58:35 +0530
commit1cb6b9cc00ad839c47453ba3b554df1fb8508508 (patch)
tree2b963f322ea3d66fa7c2071c3cfe14621c1ff10a /client
parentper useflag stats (diff)
downloadgentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.tar.gz
gentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.tar.bz2
gentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.zip
fix tabs
Diffstat (limited to 'client')
-rwxr-xr-xclient/gentoostats-send86
-rw-r--r--client/gentoostats/environment.py86
-rw-r--r--client/gentoostats/metadata.py54
-rw-r--r--client/gentoostats/packages.py20
-rw-r--r--client/gentoostats/payload.py92
-rw-r--r--client/setup.py20
6 files changed, 179 insertions, 179 deletions
diff --git a/client/gentoostats-send b/client/gentoostats-send
index 73d53a2..f2b7246 100755
--- a/client/gentoostats-send
+++ b/client/gentoostats-send
@@ -8,59 +8,59 @@ import urllib, httplib
from gentoostats.payload import Payload
def getAuthInfo(auth):
- config = ConfigParser.ConfigParser()
- if len(config.read(auth)) == 0:
- sys.stderr.write('Cannot read ' + auth)
- sys.exit(1)
+ config = ConfigParser.ConfigParser()
+ if len(config.read(auth)) == 0:
+ sys.stderr.write('Cannot read ' + auth)
+ sys.exit(1)
- try:
- uuid = config.get('AUTH', 'UUID')
- passwd = config.get('AUTH', 'PASSWD')
- auth_info = {'UUID' : uuid, 'PASSWD' : passwd}
- return auth_info
- except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
- sys.stderr.write('Malformed auth config')
- sys.exit(1)
+ try:
+ uuid = config.get('AUTH', 'UUID')
+ passwd = config.get('AUTH', 'PASSWD')
+ auth_info = {'UUID' : uuid, 'PASSWD' : passwd}
+ return auth_info
+ except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
+ sys.stderr.write('Malformed auth config')
+ sys.exit(1)
def serialize(object, human=False):
- if human:
- indent = 2
- sort_keys = True
- else:
- indent = None
- sort_keys = False
- return json.JSONEncoder(indent=indent, sort_keys=sort_keys).encode(object)
+ if human:
+ indent = 2
+ sort_keys = True
+ else:
+ indent = None
+ sort_keys = False
+ return json.JSONEncoder(indent=indent, sort_keys=sort_keys).encode(object)
def main():
- parser = argparse.ArgumentParser(description='Gentoostats client')
- parser.add_argument('-s', '--server', default='soc.dev.gentoo.org')
- parser.add_argument('-p', '--port', type = int, default=443)
- parser.add_argument('-u', '--url', default='/gentoostats')
- parser.add_argument('-a', '--auth', default='/etc/gentoostats/auth.cfg')
- parser.add_argument('-c', '--config', default='/etc/gentoostats/payload.cfg')
- args = vars(parser.parse_args())
+ parser = argparse.ArgumentParser(description='Gentoostats client')
+ parser.add_argument('-s', '--server', default='soc.dev.gentoo.org')
+ parser.add_argument('-p', '--port', type = int, default=443)
+ parser.add_argument('-u', '--url', default='/gentoostats')
+ parser.add_argument('-a', '--auth', default='/etc/gentoostats/auth.cfg')
+ parser.add_argument('-c', '--config', default='/etc/gentoostats/payload.cfg')
+ args = vars(parser.parse_args())
- pl = Payload(configfile=args['config'])
- pl.dump(human=True)
+ pl = Payload(configfile=args['config'])
+ pl.dump(human=True)
- post_data = pl.get()
- post_data['AUTH'] = getAuthInfo(auth=args['auth'])
+ post_data = pl.get()
+ post_data['AUTH'] = getAuthInfo(auth=args['auth'])
- post_url = args['url'].strip('/')
- if not len(post_url) == 0:
- post_url = '/' + post_url
- post_url = post_url + '/host/' + post_data['AUTH']['UUID']
+ post_url = args['url'].strip('/')
+ if not len(post_url) == 0:
+ post_url = '/' + post_url
+ post_url = post_url + '/host/' + post_data['AUTH']['UUID']
- post_body = serialize(post_data,human=True)
- post_headers = {'Content-type':'application/json'}
+ post_body = serialize(post_data,human=True)
+ post_headers = {'Content-type':'application/json'}
- conn = httplib.HTTPSConnection(args['server'] + ':' + str(args['port']))
- conn.request('POST', url=post_url, headers=post_headers, body=post_body)
+ conn = httplib.HTTPSConnection(args['server'] + ':' + str(args['port']))
+ conn.request('POST', url=post_url, headers=post_headers, body=post_body)
- #TODO: Handle exceptions
- response = conn.getresponse()
- print response.status, response.reason
- print 'Server response: ' + response.read()
+ #TODO: Handle exceptions
+ response = conn.getresponse()
+ print response.status, response.reason
+ print 'Server response: ' + response.read()
if __name__ == "__main__":
- main()
+ main()
diff --git a/client/gentoostats/environment.py b/client/gentoostats/environment.py
index f03a76c..2e92ca3 100644
--- a/client/gentoostats/environment.py
+++ b/client/gentoostats/environment.py
@@ -7,46 +7,46 @@ from _emerge.actions import relative_profile_path
class Environment(object):
- def __init__(self):
- self.portdir = portage.settings['PORTDIR']
-
- def getVar(self, myvar):
- 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
+ def __init__(self):
+ self.portdir = portage.settings['PORTDIR']
+
+ def getVar(self, myvar):
+ 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/gentoostats/metadata.py b/client/gentoostats/metadata.py
index 224fbfd..fb36a12 100644
--- a/client/gentoostats/metadata.py
+++ b/client/gentoostats/metadata.py
@@ -6,40 +6,40 @@ 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'])
+ 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)
+ 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)
+ 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 getPlusFlags(self):
+ return list(self.flags[0])
- def getMinusFlags(self):
- return list(self.flags[1])
+ def getMinusFlags(self):
+ return list(self.flags[1])
- def getUnsetFlags(self):
- return list(self.flags[2])
+ def getUnsetFlags(self):
+ return list(self.flags[2])
- def getKeyword(self):
- return self.keyword
+ def getKeyword(self):
+ return self.keyword
- def getRepoName(self):
- if self.repo:
- return self.repo
- return 'Unknown'
+ def getRepoName(self):
+ if self.repo:
+ return self.repo
+ return 'Unknown'
- def getCounter(self):
- return self.counter
+ def getCounter(self):
+ return self.counter
- def getBuildTime(self):
- return self.build_time
+ def getBuildTime(self):
+ return self.build_time
- def getSize(self):
- return self.size
+ def getSize(self):
+ return self.size
diff --git a/client/gentoostats/packages.py b/client/gentoostats/packages.py
index 2c9f48d..2d8d677 100644
--- a/client/gentoostats/packages.py
+++ b/client/gentoostats/packages.py
@@ -5,14 +5,14 @@ from gentoostats.dbapi import VARDB
class Packages(object):
- def getInstalledCPs(self, sort=False):
- installed_cps = VARDB.cp_all()
- if sort:
- return sorted(installed_cps)
- return installed_cps
+ def getInstalledCPs(self, sort=False):
+ installed_cps = VARDB.cp_all()
+ if sort:
+ return sorted(installed_cps)
+ return installed_cps
- def getInstalledCPVs(self,sort=False):
- installed_cpvs = VARDB.cpv_all()
- if sort:
- return installed_cpvs
- return installed_cpvs
+ def getInstalledCPVs(self,sort=False):
+ installed_cpvs = VARDB.cpv_all()
+ if sort:
+ return installed_cpvs
+ return installed_cpvs
diff --git a/client/gentoostats/payload.py b/client/gentoostats/payload.py
index 22f736e..40532c5 100644
--- a/client/gentoostats/payload.py
+++ b/client/gentoostats/payload.py
@@ -8,57 +8,57 @@ from gentoostats.metadata import Metadata
class Payload(object):
- def __init__(self, configfile):
- self.config = ConfigParser.ConfigParser()
- if len(self.config.read(configfile)) == 0:
- sys.stderr.write('Cannot read ' + configfile)
- sys.exit(1)
+ def __init__(self, configfile):
+ self.config = ConfigParser.ConfigParser()
+ if len(self.config.read(configfile)) == 0:
+ sys.stderr.write('Cannot read ' + configfile)
+ sys.exit(1)
- self.payload = dict()
- self.payload['PROTOCOL'] = 1
- self.update()
+ self.payload = dict()
+ self.payload['PROTOCOL'] = 1
+ self.update()
- def __masked(self, section, item):
- try:
- return not self.config.getboolean(section, item)
- except ConfigParser.NoOptionError:
- return False
- except (ConfigParser.NoSectionError, ValueError):
- sys.stderr.write('Malformed payload config')
- sys.exit(1)
+ def __masked(self, section, item):
+ try:
+ return not self.config.getboolean(section, item)
+ except ConfigParser.NoOptionError:
+ return False
+ except (ConfigParser.NoSectionError, ValueError):
+ sys.stderr.write('Malformed payload config')
+ sys.exit(1)
- def update(self):
- env = Environment()
- self.payload['PLATFORM'] = 'Unknown' if self.__masked('ENV','PLATFORM') else env.getPlatform()
- self.payload['LASTSYNC'] = 'Unknown' if self.__masked('ENV','LASTSYNC') else env.getLastSync()
- self.payload['PROFILE'] = 'Unknown' if self.__masked('ENV','PROFILE') else env.getProfile()
+ def update(self):
+ env = Environment()
+ self.payload['PLATFORM'] = 'Unknown' if self.__masked('ENV','PLATFORM') else env.getPlatform()
+ self.payload['LASTSYNC'] = 'Unknown' if self.__masked('ENV','LASTSYNC') else env.getLastSync()
+ self.payload['PROFILE'] = 'Unknown' if self.__masked('ENV','PROFILE') else env.getProfile()
- for var in ['ARCH','CHOST','CFLAGS','CXXFLAGS','FFLAGS','LDFLAGS','MAKEOPTS','SYNC']:
- self.payload[var] = None if self.__masked('ENV',var) else env.getVar(var)
+ for var in ['ARCH','CHOST','CFLAGS','CXXFLAGS','FFLAGS','LDFLAGS','MAKEOPTS','SYNC']:
+ self.payload[var] = None if self.__masked('ENV',var) else env.getVar(var)
- for var in ['ACCEPT_KEYWORDS','LANG','GENTOO_MIRRORS','FEATURES','USE']:
- self.payload[var] = [] if self.__masked('ENV',var) else env.getVar(var).split()
+ for var in ['ACCEPT_KEYWORDS','LANG','GENTOO_MIRRORS','FEATURES','USE']:
+ self.payload[var] = [] if self.__masked('ENV',var) else env.getVar(var).split()
- self.payload['PACKAGES'] = dict()
- for cpv in Packages().getInstalledCPVs():
- m = Metadata(cpv)
- p = dict()
- p['REPO'] = None if self.__masked('PACKAGES','REPO') else m.getRepoName()
- p['KEYWORD'] = None if self.__masked('PACKAGES','KEYWORD') else m.getKeyword()
- p['USE'] = dict()
- p['USE']['PLUS'] = [] if self.__masked('PACKAGES','USE_PLUS') else m.getPlusFlags()
- p['USE']['MINUS'] = [] if self.__masked('PACKAGES','USE_MINUS') else m.getMinusFlags()
- p['USE']['UNSET'] = [] if self.__masked('PACKAGES','USE_UNSET') else m.getUnsetFlags()
- p['COUNTER'] = None if self.__masked('PACKAGES','COUNTER') else m.getCounter()
- p['SIZE'] = None if self.__masked('PACKAGES','SIZE') else m.getSize()
- p['BUILD_TIME'] = None if self.__masked('PACKAGES','BUILD_TIME') else m.getBuildTime()
- self.payload['PACKAGES'][cpv] = p
+ self.payload['PACKAGES'] = dict()
+ for cpv in Packages().getInstalledCPVs():
+ m = Metadata(cpv)
+ p = dict()
+ p['REPO'] = None if self.__masked('PACKAGES','REPO') else m.getRepoName()
+ p['KEYWORD'] = None if self.__masked('PACKAGES','KEYWORD') else m.getKeyword()
+ p['USE'] = dict()
+ p['USE']['PLUS'] = [] if self.__masked('PACKAGES','USE_PLUS') else m.getPlusFlags()
+ p['USE']['MINUS'] = [] if self.__masked('PACKAGES','USE_MINUS') else m.getMinusFlags()
+ p['USE']['UNSET'] = [] if self.__masked('PACKAGES','USE_UNSET') else m.getUnsetFlags()
+ p['COUNTER'] = None if self.__masked('PACKAGES','COUNTER') else m.getCounter()
+ p['SIZE'] = None if self.__masked('PACKAGES','SIZE') else m.getSize()
+ p['BUILD_TIME'] = None if self.__masked('PACKAGES','BUILD_TIME') else m.getBuildTime()
+ self.payload['PACKAGES'][cpv] = p
- def get(self):
- return self.payload
+ def get(self):
+ return self.payload
- def dump(self,human=False):
- if human:
- pprint.pprint(self.payload)
- else:
- print self.payload
+ def dump(self,human=False):
+ if human:
+ pprint.pprint(self.payload)
+ else:
+ print self.payload
diff --git a/client/setup.py b/client/setup.py
index 133274c..c018ccc 100644
--- a/client/setup.py
+++ b/client/setup.py
@@ -2,13 +2,13 @@
from setuptools import setup
setup(
- name = "gentoostats",
- version = "9999",
- author = "Vikraman Choudhury",
- author_email = "vikraman.choudhury@gmail.com",
- description = "Package statistics client",
- license = "GPLv3",
- url = "http://soc.dev.gentoo/org/gentoostats",
- packages = ['gentoostats'],
- scripts = ['gentoostats-send']
- )
+ name = "gentoostats",
+ version = "9999",
+ author = "Vikraman Choudhury",
+ author_email = "vikraman.choudhury@gmail.com",
+ description = "Package statistics client",
+ license = "GPLv3",
+ url = "http://soc.dev.gentoo/org/gentoostats",
+ packages = ['gentoostats'],
+ scripts = ['gentoostats-send']
+ )