* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-06-23 15:14 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-06-23 15:14 UTC (permalink / raw
To: gentoo-commits
commit: ee168db7e81a1787630638eea8f1fbe859befd30
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Thu Jun 23 15:12:33 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Thu Jun 23 15:12:33 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=ee168db7
add cmdline options to client
---
client/gentoostats-send | 37 +++++++++++++++++++++++++++----------
client/gentoostats/payload.py | 2 +-
2 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/client/gentoostats-send b/client/gentoostats-send
index b118e94..ecc0be8 100755
--- a/client/gentoostats-send
+++ b/client/gentoostats-send
@@ -1,15 +1,16 @@
#!/usr/bin/env python
-from gentoostats.payload import Payload
-import ConfigParser
import sys
import json
+import argparse
+import ConfigParser
import urllib, httplib
+from gentoostats.payload import Payload
-def getAuthInfo(auth='/etc/gentoostats/auth.cfg'):
+def getAuthInfo(auth):
config = ConfigParser.ConfigParser()
if len(config.read(auth)) == 0:
- sys.stderr.write('Cannot read '+auth)
+ sys.stderr.write('Cannot read ' + auth)
sys.exit(1)
try:
@@ -31,15 +32,31 @@ def serialize(object, human=False):
return json.JSONEncoder(indent=indent, sort_keys=sort_keys).encode(object)
def main():
- pl = Payload()
+ parser = argparse.ArgumentParser(description='Gentoostats client')
+ parser.add_argument('-s', '--server', default='soc.dev.gentoo.org')
+ parser.add_argument('-p', '--port', type = int, default=80)
+ 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)
+
post_data = pl.get()
- post_data['AUTH'] = getAuthInfo()
+ 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_body = serialize(post_data,human=True)
- post_headers = {"Content-type": "application/json"}
- myuuid = getAuthInfo()['UUID']
- conn = httplib.HTTPConnection("127.0.0.1:8080")
- conn.request('POST', '/host/' + myuuid, headers=post_headers, body=post_body)
+ post_headers = {'Content-type':'application/json'}
+
+ conn = httplib.HTTPConnection(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
diff --git a/client/gentoostats/payload.py b/client/gentoostats/payload.py
index 756496c..22f736e 100644
--- a/client/gentoostats/payload.py
+++ b/client/gentoostats/payload.py
@@ -8,7 +8,7 @@ from gentoostats.metadata import Metadata
class Payload(object):
- def __init__(self, configfile='/etc/gentoostats/payload.cfg'):
+ def __init__(self, configfile):
self.config = ConfigParser.ConfigParser()
if len(self.config.read(configfile)) == 0:
sys.stderr.write('Cannot read ' + configfile)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-07-25 12:35 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-07-25 12:35 UTC (permalink / raw
To: gentoo-commits
commit: bce6d47cdd40c24d26b8241a882263c602b166df
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Jul 25 12:35:20 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Jul 25 12:35:20 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=bce6d47c
gentoostats-cli first commit
---
client/gentoostats-cli | 28 +++++++++++++
client/gentoostats/list.py | 97 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 125 insertions(+), 0 deletions(-)
diff --git a/client/gentoostats-cli b/client/gentoostats-cli
new file mode 100755
index 0000000..cee0da1
--- /dev/null
+++ b/client/gentoostats-cli
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import sys
+import importlib
+
+actions = {'list':'gentoostats.list', 'search':'gentooostats.search'}
+
+def print_usage():
+ print 'Usage:', sys.argv[0], '<action>'
+ print 'Available actions:'
+ for action in actions.keys():
+ print action
+
+def main():
+ argc = len(sys.argv)
+ if argc == 1:
+ print_usage()
+ sys.exit(1)
+ try:
+ loaded_module = importlib.import_module(actions[sys.argv[1]])
+ loaded_module.main(opts=sys.argv[2:])
+ except KeyError, ImportError:
+ sys.stderr.writelines('Unknown action')
+ sys.exit(1)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
new file mode 100644
index 0000000..480587c
--- /dev/null
+++ b/client/gentoostats/list.py
@@ -0,0 +1,97 @@
+
+import sys
+import json
+import httplib
+
+objects={
+'arch':'list_arch',
+'feature':'list_feature',
+'lang':'list_lang',
+'mirror':'list_mirror',
+'repo':'list_repo',
+'category':'list_cat',
+}
+
+server = 'soc.dev.gentoo.org'
+url = '/gentoostats'
+headers = {'Accept':'application/json'}
+
+def print_usage():
+ print 'Usage: list <object>'
+ print 'Available objects:'
+ for obj in objects.keys():
+ print obj
+
+def pprint(object):
+ import pprint
+ pprint.pprint(object)
+
+def main(opts):
+ l = len(opts)
+ if l == 0:
+ print_usage()
+ sys.exit(1)
+
+ if opts[0] not in objects:
+ sys.stderr.write('Unknown object')
+ sys.exit(1)
+
+ try:
+ globals()[objects[opts[0]]]()
+ except KeyError:
+ sys.stderr.write('Unimplemented')
+ sys.exit(1)
+
+def list_arch():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/arch', headers=headers)
+ try:
+ arch_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(arch_data)
+
+def list_feature():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/feature', headers=headers)
+ try:
+ feature_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(feature_data)
+
+def list_lang():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/lang', headers=headers)
+ try:
+ lang_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(lang_data)
+
+def list_mirror():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/mirror', headers=headers)
+ try:
+ mirror_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(mirror_data)
+
+def list_repo():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/mirror', headers=headers)
+ try:
+ repo_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(repo_data)
+
+def list_cat():
+ conn = httplib.HTTPSConnection(server)
+ conn.request('GET', url=url+'/package', headers=headers)
+ try:
+ cat_data = json.JSONDecoder().decode(conn.getresponse().read())
+ except ValueError:
+ sys.exit(1)
+ pprint(cat_data)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-08-01 22:24 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 22:24 UTC (permalink / raw
To: gentoo-commits
commit: 9fc558e2719e01c5ad25e55124e45a662ebb5fc0
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Jul 25 22:22:55 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Jul 25 22:22:55 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=9fc558e2
misc fixes
---
client/gentoostats-cli | 9 ++-
client/gentoostats/list.py | 109 +++++++++++++++++++------------------------
client/gentoostats/utils.py | 22 +++++++++
3 files changed, 76 insertions(+), 64 deletions(-)
diff --git a/client/gentoostats-cli b/client/gentoostats-cli
index cee0da1..c8a5222 100755
--- a/client/gentoostats-cli
+++ b/client/gentoostats-cli
@@ -3,9 +3,12 @@
import sys
import importlib
-actions = {'list':'gentoostats.list', 'search':'gentooostats.search'}
+actions = {
+ 'list': 'gentoostats.list',
+ 'search': 'gentooostats.search'
+ }
-def print_usage():
+def print_usage(actions):
print 'Usage:', sys.argv[0], '<action>'
print 'Available actions:'
for action in actions.keys():
@@ -14,7 +17,7 @@ def print_usage():
def main():
argc = len(sys.argv)
if argc == 1:
- print_usage()
+ print_usage(actions)
sys.exit(1)
try:
loaded_module = importlib.import_module(actions[sys.argv[1]])
diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
index 480587c..3cf60cf 100644
--- a/client/gentoostats/list.py
+++ b/client/gentoostats/list.py
@@ -2,34 +2,38 @@
import sys
import json
import httplib
+import utils
-objects={
-'arch':'list_arch',
-'feature':'list_feature',
-'lang':'list_lang',
-'mirror':'list_mirror',
-'repo':'list_repo',
-'category':'list_cat',
-}
+objects = {
+ 'arch': 'list_arch',
+ 'feature': 'list_feature',
+ 'lang': 'list_lang',
+ 'mirror': 'list_mirror',
+ 'repo': 'list_repo',
+ 'cat': 'list_cat',
+ 'cp': 'list_cp',
+ 'cpv': 'list_cpv'
+ }
server = 'soc.dev.gentoo.org'
url = '/gentoostats'
-headers = {'Accept':'application/json'}
+headers = {'Accept': 'application/json'}
-def print_usage():
+def print_usage(objects):
print 'Usage: list <object>'
print 'Available objects:'
for obj in objects.keys():
print obj
-def pprint(object):
+def pprint(title, object):
+ print title
import pprint
pprint.pprint(object)
def main(opts):
l = len(opts)
if l == 0:
- print_usage()
+ print_usage(objects)
sys.exit(1)
if opts[0] not in objects:
@@ -37,61 +41,44 @@ def main(opts):
sys.exit(1)
try:
- globals()[objects[opts[0]]]()
+ globals()[objects[opts[0]]](server, url, headers)
except KeyError:
sys.stderr.write('Unimplemented')
sys.exit(1)
-def list_arch():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/arch', headers=headers)
- try:
- arch_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(arch_data)
+def list(server, url_base, url_extra, headers):
+ get_data = utils.GET(server=server, url=url_base+url_extra, headers=headers)
+ data = utils.deserialize(get_data)
+ return data
-def list_feature():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/feature', headers=headers)
- try:
- feature_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(feature_data)
+def list_arch(server, url, headers):
+ data = list(server, url, '/arch', headers)
+ pprint('Arch', data)
-def list_lang():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/lang', headers=headers)
- try:
- lang_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(lang_data)
+def list_feature(server, url, headers):
+ data = list(server, url, '/feature', headers)
+ pprint('Feature', data)
-def list_mirror():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/mirror', headers=headers)
- try:
- mirror_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(mirror_data)
+def list_lang(server, url, headers):
+ data = list(server, url, '/lang', headers)
+ pprint('Lang', data)
-def list_repo():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/mirror', headers=headers)
- try:
- repo_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(repo_data)
+def list_mirror(server, url, headers):
+ data = list(server, url, '/mirror', headers)
+ pprint('Mirror', data)
-def list_cat():
- conn = httplib.HTTPSConnection(server)
- conn.request('GET', url=url+'/package', headers=headers)
- try:
- cat_data = json.JSONDecoder().decode(conn.getresponse().read())
- except ValueError:
- sys.exit(1)
- pprint(cat_data)
+def list_repo(server, url, headers):
+ data = list(server, url, '/repo', headers)
+ pprint('Repo', data)
+
+def list_cat(server, url, headers):
+ data = list(server, url, '/package', headers)
+ pprint('Category', data)
+
+def list_cp(server, url, headers):
+ data = list(server, url, '/package', headers)
+ pprint('Category/Package', data)
+
+def list_cpv(server, url, headers):
+ data = list(server, url, '/package', headers)
+ pprint('Category/Package-Version', data)
diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py
new file mode 100644
index 0000000..ae520f2
--- /dev/null
+++ b/client/gentoostats/utils.py
@@ -0,0 +1,22 @@
+
+import json
+import httplib
+
+def GET(server, url, headers, https=True):
+ if https:
+ conn = httplib.HTTPSConnection(server)
+ else:
+ conn = httplib.HTTPConnection(server)
+ try:
+ conn.request('GET', url=url, headers=headers)
+ data = conn.getresponse().read()
+ except httplib.HTTPException:
+ return None
+ return data
+
+def deserialize(object):
+ try:
+ decoded = json.JSONDecoder().decode(object)
+ except (ValueError, TypeError):
+ return None
+ return decoded
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-08-01 22:24 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 22:24 UTC (permalink / raw
To: gentoo-commits
commit: 8755eeaee5daad8a51ffab361ce2e01422272f69
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Aug 1 22:23:54 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Aug 1 22:23:54 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=8755eeae
reworked gentoostats-cli code
---
client/gentoostats-cli | 35 ++++-------
client/gentoostats/list.py | 139 +++++++++++++++++++++++--------------------
client/gentoostats/utils.py | 2 +
3 files changed, 89 insertions(+), 87 deletions(-)
diff --git a/client/gentoostats-cli b/client/gentoostats-cli
index c8a5222..6a237fc 100755
--- a/client/gentoostats-cli
+++ b/client/gentoostats-cli
@@ -1,31 +1,22 @@
#!/usr/bin/env python
-import sys
-import importlib
+import argparse
-actions = {
- 'list': 'gentoostats.list',
- 'search': 'gentooostats.search'
- }
-
-def print_usage(actions):
- print 'Usage:', sys.argv[0], '<action>'
- print 'Available actions:'
- for action in actions.keys():
- print action
+from gentoostats import list
+#from gentoostats import search
def main():
- argc = len(sys.argv)
- if argc == 1:
- print_usage(actions)
- sys.exit(1)
- try:
- loaded_module = importlib.import_module(actions[sys.argv[1]])
- loaded_module.main(opts=sys.argv[2:])
- except KeyError, ImportError:
- sys.stderr.writelines('Unknown action')
- sys.exit(1)
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-s', '--server', default='soc.dev.gentoo.org')
+ parser.add_argument('-u', '--url', default='/gentoostats')
+
+ subparsers = parser.add_subparsers()
+
+ list.add_parser(subparsers)
+# search.add_parser(subparsers)
+ args = parser.parse_args()
+ args.func(args)
if __name__ == "__main__":
main()
diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
index 3cf60cf..6ee62cb 100644
--- a/client/gentoostats/list.py
+++ b/client/gentoostats/list.py
@@ -1,84 +1,93 @@
-import sys
-import json
-import httplib
import utils
-objects = {
- 'arch': 'list_arch',
- 'feature': 'list_feature',
- 'lang': 'list_lang',
- 'mirror': 'list_mirror',
- 'repo': 'list_repo',
- 'cat': 'list_cat',
- 'cp': 'list_cp',
- 'cpv': 'list_cpv'
- }
-
-server = 'soc.dev.gentoo.org'
-url = '/gentoostats'
-headers = {'Accept': 'application/json'}
-
-def print_usage(objects):
- print 'Usage: list <object>'
- print 'Available objects:'
- for obj in objects.keys():
- print obj
-
def pprint(title, object):
- print title
+ # TODO: write a custom pretty printer here
import pprint
+ print title
pprint.pprint(object)
-def main(opts):
- l = len(opts)
- if l == 0:
- print_usage(objects)
- sys.exit(1)
-
- if opts[0] not in objects:
- sys.stderr.write('Unknown object')
- sys.exit(1)
-
- try:
- globals()[objects[opts[0]]](server, url, headers)
- except KeyError:
- sys.stderr.write('Unimplemented')
- sys.exit(1)
-
-def list(server, url_base, url_extra, headers):
- get_data = utils.GET(server=server, url=url_base+url_extra, headers=headers)
- data = utils.deserialize(get_data)
- return data
-
-def list_arch(server, url, headers):
- data = list(server, url, '/arch', headers)
+def add_parser(subparsers):
+ # TODO: add help and descriptions for all opts
+ list_parser = subparsers.add_parser('list')
+ list_subparsers = list_parser.add_subparsers()
+
+ objects = {
+ 'arch': ['parser_arch', list_arch],
+ 'feature': ['parser_feature', list_feature],
+ 'lang': ['parser_lang', list_lang],
+ 'mirror': ['parser_mirror', list_mirror],
+ 'repo': ['parser_repo', list_repo],
+ 'package': ['parser_package', list_package],
+ 'use': ['parser_use', list_use]
+ }
+ for obj in objects.keys():
+ parser = vars()[objects[obj][0]] = list_subparsers.add_parser(obj)
+ parser.set_defaults(func=objects[obj][1])
+
+ # need separate arguments for package
+ parser = vars()[objects['package'][0]]
+ parser.add_argument('-t', '--top', type=int)
+ parser.add_argument('-c', '--category')
+ parser.add_argument('-p', '--package')
+ parser.add_argument('-v', '--version')
+
+ # need separate arguments for use
+ parser = vars()[objects['use'][0]]
+ parser.add_argument('--use')
+
+def list_arch(args):
+ data = list(args.server, args.url, '/arch', utils.headers)
pprint('Arch', data)
-def list_feature(server, url, headers):
- data = list(server, url, '/feature', headers)
+def list_feature(args):
+ data = list(args.server, args.url, '/feature', utils.headers)
pprint('Feature', data)
-def list_lang(server, url, headers):
- data = list(server, url, '/lang', headers)
+def list_lang(args):
+ data = list(args.server, args.url, '/lang', utils.headers)
pprint('Lang', data)
-def list_mirror(server, url, headers):
- data = list(server, url, '/mirror', headers)
+def list_mirror(args):
+ data = list(args.server, args.url, '/mirror', utils.headers)
pprint('Mirror', data)
-def list_repo(server, url, headers):
- data = list(server, url, '/repo', headers)
+def list_repo(args):
+ data = list(args.server, args.url, '/repo', utils.headers)
pprint('Repo', data)
-def list_cat(server, url, headers):
- data = list(server, url, '/package', headers)
- pprint('Category', data)
+def list_package(args):
+ url_top = ''
+ if args.top:
+ url_top = '?top=' + str(args.top)
+
+ title = 'Categories'
+ url_pkg = '/package'
+ if args.category:
+ title = 'Category: ' + args.category
+ url_pkg += '/' + args.category
+ if args.package:
+ title = 'Category-Package: ' + args.category + '/' + args.package
+ url_pkg += '/' + args.package
+ if args.version:
+ title = 'Category-Package-Version: ' + args.category + '/' + args.package + '-' + args.version
+ url_pkg += '-' + args.version
+
+ data = list(args.server, args.url, url_pkg + url_top, utils.headers)
+ pprint(title, data)
+
+def list_use(args):
+ url_use = '/use'
+ title = 'Useflags'
+ if args.use:
+ title = 'Useflag: ' + args.use
+ url_use += '/' + args.use
+
+ data = list(args.server, args.url, url_use, utils.headers)
+ pprint(title, data)
-def list_cp(server, url, headers):
- data = list(server, url, '/package', headers)
- pprint('Category/Package', data)
-def list_cpv(server, url, headers):
- data = list(server, url, '/package', headers)
- pprint('Category/Package-Version', data)
+def list(server, url_base, url_extra, headers):
+ get_data = utils.GET(server=server, url=url_base+url_extra, headers=headers)
+ data = utils.deserialize(get_data)
+ return data
diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py
index ae520f2..98f8375 100644
--- a/client/gentoostats/utils.py
+++ b/client/gentoostats/utils.py
@@ -2,6 +2,8 @@
import json
import httplib
+headers = {'Accept': 'application/json'}
+
def GET(server, url, headers, https=True):
if https:
conn = httplib.HTTPSConnection(server)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-08-01 23:04 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-08-01 23:04 UTC (permalink / raw
To: gentoo-commits
commit: a1a9949f57f294cd001d8589fdc727de9c19aae8
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Aug 1 23:03:09 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Aug 1 23:03:09 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=a1a9949f
add search to gentoostats-cli
---
client/gentoostats-cli | 4 ++--
client/gentoostats/search.py | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/client/gentoostats-cli b/client/gentoostats-cli
index 6a237fc..a22ccc7 100755
--- a/client/gentoostats-cli
+++ b/client/gentoostats-cli
@@ -3,7 +3,7 @@
import argparse
from gentoostats import list
-#from gentoostats import search
+from gentoostats import search
def main():
parser = argparse.ArgumentParser()
@@ -13,7 +13,7 @@ def main():
subparsers = parser.add_subparsers()
list.add_parser(subparsers)
-# search.add_parser(subparsers)
+ search.add_parser(subparsers)
args = parser.parse_args()
args.func(args)
diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py
new file mode 100644
index 0000000..165733e
--- /dev/null
+++ b/client/gentoostats/search.py
@@ -0,0 +1,37 @@
+
+import utils
+
+def pprint(title, object):
+ # TODO: write a custom pretty printer here
+ import pprint
+ print title
+ pprint.pprint(object)
+
+def add_parser(subparsers):
+ # TODO: add help and descriptions for all opts
+ search_parser = subparsers.add_parser('search')
+ search_parser.add_argument('-c', '--category')
+ search_parser.add_argument('-p', '--package')
+ search_parser.add_argument('-v', '--version')
+ search_parser.add_argument('-r', '--repo')
+ search_parser.add_argument('--min_hosts', type=int)
+ search_parser.add_argument('--max_hosts', type=int)
+ search_parser.set_defaults(func=search)
+
+def search(args):
+ url_base = '/search'
+ url_extra = ''
+
+ url_extra += ('?', '&')[bool(url_extra)] + 'cat=' + args.category if args.category else ''
+ url_extra += ('?', '&')[bool(url_extra)] + 'pkg=' + args.package if args.package else ''
+ url_extra += ('?', '&')[bool(url_extra)] + 'ver=' + args.version if args.version else ''
+ url_extra += ('?', '&')[bool(url_extra)] + 'repo=' + args.repo if args.repo else ''
+ url_extra += ('?', '&')[bool(url_extra)] + 'min_hosts=' + str(args.min_hosts) if args.min_hosts else ''
+ url_extra += ('?', '&')[bool(url_extra)] + 'max_hosts=' + str(args.max_hosts) if args.max_hosts else ''
+
+ print args.server + args.url + url_base + url_extra
+
+ get_data = utils.GET(server = args.server, url = args.url + url_base + url_extra, headers = utils.headers)
+ data = utils.deserialize(get_data)
+
+ pprint ('Search results', data)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2011-08-21 23:15 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2011-08-21 23:15 UTC (permalink / raw
To: gentoo-commits
commit: 015b806f241c76d31611c7bcf565c89c6af84bfc
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Sun Aug 21 23:02:27 2011 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Sun Aug 21 23:02:27 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=015b806f
fix exceptions
---
client/gentoostats-send | 18 ++++++++++--------
client/gentoostats/list.py | 6 ++----
client/gentoostats/search.py | 6 ++----
3 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/client/gentoostats-send b/client/gentoostats-send
index 49dcb83..324b2bc 100755
--- a/client/gentoostats-send
+++ b/client/gentoostats-send
@@ -4,7 +4,7 @@ import sys
import json
import argparse
import ConfigParser
-import urllib, httplib
+import httplib
from gentoostats.payload import Payload
def getAuthInfo(auth):
@@ -63,13 +63,15 @@ def main():
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)
-
- #TODO: Handle exceptions
- response = conn.getresponse()
- print response.status, response.reason
- print 'Server response: ' + response.read()
+ try:
+ conn = httplib.HTTPSConnection(args['server'] + ':' + str(args['port']))
+ conn.request('POST', url=post_url, headers=post_headers, body=post_body)
+ response = conn.getresponse()
+ print response.status, response.reason
+ print 'Server response: ' + response.read()
+ except httplib.HTTPException:
+ sys.stderr.write('Something went wrong')
+ sys.exit(1)
if __name__ == "__main__":
main()
diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
index 78ec0e4..3140041 100644
--- a/client/gentoostats/list.py
+++ b/client/gentoostats/list.py
@@ -1,20 +1,18 @@
+import pprint as pp
from gentoostats import utils
def pprint(title, object):
"""
Pretty printer for the decoded json data
"""
- # TODO: write a custom pretty printer here
- import pprint
print title
- pprint.pprint(object)
+ pp.pprint(object)
def add_parser(subparsers):
"""
Setup argparse parsers
"""
- # TODO: add help and descriptions for all opts
list_parser = subparsers.add_parser('list')
list_subparsers = list_parser.add_subparsers()
diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py
index dfc4b29..c77c119 100644
--- a/client/gentoostats/search.py
+++ b/client/gentoostats/search.py
@@ -1,20 +1,18 @@
+import pprint as pp
from gentoostats import utils
def pprint(title, object):
"""
Pretty printer for the decoded json data
"""
- # TODO: write a custom pretty printer here
- import pprint
print title
- pprint.pprint(object)
+ pp.pprint(object)
def add_parser(subparsers):
"""
Setup argparse parsers
"""
- # TODO: add help and descriptions for all opts
search_parser = subparsers.add_parser('search')
search_parser.add_argument('-c', '--category')
search_parser.add_argument('-p', '--package')
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/
@ 2012-04-17 14:15 Vikraman Choudhury
0 siblings, 0 replies; 7+ messages in thread
From: Vikraman Choudhury @ 2012-04-17 14:15 UTC (permalink / raw
To: gentoo-commits
commit: 57d76a1e76d77b23ed3e616dae761bc8e6b7021c
Author: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Tue Apr 17 14:06:13 2012 +0000
Commit: Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Tue Apr 17 14:06:13 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=57d76a1e
close HTTPConnection in finally block
---
client/gentoostats-send | 3 +++
client/gentoostats/utils.py | 3 +++
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/client/gentoostats-send b/client/gentoostats-send
index 324b2bc..2ae2857 100755
--- a/client/gentoostats-send
+++ b/client/gentoostats-send
@@ -72,6 +72,9 @@ def main():
except httplib.HTTPException:
sys.stderr.write('Something went wrong')
sys.exit(1)
+ finally:
+ if conn:
+ conn.close()
if __name__ == "__main__":
main()
diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py
index 43a3c73..af807c8 100644
--- a/client/gentoostats/utils.py
+++ b/client/gentoostats/utils.py
@@ -18,6 +18,9 @@ def GET(server, url, headers, https=True):
data = conn.getresponse().read()
except httplib.HTTPException:
return None
+ finally:
+ if conn:
+ conn.close()
return data
def deserialize(object):
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-04-17 14:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-23 15:14 [gentoo-commits] proj/gentoostats:master commit in: client/gentoostats/, client/ Vikraman Choudhury
-- strict thread matches above, loose matches on Subject: below --
2011-07-25 12:35 Vikraman Choudhury
2011-08-01 22:24 Vikraman Choudhury
2011-08-01 22:24 Vikraman Choudhury
2011-08-01 23:04 Vikraman Choudhury
2011-08-21 23:15 Vikraman Choudhury
2012-04-17 14:15 Vikraman Choudhury
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox