Skip to content

Commit

Permalink
Basic Kinto Example
Browse files Browse the repository at this point in the history
  • Loading branch information
Bill Prin committed Feb 17, 2016
1 parent 87cc9b8 commit bafd5a8
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 15 deletions.
2 changes: 0 additions & 2 deletions appengine/angular/app.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
application: your-app-id
version: 1
runtime: python27
threadsafe: true
api_version: 1
Expand Down
2 changes: 1 addition & 1 deletion appengine/cloudsql/app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ handlers:

libraries:
- name: MySQLdb
version: "latest"
version: latest
13 changes: 8 additions & 5 deletions appengine/cloudsql/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,8 @@
import webapp2


CLOUDSQL_PROJECT = '<your-project-id>'
CLOUDSQL_INSTANCE = '<your-cloud-sql-instance>'

CLOUDSQL_PROJECT = 'bill-bigquery'
CLOUDSQL_INSTANCE = 'polls'

class MainPage(webapp2.RequestHandler):
def get(self):
Expand All @@ -47,10 +46,14 @@ def get(self):
db = MySQLdb.connect(host='localhost', user='root')

cursor = db.cursor()
cursor.execute('SHOW VARIABLES')

cursor.execute("USE `polls`")
cursor.execute("CREATE TABLE IF NOT EXISTS `polls_question` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `question_text` varchar(200) NOT NULL, `pub_date` datetime(6) NOT NULL)");

cursor.execute("INSERT INTO `polls_question` (`question_text`, `pub_date`) VALUES ('bug report value', '2016-02-09 07:38:43.532950')")
cursor.execute("SELECT `polls_question`.`question_text`, `polls_question`.`pub_date` FROM `polls_question`")
for r in cursor.fetchall():
self.response.write('{}\n'.format(r))



app = webapp2.WSGIApplication([
Expand Down
8 changes: 4 additions & 4 deletions managed_vms/kinto/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ RUN virtualenv /env
# the context of the virtualenv and will have access to its dependencies.
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH

# Kinto config file
ENV KINTO_INI /etc/kinto/kinto.ini

# Install dependencies.
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
#Create Kinto config file and replace 8888 with 8080
RUN kinto --ini $KINTO_INI --backend=memory init && sed -i 's/8888/8080/g' $KINTO_INI

# Add application code.
ADD . /app

# Use Gunicorn to serve the application.
# Run the Kinto kickoff command
CMD kinto --ini $KINTO_INI migrate && kinto --ini $KINTO_INI start

18 changes: 18 additions & 0 deletions managed_vms/kinto/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Kinto Example

This is a basic example of running Mozillas [Kinto](https://github.com/Kinto/kinto/blob/master/docs/index.rst)
on Managed VMs. Kinto provides a framework to sync JSON data across many devices and provide push notifications.
Thius example uses a custom runtime to install Kinto and edit the config to run it on port 8080, which is the port that
the base Docker image is expecting.

Since Kinto is being imported as a Python library and run as-is, no additional code is necessary.

Note that this is using Kinto's basic in-memory backend. As such, the instances are tied to 1. A production
version of Kinto would use a PostgreSQL database and Redis cluster, which would allow scaling to many instances.

If you are interested in seeing this example expanded to use PostgreSQL, you can file an Issue on the Issue
Tracker, or submit a Pull Request if you've accomplished it yourself.




6 changes: 4 additions & 2 deletions managed_vms/kinto/app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@

runtime: custom
vm: true
health_check:
enable_health_check: False

# Kinto does not respond 404 to /_ah/health (sends a redirect)
vm_health_check:
enable_health_check: False

# Using an in-memory backend so lock instances to 1
manual_scaling:
instances: 1


# Temporary setting to keep gcloud from uploading the virtualenv
skip_files:
- ^v?env$
2 changes: 1 addition & 1 deletion managed_vms/kinto/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
gunicorn==19.4.5
oauth2client==1.5.2
kinto
kinto==1.11.2

0 comments on commit bafd5a8

Please sign in to comment.