79 Commits

Author SHA1 Message Date
Noah Levitt
b85566c405 rename ServiceRegistry.leader() to ServiceRegistry.unique_service(); implement heartbeat in that method; only return healthy service; add a detailed docstring 2017-04-28 16:29:00 -07:00
Noah Levitt
dcccc3fa23 lots of documentation on the service registry 2017-04-28 15:23:55 -07:00
Noah Levitt
a1c5a08790 raise exception if heartbeat status_info is missing required fields 2017-04-27 14:34:07 -07:00
Noah Levitt
c5da679b1d bump version number for pull request #2, and fiddle with .travis.yml 2017-04-18 17:13:54 -07:00
Noah Levitt
efc999f7d1 Merge pull request #2 from jkafader/master
added a leader election feature and tests
2017-04-18 17:04:36 -07:00
James Kafader
a5cac606fa added a leader election feature and tests 2017-04-18 16:56:53 -07:00
Noah Levitt
2f01252c32 change logic of orm constructor so that initial values are not considered updates, and explain a bit in the docstring 2017-03-23 18:19:13 -07:00
Noah Levitt
7b17ed1057 turns out we want populate_defaults to happen in __init__, fix so things work right 2017-03-07 17:46:48 -08:00
Noah Levitt
3fd2e5cf60 new method on orm class populate_defaults(), which runs at the beginning of save(), since populating them in __init__() is problematic 2017-03-07 12:44:52 -08:00
Noah Levitt
07bc01cbbd have Document.load() return None if no such doc is found in the db 2017-03-02 10:31:29 -08:00
Noah Levitt
aa177f94b8 split tests into different source files 2017-03-02 10:16:41 -08:00
Noah Levitt
93cdf59dec update travis-ci badge url 2017-03-01 17:37:13 -08:00
Noah Levitt
246dfb5b7e new orm class method table_ensure 2017-03-01 11:40:12 -08:00
Noah Levitt
c14bae6050 new convention, call Rethinker object rr (mnemonic RethinkeR, or *double*[think]), leave rethinkdb as r per the rethinkdb convention 2017-03-01 11:20:27 -08:00
Noah Levitt
536bf8d1d8 implement or explicitly disallow other top-level dict operations on ORM Document, and add more automated tests 2017-02-28 17:56:44 -08:00
Noah Levitt
e8db41763b rename the project "doublethink" (credit goes to @adam-miller) 2017-02-28 16:44:26 -08:00
Noah Levitt
4a9978fc46 make ORM __getattr___ return None if attribute is missing; documentation improvements 2017-02-28 16:42:57 -08:00
Noah Levitt
ad0e1b1fd7 rename Document.get to Document.load to avoid masking dict.get 2017-02-24 16:52:59 -08:00
Noah Levitt
3c1faded3c keys starting with underscore are not part of the document 2017-02-24 16:40:33 -08:00
Noah Levitt
abdecc46b8 better smarter ORM with more tests 2017-02-23 16:07:14 -08:00
Noah Levitt
d76e219e7b make run-tests.sh work with the docker image that gets pulled in now, which doesn't have a 'python3.4' command 2017-02-21 16:30:29 -08:00
Noah Levitt
6d667c77b5 split into multiple source files 2017-02-21 16:27:49 -08:00
Noah Levitt
000e4d9cf6 playing with simple ORM thing 2017-02-17 17:23:53 -08:00
Noah Levitt
1ef9455885 bump version number 2016-10-31 15:39:25 -07:00
Noah Levitt
9c3439dfc5 add apache license file and some license headers 2016-10-31 15:39:12 -07:00
Noah Levitt
82faefde56 catch a failed service registry heartbeat, with unit test 2016-10-31 15:29:46 -07:00
Noah Levitt
2e76c1e570 fixes to make Dockerfile work with latest phusion/baseimage 2016-10-31 15:28:43 -07:00
Noah Levitt
79b5add08f fix encoding problem with long_description 2016-05-11 11:41:56 -07:00
Noah Levitt
8745d5b6b7 fix tests, including adjusting the timing to make tests pass more consistently 2016-04-19 20:17:22 +00:00
Noah Levitt
f9169321a6 add some tests for available_services() 2016-04-19 19:24:33 +00:00
Noah Levitt
92b8007f98 support calling ServiceRegistry.available_services() with no arguments to get all available services (services with a recent heartbeat) 2016-04-19 19:16:46 +00:00
Noah Levitt
7a8963b7c4 update version for new pypi upload 2015-12-19 00:47:19 +00:00
Noah Levitt
1c07ae2ea9 make UTC a constant available externally 2015-11-17 20:42:57 +00:00
Noah Levitt
073c1fb578 some fixes to make the tests pass 2015-11-17 20:38:10 +00:00
Noah Levitt
82d3ef45a0 run-tests.sh: clone rethinstuff source directory to temporary location (probably better solution than creating user with matching uid, setting PYTHONDONTWRITEBYTECODE, etc) 2015-11-17 20:08:18 +00:00
Noah Levitt
447f23615f convenience function rethinstuff.utcnow() 2015-11-17 20:06:51 +00:00
Noah Levitt
79b3895da3 bump version again for pypi 2015-11-06 23:42:45 +00:00
Noah Levitt
c46bd11127 bump version for pypi 2015-11-06 23:42:31 +00:00
Noah Levitt
287258e104 add method available_services to ServiceRegistry, returns all services considered up for the supplied role 2015-11-06 23:42:06 +00:00
Noah Levitt
345348fa46 set PYTHONDONTWRITEBYTECODE in one place 2015-11-06 23:40:03 +00:00
Noah Levitt
a0f5c4870f add pid and first_heartbeat to service registry automatically 2015-11-02 21:20:46 +00:00
Noah Levitt
8a212327eb fix number of replicas for services table 2015-10-31 01:10:47 +00:00
Noah Levitt
46a54357ad return whole updated status_info dict from ServiceRegistry.heartbeat() 2015-10-31 00:33:06 +00:00
Noah Levitt
97453ae66c fix rst syntax 2015-10-30 22:51:24 +00:00
Noah Levitt
b22bacbad0 add travis badge 2015-10-30 15:33:11 -07:00
Noah Levitt
bf9bf7de5a switch readme to restructuredtext for pypi, use as setup.py long_description 2015-10-30 22:28:51 +00:00
Noah Levitt
e164ea252e mention service registry in readme 2015-10-30 20:03:52 +00:00
Noah Levitt
f14b33c5cb add required fields to setup.py 2015-10-30 20:03:34 +00:00
Noah Levitt
1f64ad84d6 match outer uid within docker container, to avoid ownership/permissions issues with mounted volumes 2015-10-30 19:53:20 +00:00
Noah Levitt
58a7d48cd5 version number 0.1 2015-10-30 19:51:50 +00:00