11import six
2-
32import datetime
43import logging
54import os
109import six .moves .urllib .request
1110import six .moves .urllib .error
1211import six .moves .urllib .parse
13-
1412import weakref
1513
1614import pkg_resources
3028puts Chef::Config.configuration.to_json
3129""" .strip ()
3230
33-
3431def api_stack_value ():
3532 if not hasattr (api_stack , 'value' ):
3633 api_stack .value = []
3734 return api_stack .value
3835
3936
4037class UnknownRubyExpression (Exception ):
41-
4238 """Token exception for unprocessed Ruby expressions."""
4339
4440
4541class ChefRequest (six .moves .urllib .request .Request ):
46-
4742 """Workaround for using PUT/DELETE with urllib2."""
48-
4943 def __init__ (self , * args , ** kwargs ):
5044 self ._method = kwargs .pop ('method' , None )
5145 # Request is an old-style class, no super() allowed.
@@ -58,7 +52,6 @@ def get_method(self):
5852
5953
6054class ChefAPI (object ):
61-
6255 """The ChefAPI object is a wrapper for a single Chef server.
6356
6457 .. admonition:: The API stack
@@ -87,7 +80,7 @@ def __init__(self, url, key, client, version='0.10.8', headers={}):
8780 self .key = key
8881 self .client = client
8982 self .version = version
90- self .headers = dict ((k .lower (), v ) for k , v in headers . items ( ))
83+ self .headers = dict ((k .lower (), v ) for k , v in six . iteritems ( headers ))
9184 self .version_parsed = pkg_resources .parse_version (self .version )
9285 self .platform = self .parsed_url .hostname == 'api.opscode.com'
9386 if not api_stack_value ():
@@ -106,19 +99,18 @@ def from_config_file(cls, path):
10699 url = key_path = client_name = None
107100 for line in open (path ):
108101 if not line .strip () or line .startswith ('#' ):
109- continue # Skip blanks and comments
102+ continue # Skip blanks and comments
110103 parts = line .split (None , 1 )
111104 if len (parts ) != 2 :
112- continue # Not a simple key/value, we can't parse it anyway
105+ continue # Not a simple key/value, we can't parse it anyway
113106 key , value = parts
114107 md = cls .ruby_string_re .search (value )
115108 if md :
116109 value = md .group (2 )
117110 else :
118111 # Not a string, don't even try
119- log .debug ('Value for %s does not look like a string: %s' % (key , value ))
112+ log .debug ('Value for {0} does not look like a string: {1}' . format (key , value ))
120113 continue
121-
122114 def _ruby_value (match ):
123115 expr = match .group (1 ).strip ()
124116 if expr == 'current_dir' :
@@ -208,17 +200,17 @@ def _request(self, method, url, data, headers):
208200
209201 def request (self , method , path , headers = {}, data = None ):
210202 auth_headers = sign_request (key = self .key , http_method = method ,
211- path = self .parsed_url .path + path .split ('?' , 1 )[0 ], body = data ,
212- host = self .parsed_url .netloc , timestamp = datetime .datetime .utcnow (),
213- user_id = self .client )
203+ path = self .parsed_url .path + path .split ('?' , 1 )[0 ], body = data ,
204+ host = self .parsed_url .netloc , timestamp = datetime .datetime .utcnow (),
205+ user_id = self .client )
214206 request_headers = {}
215207 request_headers .update (self .headers )
216- request_headers .update (dict ((k .lower (), v ) for k , v in headers . items ( )))
208+ request_headers .update (dict ((k .lower (), v ) for k , v in six . iteritems ( headers )))
217209 request_headers ['x-chef-version' ] = self .version
218210 request_headers .update (auth_headers )
219211 try :
220212 response = self ._request (method , self .url + path , data , dict (
221- (k .capitalize (), v ) for k , v in request_headers . items ( )))
213+ (k .capitalize (), v ) for k , v in six . iteritems ( request_headers )))
222214 except six .moves .urllib .error .HTTPError as e :
223215 e .content = e .read ()
224216 try :
@@ -230,7 +222,7 @@ def request(self, method, path, headers={}, data=None):
230222 return response
231223
232224 def api_request (self , method , path , headers = {}, data = None ):
233- headers = dict ((k .lower (), v ) for k , v in headers . items ( ))
225+ headers = dict ((k .lower (), v ) for k , v in six . iteritems ( headers ))
234226 headers ['accept' ] = 'application/json'
235227 if data is not None :
236228 headers ['content-type' ] = 'application/json'
0 commit comments