Conversation
At first attemp, I put the file in the wrong directory.
sdague
left a comment
There was a problem hiding this comment.
There are good things to catch, lets do them in a different place in the code though.
| 'application/soap+xml;charset=UTF-8'}, | ||
| auth=HTTPDigestAuth(self.username, self.password), | ||
| data=payload, | ||
| timeout=5.0) |
There was a problem hiding this comment.
The request timeout is typically just a backstop, and I'd be concerned that 5 seconds might not be enough, How about we make it 30?
There was a problem hiding this comment.
I agree, 5 seconds is too short. It would be nice to make this a command line arg, because it can vary widely depending on your situation
| print(pp_xml(resp.content)) | ||
| else: | ||
| return 0 | ||
| try: |
There was a problem hiding this comment.
I'd rather not do the try here. If this is consumed as a library, it makes sense for these exceptions to flow up to the next layer so that they can handle these errors however they like.
Instead I would put the exception handling and error messages printed to the user here -
Line 115 in d3e5d74
There was a problem hiding this comment.
OK, that looks good.
There was a problem hiding this comment.
Another error I'd like to catch is "KeyboardInterrupt". If I control-C while looping calls to amtctrl, the stack trace dump makes a mess out of my terminal screen. Thanks.
^CTraceback (most recent call last):
File "/usr/bin/amtctrl", line 5, in <module>
pkg_resources.run_script('amt==0.6.0', 'amtctrl')
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 540, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 1455, in run_script
execfile(script_filename, namespace, namespace)
File "/usr/lib/python2.7/site-packages/amt-0.6.0-py2.7.egg/EGG-INFO/scripts/amtctrl", line 119, in <module>
sys.exit(main())
File "/usr/lib/python2.7/site-packages/amt-0.6.0-py2.7.egg/EGG-INFO/scripts/amtctrl", line 105, in main
print(amt.wsman.friendly_power_state(client.power_status()))
File "/usr/lib/python2.7/site-packages/amt-0.6.0-py2.7.egg/amt/client.py", line 144, in power_status
data=payload)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 108, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 582, in send
r = dispatch_hook('response', hooks, r, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/hooks.py", line 41, in dispatch_hook
_hook_data = hook(hook_data, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/auth.py", line 188, in handle_401
_r = r.connection.send(prep, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 370, in send
timeout=timeout
File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 544, in urlopen
body=body, headers=headers)
File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 372, in _make_request
httplib_response = conn.getresponse(buffering=True)
File "/usr/lib64/python2.7/httplib.py", line 1089, in getresponse
response.begin()
File "/usr/lib64/python2.7/httplib.py", line 444, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python2.7/httplib.py", line 400, in _read_status
line = self.fp.readline(_MAXLINE + 1)
File "/usr/lib64/python2.7/socket.py", line 476, in readline
data = self._sock.recv(self._rbufsize)
KeyboardInterrupt
Addresses issue #17
This change is