diff options
author | 2011-07-11 02:58:35 +0530 | |
---|---|---|
committer | 2011-07-11 02:58:35 +0530 | |
commit | 1cb6b9cc00ad839c47453ba3b554df1fb8508508 (patch) | |
tree | 2b963f322ea3d66fa7c2071c3cfe14621c1ff10a /client | |
parent | per useflag stats (diff) | |
download | gentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.tar.gz gentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.tar.bz2 gentoostats-1cb6b9cc00ad839c47453ba3b554df1fb8508508.zip |
fix tabs
Diffstat (limited to 'client')
-rwxr-xr-x | client/gentoostats-send | 86 | ||||
-rw-r--r-- | client/gentoostats/environment.py | 86 | ||||
-rw-r--r-- | client/gentoostats/metadata.py | 54 | ||||
-rw-r--r-- | client/gentoostats/packages.py | 20 | ||||
-rw-r--r-- | client/gentoostats/payload.py | 92 | ||||
-rw-r--r-- | client/setup.py | 20 |
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'] + ) |