1
0
Fork 0

Use "sync" instead of "commit"

"sync" is a better word for what is happening, "commit" is too
Raft-centric.
master
Philip O'Toole 7 months ago
parent 4a0136d044
commit 7e0baf5da8

@ -181,9 +181,9 @@ func (qp QueryParams) FreshnessStrict() bool {
return qp.HasKey("freshness_strict")
}
// Commit returns whether the commit flag is set.
func (qp QueryParams) Commit() bool {
return qp.HasKey("commit")
// Sync returns whether the sync flag is set.
func (qp QueryParams) Sync() bool {
return qp.HasKey("sync")
}
// Timeout returns the requested timeout duration.

@ -33,7 +33,7 @@ func Test_NewQueryParams(t *testing.T) {
{"Invalid URL Encoding", "invalid=%ZZ", nil, true},
{"freshness_strict", "&freshness=5s&freshness_strict", QueryParams{"freshness_strict": "", "freshness": "5s"}, false},
{"freshness_strict requires freshness", "freshness_strict", nil, true},
{"commit with timeout", "commit&timeout=2s", QueryParams{"commit": "", "timeout": "2s"}, false},
{"sync with timeout", "sync&timeout=2s", QueryParams{"sync": "", "timeout": "2s"}, false},
}
for _, tc := range testCases {

@ -1008,10 +1008,10 @@ func (s *Service) handleReadyz(w http.ResponseWriter, r *http.Request, qp QueryP
}
okMsg := "[+]node ok\n[+]leader ok\n[+]store ok"
if qp.Commit() {
if qp.Sync() {
if _, err := s.store.Committed(qp.Timeout(defaultTimeout)); err != nil {
w.WriteHeader(http.StatusServiceUnavailable)
w.Write([]byte(fmt.Sprintf("[+]node ok\n[+]leader ok\n[+]store ok\n[+]commit %s", err.Error())))
w.Write([]byte(fmt.Sprintf("[+]node ok\n[+]leader ok\n[+]store ok\n[+]sync %s", err.Error())))
return
}
okMsg += "\n[+]commit ok"

@ -1065,9 +1065,9 @@ func Test_Readyz(t *testing.T) {
cnt.Store(1)
return 0, fmt.Errorf("timeout")
}
resp, err = client.Get(host + "/readyz?commit")
resp, err = client.Get(host + "/readyz?sync")
if err != nil {
t.Fatalf("failed to make readyz request with commit set")
t.Fatalf("failed to make readyz request with sync set")
}
if resp.StatusCode != http.StatusServiceUnavailable {
t.Fatalf("failed to get expected StatusServiceUnavailable, got %d", resp.StatusCode)
@ -1080,9 +1080,9 @@ func Test_Readyz(t *testing.T) {
cnt.Store(2)
return 0, nil
}
resp, err = client.Get(host + "/readyz?commit")
resp, err = client.Get(host + "/readyz?sync")
if err != nil {
t.Fatalf("failed to make readyz request with commit set")
t.Fatalf("failed to make readyz request with sync set")
}
if resp.StatusCode != http.StatusOK {
t.Fatalf("failed to get expected StatusOK, got %d", resp.StatusCode)

@ -281,8 +281,8 @@ class Node(object):
raise_for_status(r)
return r.json()
def ready(self, noleader=False, commit=False):
r = requests.get(self._ready_url(noleader, commit))
def ready(self, noleader=False, sync=False):
r = requests.get(self._ready_url(noleader, sync))
return r.status_code == 200
def expvar(self):
@ -342,10 +342,10 @@ class Node(object):
raise Exception('leader is available but node %s at %s reports empty leader addr' % (self.node_id, self.APIAddr()))
return lr
def wait_for_ready(self, commit=False, timeout=TIMEOUT):
def wait_for_ready(self, sync=False, timeout=TIMEOUT):
deadline = time.time() + timeout
while time.time() < deadline:
if self.ready(commit):
if self.ready(sync):
return
time.sleep(0.1)
raise Exception('rqlite node failed to become ready within %d seconds' % timeout)
@ -602,13 +602,13 @@ class Node(object):
return 'http://' + self.APIAddr() + '/status'
def _nodes_url(self):
return 'http://' + self.APIAddr() + '/nodes?nonvoters' # Getting all nodes back makes testing easier
def _ready_url(self, noleader=False, commit=False):
def _ready_url(self, noleader=False, sync=False):
vals = []
nl = ""
if noleader:
vals = vals + ["noleader"]
if commit:
vals = vals + ["commit"]
if sync:
vals = vals + ["sync"]
nl = '?' + '&'.join(vals)
return 'http://' + self.APIAddr() + '/readyz' + nl
def _expvar_url(self):

@ -649,7 +649,7 @@ class TestShutdown(unittest.TestCase):
# Check that we have a working single-node cluster with a leader by doing
# a write.
n1.wait_for_ready()
n1.wait_for_ready(commit=True)
n1.wait_for_ready(sync=True)
j = n1.execute('CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)')
self.assertEqual(j, d_("{'results': [{}]}"))

@ -237,7 +237,7 @@ class TestSingleNodeReadyz(unittest.TestCase):
self.assertEqual(False, n0.ready())
self.assertEqual(True, n0.ready(noleader=True))
self.assertEqual(False, n0.ready(noleader=False))
self.assertEqual(False, n0.ready(commit=True))
self.assertEqual(False, n0.ready(sync=True))
deprovision_node(n0)
class TestEndToEndSnapshotRestoreSingle(unittest.TestCase):

Loading…
Cancel
Save