8000 Move base handler back into exposition. · melnikk/client_python@0bebb0a · GitHub
[go: up one dir, main page]

Skip to content

Commit 0bebb0a

Browse files
committed
Move base handler back into exposition.
1 parent 7f863dd commit 0bebb0a

File tree

4 files changed

+22
-31
lines changed

4 files changed

+22
-31
lines changed

prometheus_client/exposition.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,18 @@
1010
from wsgiref.simple_server import make_server
1111

1212
from . import core
13-
14-
from .handlers.base import handler as default_handler
15-
1613
try:
1714
from BaseHTTPServer import BaseHTTPRequestHandler
1815
from BaseHTTPServer import HTTPServer
16+
from urllib2 import build_opener, Request, HTTPHandler
1917
from urllib import quote_plus
2018
from urlparse import parse_qs, urlparse
2119
except ImportError:
2220
# Python 3
2321
unicode = str
2422
from http.server import BaseHTTPRequestHandler
2523
from http.server import HTTPServer
24+
from urllib.request import build_opener, Request, HTTPHandler
2625
from urllib.parse import quote_plus, parse_qs, urlparse
2726

2827

@@ -119,7 +118,22 @@ def write_to_textfile(path, registry):
119118
os.rename(tmppath, path)
120119

121120

122-
def push_to_gateway(gateway, job, registry, grouping_key=None, timeout=None, handler=None):
121+
def default_handler(url, method, timeout, headers, data):
122+
def handle():
123+
'''Default handler that implements HTTP/HTTPS connections.'''
124+
request = Request(url, data=data)
125+
request.get_method = lambda: method
126+
for k, v in headers:
127+
request.add_header(k, v)
128+
resp = build_opener(HTTPHandler).open(request, timeout=timeout)
129+
if resp.code >= 400:
130+
raise IOError("error talking to pushgateway: {0} {1}".format(
131+
resp.code, resp.msg))
132+
133+
return handle
134+
135+
136+
def push_to_gateway(gateway, job, registry, grouping_key=None, timeout=None, handler=default_handler):
123137
'''Push metrics to the given pushgateway.
124138
125139
`gateway` the url for your push gateway. Either of the form
@@ -161,7 +175,7 @@ def push_to_gateway(gateway, job, registry, grouping_key=None, timeout=None, han
161175
_use_gateway('PUT', gateway, job, registry, grouping_key, timeout, handler)
162176

163177

164-
def pushadd_to_gateway(gateway, job, registry, grouping_key=None, timeout=None, handler=None):
178+
def pushadd_to_gateway(gateway, job, registry, grouping_key=None, timeout=None, handler=default_handler):
165179
'''PushAdd metrics to the given pushgateway.
166180
167181
`gateway` the url for your push gateway. Either of the form
@@ -185,7 +199,7 @@ def pushadd_to_gateway(gateway, job, registry, grouping_key=None, timeout=None,
185199
_use_gateway('POST', gateway, job, registry, grouping_key, timeout, handler)
186200

187201

188-
def delete_from_gateway(gateway, job, grouping_key=None, timeout=None, handler=None):
202+
def delete_from_gateway(gateway, job, grouping_key=None, timeout=None, handler=default_handler):
189203
'''Delete metrics from the given pushgateway.
190204
191205
`gateway` the url for your push gate 10000 way. Either of the form
@@ -224,8 +238,6 @@ def _use_gateway(method, gateway, job, registry, grouping_key, timeout, handler)
224238
for k, v in sorted(grouping_key.items())])
225239

226240
headers=[('Content-Type', CONTENT_TYPE_LATEST)]
227-
if handler is None:
228-
handler = default_handler
229241
handler(url=url, method=method, timeout=timeout,
230242
headers=headers, data=data)()
231243

prometheus_client/handlers/base.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

prometheus_client/handlers/basic_auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import base64
44

5-
from prometheus_client.handlers.base import handler as default_handler
5+
from prometheus_client.exposition import default_handler
66

77
def handler(url, method, timeout, headers, data, username = None, password = None):
88
def handle():

tests/test_exposition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from prometheus_client import CollectorRegistry, generate_latest
1414
from prometheus_client import push_to_gateway, pushadd_to_gateway, delete_from_gateway
1515
from prometheus_client import CONTENT_TYPE_LATEST, instance_ip_grouping_key
16-
from prometheus_client.handlers.base import handler as default_handler
16+
from prometheus_client.exposition import default_handler
1717
from prometheus_client.handlers.basic_auth import handler as basic_auth_handler
1818

1919
try:

0 commit comments

Comments
 (0)
0