public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoostats:master commit in: client/, client/gentoostats/
@ 2016-12-29  6:16 Göktürk Yüksek
  0 siblings, 0 replies; 2+ messages in thread
From: Göktürk Yüksek @ 2016-12-29  6:16 UTC (permalink / raw
  To: gentoo-commits

commit:     dad01a9243e6d217da18976b93dbb4f84cf93b44
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 29 06:13:51 2016 +0000
Commit:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
CommitDate: Thu Dec 29 06:13:51 2016 +0000
URL:        https://gitweb.gentoo.org/proj/gentoostats.git/commit/?id=dad01a92

client: add support python3 compatibility

 client/gentoostats-cli        |  6 ++++--
 client/gentoostats-send       | 19 +++++++++++++++----
 client/gentoostats/list.py    |  8 +++++---
 client/gentoostats/payload.py | 10 ++++++++--
 client/gentoostats/search.py  |  5 +++--
 client/gentoostats/utils.py   |  7 +++++--
 6 files changed, 40 insertions(+), 15 deletions(-)

diff --git a/client/gentoostats-cli b/client/gentoostats-cli
index a22ccc7..768a1ed 100755
--- a/client/gentoostats-cli
+++ b/client/gentoostats-cli
@@ -10,13 +10,15 @@ def main():
     parser.add_argument('-s', '--server', default='soc.dev.gentoo.org')
     parser.add_argument('-u', '--url', default='/gentoostats')
 
-    subparsers = parser.add_subparsers()
+    # http://bugs.python.org/issue9253
+    subparsers = parser.add_subparsers(dest='command')
+    subparsers.required = True
 
     list.add_parser(subparsers)
     search.add_parser(subparsers)
 
     args = parser.parse_args()
-    args.func(args)
+    args.command(args)
 
 if __name__ == "__main__":
     main()

diff --git a/client/gentoostats-send b/client/gentoostats-send
index 2ae2857..eac742c 100755
--- a/client/gentoostats-send
+++ b/client/gentoostats-send
@@ -1,10 +1,21 @@
 #!/usr/bin/env python
 
+from __future__ import print_function
+
 import sys
 import json
 import argparse
-import ConfigParser
-import httplib
+
+try:
+    import configparser as ConfigParser
+except ImportError:
+    import ConfigParser
+
+try:
+    import http.client as httplib
+except ImportError:
+    import httplib
+
 from gentoostats.payload import Payload
 
 def getAuthInfo(auth):
@@ -67,8 +78,8 @@ def main():
         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()
+        print(response.status, response.reason)
+        print('Server response: ' + response.read().decode("utf-8"))
     except httplib.HTTPException:
         sys.stderr.write('Something went wrong')
         sys.exit(1)

diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
index 3140041..8c369ab 100644
--- a/client/gentoostats/list.py
+++ b/client/gentoostats/list.py
@@ -1,3 +1,4 @@
+from __future__ import print_function
 
 import pprint as pp
 from gentoostats import utils
@@ -6,7 +7,7 @@ def pprint(title, object):
     """
     Pretty printer for the decoded json data
     """
-    print title
+    print(title)
     pp.pprint(object)
 
 def add_parser(subparsers):
@@ -14,7 +15,8 @@ def add_parser(subparsers):
     Setup argparse parsers
     """
     list_parser = subparsers.add_parser('list')
-    list_subparsers = list_parser.add_subparsers()
+    list_subparsers = list_parser.add_subparsers(dest='subcommand')
+    list_subparsers.required = True
 
     objects = {
             'arch': ['parser_arch', list_arch],
@@ -27,7 +29,7 @@ def add_parser(subparsers):
             }
     for obj in objects.keys():
         parser = vars()[objects[obj][0]] = list_subparsers.add_parser(obj)
-        parser.set_defaults(func=objects[obj][1])
+        parser.set_defaults(command=objects[obj][1])
 
     # need separate arguments for package
     parser = vars()[objects['package'][0]]

diff --git a/client/gentoostats/payload.py b/client/gentoostats/payload.py
index b2c459f..569b69b 100644
--- a/client/gentoostats/payload.py
+++ b/client/gentoostats/payload.py
@@ -1,7 +1,13 @@
+from __future__ import print_function
 
 import sys
 import pprint
-import ConfigParser
+
+try:
+    import configparser as ConfigParser
+except ImportError:
+    import ConfigParser
+
 from gentoostats.environment import Environment
 from gentoostats.packages import Packages
 from gentoostats.metadata import Metadata
@@ -79,4 +85,4 @@ class Payload(object):
         if human:
             pprint.pprint(self.payload)
         else:
-            print self.payload
+            print(self.payload)

diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py
index c77c119..89b4d20 100644
--- a/client/gentoostats/search.py
+++ b/client/gentoostats/search.py
@@ -1,3 +1,4 @@
+from __future__ import print_function
 
 import pprint as pp
 from gentoostats import utils
@@ -6,7 +7,7 @@ def pprint(title, object):
     """
     Pretty printer for the decoded json data
     """
-    print title
+    print(title)
     pp.pprint(object)
 
 def add_parser(subparsers):
@@ -20,7 +21,7 @@ def add_parser(subparsers):
     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)
+    search_parser.set_defaults(command=search)
 
 def search(args):
     """

diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py
index af807c8..af8dab2 100644
--- a/client/gentoostats/utils.py
+++ b/client/gentoostats/utils.py
@@ -1,6 +1,9 @@
 
 import json
-import httplib
+try:
+    import http.client as httplib
+except ImportError:
+    import httplib
 
 # json headers for gentoostats-cli
 headers = {'Accept': 'application/json'}
@@ -15,7 +18,7 @@ def GET(server, url, headers, https=True):
         conn = httplib.HTTPConnection(server)
     try:
         conn.request('GET', url=url, headers=headers)
-        data = conn.getresponse().read()
+        data = conn.getresponse().read().decode("utf-8")
     except httplib.HTTPException:
         return None
     finally:


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

* [gentoo-commits] proj/gentoostats:master commit in: client/, client/gentoostats/
@ 2017-01-02  6:22 Göktürk Yüksek
  0 siblings, 0 replies; 2+ messages in thread
From: Göktürk Yüksek @ 2017-01-02  6:22 UTC (permalink / raw
  To: gentoo-commits

commit:     4af894ac1b6b3290ef2aeed6cbfa9a90de495428
Author:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  2 04:54:10 2017 +0000
Commit:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
CommitDate: Mon Jan  2 04:54:10 2017 +0000
URL:        https://gitweb.gentoo.org/proj/gentoostats.git/commit/?id=4af894ac

client/gentoostats-cli: add a command line option to specify the port

Remain consistent with gentoostats-send which has a ('-p', '--port')
command line option to specify the port for the remote server.

 client/gentoostats-cli       |  1 +
 client/gentoostats/list.py   | 18 +++++++++---------
 client/gentoostats/search.py |  2 +-
 client/gentoostats/utils.py  |  6 +++---
 4 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/client/gentoostats-cli b/client/gentoostats-cli
index 768a1ed..2ce2b2e 100755
--- a/client/gentoostats-cli
+++ b/client/gentoostats-cli
@@ -8,6 +8,7 @@ from gentoostats import search
 def main():
     parser = argparse.ArgumentParser()
     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')
 
     # http://bugs.python.org/issue9253

diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py
index 8c369ab..dc1a64f 100644
--- a/client/gentoostats/list.py
+++ b/client/gentoostats/list.py
@@ -46,35 +46,35 @@ def list_arch(args):
     """
     /arch
     """
-    data = list(args.server, args.url, '/arch', utils.headers)
+    data = list(args.server, args.port, args.url, '/arch', utils.headers)
     pprint('Arch', data)
 
 def list_feature(args):
     """
     /feature
     """
-    data = list(args.server, args.url, '/feature', utils.headers)
+    data = list(args.server, args.port, args.url, '/feature', utils.headers)
     pprint('Feature', data)
 
 def list_lang(args):
     """
     /lang
     """
-    data = list(args.server, args.url, '/lang', utils.headers)
+    data = list(args.server, args.port, args.url, '/lang', utils.headers)
     pprint('Lang', data)
 
 def list_mirror(args):
     """
     /mirror
     """
-    data = list(args.server, args.url, '/mirror', utils.headers)
+    data = list(args.server, args.port, args.url, '/mirror', utils.headers)
     pprint('Mirror', data)
 
 def list_repo(args):
     """
     /repo
     """
-    data = list(args.server, args.url, '/repo', utils.headers)
+    data = list(args.server, args.port, args.url, '/repo', utils.headers)
     pprint('Repo', data)
 
 def list_package(args):
@@ -97,7 +97,7 @@ def list_package(args):
                 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)
+    data = list(args.server, args.port, args.url, url_pkg + url_top, utils.headers)
     pprint(title, data)
 
 def list_use(args):
@@ -110,14 +110,14 @@ def list_use(args):
         title = 'Useflag: ' + args.use
         url_use += '/' + args.use
 
-    data = list(args.server, args.url, url_use, utils.headers)
+    data = list(args.server, args.port, args.url, url_use, utils.headers)
     pprint(title, data)
 
 
-def list(server, url_base, url_extra, headers):
+def list(server, port, url_base, url_extra, headers):
     """
     Get and decode json from url
     """
-    get_data = utils.GET(server=server, url=url_base+url_extra, headers=headers)
+    get_data = utils.GET(server=server, port=port, url=url_base+url_extra, headers=headers)
     data = utils.deserialize(get_data)
     return data

diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py
index 89b4d20..81265fa 100644
--- a/client/gentoostats/search.py
+++ b/client/gentoostats/search.py
@@ -37,7 +37,7 @@ def search(args):
     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 ''
 
-    get_data = utils.GET(server = args.server, url = args.url + url_base + url_extra, headers = utils.headers)
+    get_data = utils.GET(server = args.server, port=args.port, url = args.url + url_base + url_extra, headers = utils.headers)
     data = utils.deserialize(get_data)
 
     pprint ('Search results', data)

diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py
index af8dab2..cc23033 100644
--- a/client/gentoostats/utils.py
+++ b/client/gentoostats/utils.py
@@ -8,14 +8,14 @@ except ImportError:
 # json headers for gentoostats-cli
 headers = {'Accept': 'application/json'}
 
-def GET(server, url, headers, https=True):
+def GET(server, port, url, headers, https=True):
     """
     Get url from server using headers 
     """
     if https:
-        conn = httplib.HTTPSConnection(server)
+        conn = httplib.HTTPSConnection(server, port)
     else:
-        conn = httplib.HTTPConnection(server)
+        conn = httplib.HTTPConnection(server, port)
     try:
         conn.request('GET', url=url, headers=headers)
         data = conn.getresponse().read().decode("utf-8")


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

end of thread, other threads:[~2017-01-02  6:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-29  6:16 [gentoo-commits] proj/gentoostats:master commit in: client/, client/gentoostats/ Göktürk Yüksek
  -- strict thread matches above, loose matches on Subject: below --
2017-01-02  6:22 Göktürk Yüksek

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