letractively / typhoonae Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/typhoonae
Automatically exported from code.google.com/p/typhoonae
================== Typhoon App Engine ================== The TyphoonAE project aims at providing a full-featured and productive serving environment to run Google App Engine (Python) applications. It delivers the parts for building your own scalable App Engine while staying compatible with Google's API. Copyright and License --------------------- Copyright 2009, 2010, 2011 Tobias Rodaebel This software is released under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Google App Engine is a trademark of Google Inc. Installation ------------ Since the TyphoonAE Python package contains glue code for various service components, it is recommended to install this software with zc.buildout and the buildout configuration which can be downloaded here:: http://typhoonae.googlecode.com/files/typhoonae-buildout-0.2.1.tar.gz Unpack the archive and follow the steps described in the README.txt file. This package and the Google App Engine SDK 1.5.5 will also be installed by the buildout. For the ones who don't want to build their own TyphoonAE environment, we supply a preconfigured VMware appliance. See http://code.google.com/p/typhoonae/wiki/VMware for a brief documentation. Visit the project page http://typhoonae.googlecode.com for further information.
When we define URL handlers in our app.yaml the login parameter gets ignored.
That makes it
impossible to restrict visitors to only those users who have signed in, or just
those users who are
administrators for the application.
Original issue reported on code.google.com by [email protected]
on 23 Dec 2009 at 1:45
A handler definition with script:$PYTHON_LIB/path/to/module.py leads to an
uncaught ImportError
on fcgiserver startup, if the module does not exist.
Original issue reported on code.google.com by [email protected]
on 6 Oct 2009 at 9:04
Some users experiencing problems with the default login/logout handler.
Continuing after login
causes a BadGatewayError.
Authentication needs some more refactoring to make it configurable.
Original issue reported on code.google.com by [email protected]
on 1 May 2010 at 7:16
What steps will reproduce the problem?
1. Use apptool to configure an application with the cron.yaml file
consisting a single line containing "cron:"
What is the expected output? What do you see instead?
Traceback (most recent call last):
File "./bin/apptool", line 28, in <module>
typhoonae.apptool.main()
File "/home/nwm/typhoonae/src/typhoonae/apptool.py", line 711, in main
write_crontab(options, app_root)
File "/home/nwm/typhoonae/src/typhoonae/apptool.py", line 564, in
write_crontab
for entry in cron_info.cron:
TypeError: 'NoneType' object is not iterable
What version of the product are you using? On what operating system?
0.1.2 on Ubuntu 9.10
Please provide any additional information below.
Google Appengine doesn't error when uploading an app with an incomplete
cron.yaml file.
Original issue reported on code.google.com by [email protected]
on 2 Feb 2010 at 9:23
What steps will reproduce the problem?
1. End the memcached app ("stop memcached" in supervisor).
2. Load a page that uses memcache.
What is the expected output? What do you see instead?
The following is a quote from Google:
"Calls to the memcache API will *not* throw exceptions but will instead
return false for set() calls and None for get() calls (just like any other
cache miss.)".
This does not occur, instead an UnknownReadFailure exception occurs when
attempting a get(). (haven't looked into writes, but I expect it to be
similar).
What version of the product are you using? On what operating system?
Latest Typhoon, Ubuntu 9.10.
Original issue reported on code.google.com by [email protected]
on 28 Feb 2010 at 1:45
What steps will reproduce the problem?
1. Run a GQL query on a list property that uses an embeded object
What is the expected output? What do you see instead?
For example:
class MyModel(db.Model):
emails = db.ListProperty(db.Email)
query = db.GqlQuery('SELECT * FROM MyModel WHERE emails = :1',
'[email protected]')
The mongo backend translates this query to the following filter spec:
{'emails.list': '[email protected]'}
which returns no results (assuming you already have an entity with
[email protected] in your MongoDB). For the case of a list of db.Emails the
filter spec should be
{'emails.list.value': '[email protected]'}
to find the entities.
What version of the product are you using? On what operating system?
Current typhoonae checkout (2010-03-24).
Please provide any additional information below.
I've encountered this problem while experimenting with the Rietveld
example. The issue list of a user executes such a query ("Issue reviewable
by me").
Original issue reported on code.google.com by albrecht.andi
on 24 Mar 2010 at 11:11
Using google.appengine.ext.deferred.defer(...) causes a UnicodeDecodeError in
the task queue stub.
Original issue reported on code.google.com by [email protected]
on 24 Nov 2009 at 1:34
Apptool currently takes a number of commandline arguments to configure an
app. Alternatively it should accept a configuration file that contains
those parameters.
Example:
./bin/apptool --config_file=apptool.yaml parts/helloworld/
- The configuration file should be in yaml format.
- config-file and commandline-parameters can be mixed.
- additional commandline-parameters overwrite values in the config.
Original issue reported on code.google.com by [email protected]
on 24 Dec 2009 at 1:05
memcache.set_multi(
{'key_one': 1, 'key_two': u'some value'})
values = memcache.get_multi(
['key_one', 'key_two'])
raises KeyError: 'bWFwX2tleV9vbmU='
Original issue reported on code.google.com by [email protected]
on 6 Dec 2009 at 2:12
The bulkloader.py --dump command does not work due to an incompatibility issue
in the datastore
mongo stub.
Original issue reported on code.google.com by [email protected]
on 13 Mar 2010 at 2:03
I followed the instructions at
http://sites.google.com/site/gaeasaframework/typhoonae to install TyphoonAE
When running supervisord, it fails, claiming that it was unable to open an
HTTP server.
Error: Cannot open an HTTP server: socket.error reported -5
What version of the product are you using? On what operating system?
Most recent from the code repository, Ubuntu 9.04
Original issue reported on code.google.com by [email protected]
on 21 Feb 2010 at 11:17
The bin/apptool console script lacks support for parsing file pattern handler
definitions like:
- url: /images/(.*)
static_files: static/images/\1
upload: static/images/(.*)
So, they get ignored and NGINX responds with 404.
Original issue reported on code.google.com by [email protected]
on 14 Oct 2009 at 1:59
What steps will reproduce the problem?
Configure a simple helloworld app:
app.yaml:
---
application: helloworld
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: app.py
---
app.py:
---
print 'Content-Type: text/plain'
print
print u'Hello, World!'
---
When trying to write unicode strings to the FastCGI output stream it raises
"TypeError: string
argument expected for write".
Original issue reported on code.google.com by [email protected]
on 27 Nov 2009 at 10:54
Google App Engine SDK 1.2.8 introduced new memcache offset_multi method and
batch support in
incr and decr.
This needs to be implemented in TyphoonAE's memcache service API proxy stub.
Original issue reported on code.google.com by [email protected]
on 28 Feb 2010 at 1:11
The GettingStarted document provides enough information to get the system
setup and run the helloworld app.
It would be very good to have another (at least minimal) document that:
- Provides an overview of what each of the items installed in bin does.
- Provides examples of doing basic tasks such as creating additional new
apps, updating existing apps, etc....
- Provides a basic explanation of the system's layout. (ie should I put my
code under parts?)
Original issue reported on code.google.com by [email protected]
on 29 Oct 2009 at 4:13
The default login and logout handlers in
http://code.google.com/p/typhoonae/source/browse/src/typhoonae/__init__.py?r=rel
ease-
0.1.0b1#51 are blocking any custom handlers with the same url.
Original issue reported on code.google.com by [email protected]
on 29 Nov 2009 at 3:41
The bin/apptool console script should provide an option to enable HTTPS in the
NGINX config.
Original issue reported on code.google.com by [email protected]
on 4 Nov 2009 at 11:39
What steps will reproduce the problem?
1. Observe the output of: blobstore.create_upload_url('/upload')
What is the expected output? What do you see instead?
Expected output: http://192.168.1.103:8080/upload/loNgranDomsTriNGl0l
Current output: http://localhost.localdomain:8080/upload/loNgranDomsTriNGl0l
What version of the product are you using? On what operating system?
0.1.2 on Ubuntu 9.10
Original issue reported on code.google.com by [email protected]
on 2 Feb 2010 at 9:42
I have noticed that, over time, Typhoon uses more and more memory, this is
due to the modules that I use taking up more and more memory. The cause is
irrelevant.
Google handles this issue by exiting application instances when they grow too
big, and creating more when there is demand for them. I suggest that Typhoon
implements similar functionality.
Original issue reported on code.google.com by [email protected]
on 15 Apr 2010 at 11:11
The bin/apptool console script should provide a command line option to
configure the port for the
HTTP server to listen on. The default port is 8080.
At the moment this can only be changed by editing etc/server.conf and
etc/<your_app_id>-
supervisor.conf.
Original issue reported on code.google.com by [email protected]
on 10 Jan 2010 at 12:22
What steps will reproduce the problem?
1. Follow the instructions on Google's Python Appstats documentation
2. Use web-browser to load a page from the Application
What is the expected output? What do you see instead?
The page returns of 503 error. The log for the application displays an
error claiming that the appstats library was unable to be initialized.
ERROR 2010-02-27 16:25:08,137 __init__.py:94] Could not initialize
script '$PYTHON_LIB/google/appengine/ext/appstats/ui.py'. ImportError: No
module named appstats.ui
What version of the product are you using? On what operating system?
Most recent from hg as of 10min before this issue was created. Ubuntu 9.10
Please provide any additional information below.
Google's Appstats documentation:
http://code.google.com/appengine/docs/python/tools/appstats.html
Original issue reported on code.google.com by [email protected]
on 27 Feb 2010 at 5:30
What steps will reproduce the problem?
1. Create app with static file in the root "/" of the site
app.yaml:
- url: /
static_files: index.html
upload: index.html
2. Go to the root of the site.
3. Get 404 or 502 error instead of the file.
Original issue reported on code.google.com by [email protected]
on 10 Jan 2010 at 2:51
It should be possible to run multiple applications on a single installation of
TyphoonAE (in a
cluster).
Original issue reported on code.google.com by [email protected]
on 4 Jun 2010 at 9:52
Typhoon is having trouble storing on object of type BlobKey in the datastore,
by reading the traceback, it's seems likely that there is trouble with
encoding the object.
What version of the product are you using? On what operating system?
0.1.2 on Ubuntu 9.10
Please provide any additional information below.
The included file contains the Traceback information.
Original issue reported on code.google.com by [email protected]
on 3 Feb 2010 at 6:57
Attachments:
NotImplementedError: Storage class must override OpenBlob method.
Original issue reported on code.google.com by [email protected]
on 3 Feb 2010 at 5:00
TyphoonAE should implement a service to fully support the appcfg.py command
http://code.google.com/appengine/docs/python/tools/uploadinganapp.html
Original issue reported on code.google.com by [email protected]
on 4 Jun 2010 at 9:49
What steps will reproduce the problem?
1. Create app with app.yaml including this:
- url: /foo
static_dir: bar
2. Access file in "foo" dir like this: http://example.com/foo/<file>
3. Server responds with error 404.
What is the expected output? What do you see instead?
Nginx tries to look for these files in a local dir "foo" instead of a "bar".
If both dir names are equal - everything works fine.
Original issue reported on code.google.com by [email protected]
on 10 Jan 2010 at 1:59
It turns out, that the datastore stub implementation for mongoDB lacks proper
support for
Model.all(keys_only=True). This query returns full entities as well which
breaks applications using
this feature.
See
http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model_all
for
further information.
Original issue reported on code.google.com by [email protected]
on 25 Nov 2009 at 10:44
Due to renaming a constant in google.appengine.api.blobstore, uploading a file
to the blobstore
raises an AttributeError:
Traceback (most recent call last):
File "/typhoonae/bin/appserver", line 29, in <
module>
typhoonae.fcgiserver.main()
File "/typhoonae/src/typhoonae/fcgiserver.py",
line 323, in main
serve(conf, options)
File "/typhoonae/src/typhoonae/fcgiserver.py",
line 185, in serve
sys.stdin = cgi_handler_chain(CGIInAdapter(inp), os.environ)
File "/typhoonae/src/typhoonae/fcgiserver.py", line 53, in __call__
fp = handler(fp, environ)
File "/typhoonae/src/typhoonae/blobstore/handlers.py", line 153, in __call__
timestamp = format_timestamp(datetime.datetime.now())
File "/typhoonae/src/typhoonae/blobstore/handlers.py", line 147, in format_timestamp
f = google.appengine.api.blobstore.BASE_CREATION_HEADER_FORMAT
AttributeError: 'module' object has no attribute 'BASE_CREATION_HEADER_FORMAT'
Original issue reported on code.google.com by [email protected]
on 15 Apr 2010 at 11:37
Some applications utilize the SCRIPT_NAME variable from the CGI environment.
The fcgiserver.py
should provide it.
Original issue reported on code.google.com by [email protected]
on 19 Dec 2009 at 11:30
The keyword argument 'params' in
google.appengine.api.labs.taskqueue.add(url='/some_url',
params={'aKey': 'aValue'}) gets ignored.
Original issue reported on code.google.com by [email protected]
on 14 Nov 2009 at 2:12
What steps will reproduce the problem?
1. svn co python trunk
2. /path/to/python2.7 bootstrap.py
The traceback is:
Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-
0.6c9-py2.7.egg
Traceback (most recent call last):
File "bootstrap-old.py", line 22, in <module>
ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, version="0.6c9")
File "<string>", line 103, in use_setuptools
File "<string>", line 97, in do_download
File "<string>", line 158, in download_setuptools
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 397, in open
response = meth(req, response)
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 510, in
http_response
'http', request, response, code, msg, hdrs)
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 435, in error
return self._call_chain(*args)
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 369, in
_call_chain
result = func(*args)
File "/home/cloudy/cloud/lib/python2.7/urllib2.py", line 518, in
http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
As a workaround, I downloaded http://python-distribute.org/bootstrap.py -
which still didn't work by itself, but by adding the --distribute flag (
/path/to/python2.7 bootstrap.py --distribute ) it worked.
I think there's no harm in using distribute; their bootstrap.py is (almost)
fully backwards-compatible. Would you consider upgrading to the distribute-
one? It still defaults to setuptools, but picks a newer version.
Original issue reported on code.google.com by attilaolah
on 16 Feb 2010 at 4:48
The xmpp_http_dispatch.py script raises a UnicodeEncodeError when it gets XMPP
messages
containing unicode characters.
Original issue reported on code.google.com by [email protected]
on 5 Dec 2009 at 6:57
In parallel to http://code.google.com/p/googleappengine/issues/detail?id=2535
I've started with
TyphoonAE's own experimental implementation of a Web Socket API.
See http://code.google.com/p/typhoonae/wiki/WebSockets for further details.
Original issue reported on code.google.com by [email protected]
on 2 Feb 2010 at 10:11
What steps will reproduce the problem?
1. deploy an app with cron.yaml: ./bin/apptool --crontab parts/app_using_cron/
What is the expected output? What do you see instead?
Cron job is not being added error message is being shown instead:
"/home/user/env/typhoonae-buildout-0.1.3/var/tmpjBvmFB":1: premature EOF
errors in crontab file, can't install.
What version of the product are you using? On what operating system?
Fedora 12, typhoonae-0.1.3, default python 2.6
Original issue reported on code.google.com by ivovnenko
on 9 Apr 2010 at 4:38
class MyModel(db.Model):
name = db.StringProperty()
entity = MyModel(name="foobar")
memcache.set('protobuf',
db.model_to_protobuf(entity).Encode())
raises UnicodeDecodeError: 'utf8' codec can't decode byte 0x82 in position 42:
unexpected code
byte
Original issue reported on code.google.com by [email protected]
on 24 Nov 2009 at 10:58
Currently, when you modify an application, Typhoon won't serve pages using
the most recent version of the script until you restart Typhoon.
This is irritating when working out Typhoon specific bugs or developing
applications that make use of Typhoon-exclusive features (WebSockets).
It would be nice for Typhoon to behave much like the GAE SDK in this regard,
and check the application's files for modification, and be able to serve
pages based on the new updates.
If possible, I would like this feature to be optional, a Typhoon installation
used for running a public website wouldn't need this feature, and could
potentially be slowed down because of it.
Original issue reported on code.google.com by [email protected]
on 5 Mar 2010 at 12:18
The bin/apptool console script should be able to write crontab entries by
parsing a cron.yaml file.
See http://code.google.com/appengine/docs/python/config/cron.html for further
information on
scheduled tasks in GAE.
For now, one must edit the crontab manually.
Original issue reported on code.google.com by [email protected]
on 31 Oct 2009 at 8:58
The current users API is about the same as the one in the AppEngine SDK, good
for development, but useless for any practical purpose.
Replacing it with something that uses a Google account for login (much like
the official GAE), perhaps support for other systems of login could be used
too, like OpenID.
I am unsure of how administrator users should be configured, perhaps just use
a apptool flag to set it?
Original issue reported on code.google.com by [email protected]
on 4 Mar 2010 at 1:50
Integration of Nick Johnson's BDBDatastore
http://arachnid.github.com/bdbdatastore/ as alternate
datastore backend.
Original issue reported on code.google.com by [email protected]
on 30 Nov 2009 at 1:43
What steps will reproduce the problem?
from google.appengine.ext.blobstore import fetch_data, MAX_BLOB_FETCH_SIZE
What is the expected output? What do you see instead?
I expect the fetch_data function to be imported, and will be used to fetch
data from a blob located in a blobstore (as per GAE documentation)
Instead:
ImportError: cannot import name fetch_data
Original issue reported on code.google.com by [email protected]
on 29 Mar 2010 at 12:05
The appserver misinterprets script paths in app.yaml starting with '/' and
crashes with an
ImportError. The browser responds with a 502 Bad Gateway Error.
Original issue reported on code.google.com by [email protected]
on 2 May 2010 at 12:41
Some applications utilize the CURRENT_VERSION_ID variable from the CGI
environment. The
fcgiserver.py should provide it. However, TyphoonAE doesn't support multiple
versions yet.
Original issue reported on code.google.com by [email protected]
on 24 Nov 2009 at 12:48
TyphoonAE should talk XMPP. Considering ejabberd as service.
Original issue reported on code.google.com by [email protected]
on 10 Oct 2009 at 6:33
What steps will reproduce the problem?
1. Running buildout
2. Observe the amount of time it takes to download erlang
What is the expected output? What do you see instead?
The file that buildout tries to download takes much longer than what should
be expected of 57MB (under 1 minute seems fair for a 20mbit connection),
instead of the 40 minutes I just tested now.
What version of the product are you using? On what operating system?
Most recent pull as of the time of issue creation (rev 99bf0ce7da).
Tested on Ubuntu 9.10 running within VirtualBox, aswell as an Eee PC 900
also running Ubuntu 9.10.
Please provide any additional information below.
The problem seems to be that the file is downloaded from the erlang servers
at a very slow speed due to a problem on it's end (possibly slow
connection, cheap hosting, etc). Perhaps include the file with Typhoon, or
host it in the Google code project (assuming it is legal to do so) is a
potential solution.
Original issue reported on code.google.com by [email protected]
on 30 Apr 2010 at 6:33
After some investigation, I've started to implement a Datastore Redis API proxy
stub. It's placed in
its own package and repository. See
http://code.google.com/p/typhoonae/source/browse/README.rst?repo=redis for
further
information.
Design goals:
- plugs into the Google App Engine SDK and (of corse) TyphoonAE
- capable to handle larger amounts of production data
- doing well with concurrency in a multi-process environment
Original issue reported on code.google.com by [email protected]
on 14 Apr 2010 at 1:57
The bin/apptool console script should provide an option to configure the
connection to a SMTP-Server / Sendmail. Currently only localhost:25 can be
used to send mails.
Original issue reported on code.google.com by [email protected]
on 10 Dec 2009 at 11:29
When running buildout on Ubuntu 9.10 the following error occurs:
src/rabbit_access_control.erl:33: can't find include lib
"stdlib/include/qlc.hrl"
make: *** [ebin/rabbit_access_control.beam] Error 1
While:
Installing rabbitmq.
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/tmp/tmpi4Kmip/zc.buildout-1.4.3-py2.5.egg/zc/buildout/buildout.py", line 1660, in
main
File "/tmp/tmpi4Kmip/zc.buildout-1.4.3-py2.5.egg/zc/buildout/buildout.py", line 532, in
install
File "/tmp/tmpi4Kmip/zc.buildout-1.4.3-py2.5.egg/zc/buildout/buildout.py", line 1204, in
_call
File "/home/tobias/projects/typhoonae-buildout-0.1.3/eggs/rod.recipe.rabbitmq-1.0.0-
py2.5.egg/rod/recipe/rabbitmq/__init__.py", line 217, in install
return self.install_rabbitmq()
File "/home/tobias/projects/typhoonae-buildout-0.1.3/eggs/rod.recipe.rabbitmq-1.0.0-
py2.5.egg/rod/recipe/rabbitmq/__init__.py", line 204, in install_rabbitmq
raise Exception("building RabbitMQ failed")
Exception: building RabbitMQ failed
Original issue reported on code.google.com by [email protected]
on 21 Mar 2010 at 12:30
The Google App Engine SDK 1.3.0 release introduced the Blobstore API. We need
an efficient and
compatible implementation for TyphoonAE.
Original issue reported on code.google.com by [email protected]
on 22 Dec 2009 at 1:48
What steps will reproduce the problem?
1. Attempting to extract a cursor from a query
What is the expected output? What do you see instead?
I expected no error to occur, and for the cursors to work as they do in the
GAESDK and GAE.
Instead, an AssertionError exception occurs:
AssertionError: No cursor available, either this query has not been
executed or there is no compilation available for this kind of query
(Full traceback attached as a file)
What version of the product are you using? On what operating system?
Latest trunk. Ubuntu 9.10.
Please provide any additional information below.
I included a simple script that demonstrates the error occurring. It runs
fine on GAE SDK and GAE, but not Typhoon.
Original issue reported on code.google.com by [email protected]
on 27 Feb 2010 at 10:50
Attachments:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.