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") return qp.HasKey("freshness_strict")
} }
// Commit returns whether the commit flag is set. // Sync returns whether the sync flag is set.
func (qp QueryParams) Commit() bool { func (qp QueryParams) Sync() bool {
return qp.HasKey("commit") return qp.HasKey("sync")
} }
// Timeout returns the requested timeout duration. // Timeout returns the requested timeout duration.

@ -33,7 +33,7 @@ func Test_NewQueryParams(t *testing.T) {
{"Invalid URL Encoding", "invalid=%ZZ", nil, true}, {"Invalid URL Encoding", "invalid=%ZZ", nil, true},
{"freshness_strict", "&freshness=5s&freshness_strict", QueryParams{"freshness_strict": "", "freshness": "5s"}, false}, {"freshness_strict", "&freshness=5s&freshness_strict", QueryParams{"freshness_strict": "", "freshness": "5s"}, false},
{"freshness_strict requires freshness", "freshness_strict", nil, true}, {"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 { 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" 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 { if _, err := s.store.Committed(qp.Timeout(defaultTimeout)); err != nil {
w.WriteHeader(http.StatusServiceUnavailable) 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 return
} }
okMsg += "\n[+]commit ok" okMsg += "\n[+]commit ok"

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

@ -281,8 +281,8 @@ class Node(object):
raise_for_status(r) raise_for_status(r)
return r.json() return r.json()
def ready(self, noleader=False, commit=False): def ready(self, noleader=False, sync=False):
r = requests.get(self._ready_url(noleader, commit)) r = requests.get(self._ready_url(noleader, sync))
return r.status_code == 200 return r.status_code == 200
def expvar(self): 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())) raise Exception('leader is available but node %s at %s reports empty leader addr' % (self.node_id, self.APIAddr()))
return lr return lr
def wait_for_ready(self, commit=False, timeout=TIMEOUT): def wait_for_ready(self, sync=False, timeout=TIMEOUT):
deadline = time.time() + timeout deadline = time.time() + timeout
while time.time() < deadline: while time.time() < deadline:
if self.ready(commit): if self.ready(sync):
return return
time.sleep(0.1) time.sleep(0.1)
raise Exception('rqlite node failed to become ready within %d seconds' % timeout) raise Exception('rqlite node failed to become ready within %d seconds' % timeout)
@ -602,13 +602,13 @@ class Node(object):
return 'http://' + self.APIAddr() + '/status' return 'http://' + self.APIAddr() + '/status'
def _nodes_url(self): def _nodes_url(self):
return 'http://' + self.APIAddr() + '/nodes?nonvoters' # Getting all nodes back makes testing easier 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 = [] vals = []
nl = "" nl = ""
if noleader: if noleader:
vals = vals + ["noleader"] vals = vals + ["noleader"]
if commit: if sync:
vals = vals + ["commit"] vals = vals + ["sync"]
nl = '?' + '&'.join(vals) nl = '?' + '&'.join(vals)
return 'http://' + self.APIAddr() + '/readyz' + nl return 'http://' + self.APIAddr() + '/readyz' + nl
def _expvar_url(self): 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 # Check that we have a working single-node cluster with a leader by doing
# a write. # a write.
n1.wait_for_ready() 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)') j = n1.execute('CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)')
self.assertEqual(j, d_("{'results': [{}]}")) self.assertEqual(j, d_("{'results': [{}]}"))

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

Loading…
Cancel
Save