chrisjrn / kaas

Keynote-as-a-Service: HTTP control for Keynote Presenters
31 stars 5 forks source link

Not work on current OS X Yosemite #11

Open iBobik opened 9 years ago

iBobik commented 9 years ago

I run the server as writen in README, but it firstly had problem with some permissons issues in my /Applications folder (it is issue, but it should not stop kaas):

Bobik-MacBook-Pro-2:kaas Bobik$ ./remote_server.py 
Traceback (most recent call last):
  File "./remote_server.py", line 31, in <module>
    import remote_handler
  File "/Users/Bobik/Applications/kaas/kaas/remote_handler.py", line 17, in <module>
    import keynote_script
  File "/Users/Bobik/Applications/kaas/kaas/keynote_script.py", line 204, in <module>
    INSTALLED_VERSIONS = __scan_for_apps__()
  File "/Users/Bobik/Applications/kaas/kaas/keynote_script.py", line 185, in __scan_for_apps__
    candidates = walk_selective("/Applications", [])
  File "/Users/Bobik/Applications/kaas/kaas/keynote_script.py", line 183, in walk_selective
    walk_selective(ff, found)
  File "/Users/Bobik/Applications/kaas/kaas/keynote_script.py", line 183, in walk_selective
    walk_selective(ff, found)
  File "/Users/Bobik/Applications/kaas/kaas/keynote_script.py", line 174, in walk_selective
    files = os.listdir(dir)
OSError: [Errno 13] Permission denied: '/Applications/Hry/Prehistorik 2.boxer'

I repaired permission in this folder and run server again. It wrote this errors (web service is not accessible):

Bobik-MacBook-Pro-2:kaas Bobik$ ./remote_server.py 
Generating export from frontmost keynote slideshow...
/Users/Bobik/Applications/kaas/kaas/slideshow.py:204: RuntimeWarning: tmpnam is a potential security risk to your program
  out_dir = os.tmpnam()
Output:  /var/tmp/tmp.0.t28hkB
Keynote version:  6.5
Generating build previews...
Starting server...
Now serving on: http://192.168.0.15:8000
The PIN number is: 431331
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53865)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53866)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53867)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53877)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53878)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53879)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53901)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53902)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('192.168.0.15', 53903)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "./remote_server.py", line 68, in do_GET
    if not self.authenticate():
  File "./remote_server.py", line 115, in authenticate
    nonce = self.headers["X-Kaas-Nonce"]
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'x-kaas-nonce'
----------------------------------------
chrisjrn commented 9 years ago

Part 1's a genuine bug -- we should be catching and ignoring permissions errors like that.

Part 2 -- this is happening because the API is running in authenticated mode, and you haven't authenticated. You can either make authenticate() always return True, or you can make your client code implement the authentication protocol that's in the documentation. This is working as intended.

iBobik commented 9 years ago

Part 2: It did not asked for permission. It should if in need it, or provide understandable messige and instructions what to do, not error understandable only for author :-)

chrisjrn commented 9 years ago

I agree it's not great -- as I've mentioned earlier, this is somewhat under-maintained at the moment while Keynote 6 isn't working properly. So it's still 0.1-level quality. That said, I've made a bit of effort to document it here: https://github.com/chrisjrn/kaas/blob/master/docs/HTTP_DOCS.md

On 18 November 2014 09:00, Jan Pobořil notifications@github.com wrote:

Part 2: It did not asked for permission. It should if in need it, or provide understandable messige and instructions what to do, not error understandable only for author :-)

— Reply to this email directly or view it on GitHub https://github.com/chrisjrn/kaas/issues/11#issuecomment-63384063.

--Christopher Neugebauer

Jabber: chrisjrn@gmail.com -- IRC: chrisjrn on irc.freenode.net -- WWW: http://chris.neugebauer.id.au -- Twitter: @chrisjrn