Alexander Kukushkin
cca5bdef8f
Configure listen address for restapi via a yaml file
2015-05-26 09:07:39 +02:00
Alexander Kukushkin
3e3acc3d3a
Do not start listening port during test
2015-05-26 08:59:42 +02:00
Alexander Kukushkin
faf295dcd0
Add initialize key into Cluster
2015-05-24 19:26:35 +02:00
Alexander Kukushkin
1096e04343
Bigfix, cursor.closed contains boolean value
2015-05-24 16:00:31 +02:00
Alexander Kukushkin
db34e1f458
Write get_postgresql_status exception into log file
2015-05-24 15:57:10 +02:00
Alexander Kukushkin
755f54f266
Improve test coverage for governor.py
2015-05-24 15:42:41 +02:00
Alexander Kukushkin
8dd99170bf
Refactor exceptions handling in etcd.py and ha.py
...
update_leader can throw EtcdError exception
unused HealthiestMemberError exception is removed
2015-05-24 15:40:36 +02:00
Alexander Kukushkin
188741de5a
Merge branch 'master' of github.com:CyberDem0n/governor into restapi
2015-05-24 09:02:42 +02:00
Alexander Kukushkin
ce267d9f1e
query method will retry only in case of communication error
2015-05-24 09:01:23 +02:00
Alexander Kukushkin
d202f72a42
Added simple web server which shows current state of postgres
...
Server always returns json which contains some status of postgres:
* instance type: master/slave
* xlog location for master
* xlog received_location, replayed_location
This server could be used by haproxy
GET / returns 200 if there is postgres master behind governor.
GET /slave returns 200 is there is postgres slave behind governor
In all other cases it returns 503
Currently server always listening on 0.0.0.0:8080, but it should be
configurable. In the next versions this rest api could also report some
status of etcd and could be used by is_healthiest_node method
2015-05-23 20:29:51 +02:00
Alexander Kukushkin
f53c369c69
Connect timeout 5 seconds for psycopg2
...
Refactored query and is_healthiest_node methods
query method wont retry more then 3 times if OperationalError raised
is_healthiest_node takes into account that one of the nodes could be
still a master
2015-05-23 20:21:13 +02:00
Alexander Kukushkin
34f9b666cf
Demote master when etcd is not accessible
2015-05-22 12:26:19 +02:00
Alexander Kukushkin
09163ac454
If there is no connect_address defined in yml file use address from listen as a fallback
2015-05-22 12:03:43 +02:00
Alexander Kukushkin
62d17d68de
Use "member_ttl" with default value=3600 for members
2015-05-22 12:00:07 +02:00
Alexander Kukushkin
096e6e4556
Eventually member will expire in etcd
2015-05-22 11:55:20 +02:00
Alexander Kukushkin
bb884bac00
Move is_unlocked method from Ha into Cluster class
2015-05-22 11:45:09 +02:00
Alexander Kukushkin
4a4d9b85e5
Make sure that there is the new line at the end of pg_hba.con
2015-05-22 11:23:11 +02:00
Alexander Kukushkin
3533b790cb
Update list of success return codes for PUT and DELETE
2015-05-20 12:03:12 +02:00
Alexander Kukushkin
8378315b6d
Remove unneeded stuff from setup.py
2015-05-19 14:14:52 +02:00
Alexander Kukushkin
0d5bb48ead
Close connection when querying other members of cluster
2015-05-19 14:01:30 +02:00
Alexander Kukushkin
8946b28c51
Merge pull request #1 from CyberDem0n/testing
...
some simple tests
2015-05-19 13:55:38 +02:00
Alexander Kukushkin
16974ad752
do not test against 2.6
2015-05-19 13:32:35 +02:00
Alexander Kukushkin
c8ee7b1c6d
test against 2.6 and 3.3
2015-05-19 13:05:31 +02:00
Alexander Kukushkin
004cbf16c6
Merge branch 'master' of github.com:CyberDem0n/governor into testing
2015-05-19 13:01:15 +02:00
Alexander Kukushkin
805b3a04fc
trigger rebuild
2015-05-19 12:59:37 +02:00
Alexander Kukushkin
ebb8bce0f6
some simple tests
2015-05-19 12:49:53 +02:00
Alexander Kukushkin
3e8855799f
Add requirements.txt
2015-05-19 09:14:13 +02:00
Alexander Kukushkin
f7b6c8df40
Merge branch 'master' of github.com:CyberDem0n/governor
...
Conflicts:
helpers/postgresql.py
2015-05-18 15:58:38 +02:00
Alexander Kukushkin
e9ffcf9efe
Small refactoring of initdb call
2015-05-18 15:57:24 +02:00
Alexander Kukushkin
520de12232
Remove debug print
2015-05-18 14:39:14 +02:00
Alexander Kukushkin
a9b50b4e2e
Merge branch 'master' of github.com:CyberDem0n/governor
2015-05-18 14:34:17 +02:00
Alexander Kukushkin
ce936ceee2
Merge branch 'master' of github.com:compose/governor
...
Conflicts:
governor.py
helpers/ha.py
helpers/postgresql.py
2015-05-18 14:33:27 +02:00
Alexander Kukushkin
422512880f
last_leader_operation is the propery of Cluster object and the value is set in get_cluster method
2015-05-18 13:43:14 +02:00
Alexander Kukushkin
b24fb0488c
last_leader_operation is the propery of Cluster object and the value is set in get_cluster method
2015-05-18 13:33:27 +02:00
Alexander Kukushkin
d221d1de1c
listen_address can have more then one value separated by comma. We will use the first one to connect
2015-05-18 10:53:27 +02:00
Alexander Kukushkin
348100752b
Open connection to self via listen address
2015-05-15 16:18:31 +02:00
Alexander Kukushkin
af9ebfa3b9
Use connect_address instead of listen when building connection_string
2015-05-15 12:20:24 +02:00
Alexander Kukushkin
75ff91d017
rename connection_address to connect_address
2015-05-15 12:13:05 +02:00
Alexander Kukushkin
08865512f8
Differentiate between connection address and listen address
...
For example you can listen on 0.0.0.0 but provide service on some
didicated ip. This should cover all possible use-cases when you are
running behind firewall, load balancer or inside for example docker.
2015-05-15 12:06:04 +02:00
Alexander Kukushkin
274bc14bfb
Do not check maximum_lag_on_failover if it is not defined in config file
2015-05-15 11:38:50 +02:00
Alexander Kukushkin
8e5beb5883
Small optimization
2015-05-15 11:25:26 +02:00
Alexander Kukushkin
9487aec842
Bugfix: get_client_path might get into infinite loop when response code is not 200
2015-05-15 11:23:02 +02:00
Christopher Winslett
a4e40959f9
fix linking syntax in README
2015-05-14 14:18:52 -07:00
Christopher Winslett
94ae8b0c0d
Merge pull request #10 from compose/support-synchronous-replication
...
Support synchronous replication
2015-05-14 14:16:48 -07:00
Christopher Winslett
bec1a3c11e
support synchronous replication
2015-05-14 14:16:18 -07:00
Christopher Winslett
96a889f358
fix logic for dead leaders returning online
...
without checking that recovery.conf exists, the prior logic would not create the recovyer.conf, and a dead leader would return to a primary state
2015-05-13 16:56:25 -07:00
Christopher Winslett
3b0ea900cd
followers without a leader based on feedback from @CyberDem0n and closes #3
2015-05-13 16:37:28 -07:00
Alexander Kukushkin
4e8a0873a7
Handle sigchld, so we can run governor and postgres inside docker safely
2015-05-13 18:05:42 +02:00
Alexander Kukushkin
e6e19359df
Bugfix, write state_handler.name into leader key
2015-05-13 18:04:27 +02:00
Alexander Kukushkin
0c040b8ce2
Merge branch 'master' of github.com:compose/governor
...
Conflicts:
governor.py
helpers/etcd.py
helpers/ha.py
helpers/postgresql.py
2015-05-13 18:01:01 +02:00