test/pylib: use PUT instead of GET for mutating endpoints
`ScyllaClusterManager` registers a bunch of HTTP endpoints which `ManagerClient` uses to perform operations on a cluster during a topology test. The endpoints were inconsistently using verbs, like using GET for endpoints that would have side effects. Use PUT for these.
This commit is contained in:
@@ -86,7 +86,7 @@ class ManagerClient():
|
||||
if dirty:
|
||||
self.driver_close() # Close driver connection to old cluster
|
||||
try:
|
||||
cluster_str = await self.client.get_text(f"/cluster/before-test/{test_case_name}", timeout=600)
|
||||
cluster_str = await self.client.put_json(f"/cluster/before-test/{test_case_name}", timeout=600)
|
||||
logger.info(f"Using cluster: {cluster_str} for test {test_case_name}")
|
||||
except aiohttp.ClientError as exc:
|
||||
raise RuntimeError(f"Failed before test check {exc}") from exc
|
||||
@@ -99,7 +99,7 @@ class ManagerClient():
|
||||
async def after_test(self, test_case_name: str, success: bool) -> None:
|
||||
"""Tell harness this test finished"""
|
||||
logger.debug("after_test for %s (success: %s)", test_case_name, success)
|
||||
cluster_str = await self.client.get_text(f"/cluster/after-test/{success}")
|
||||
cluster_str = await self.client.put_json(f"/cluster/after-test/{success}")
|
||||
logger.info("Cluster after test %s: %s", test_case_name, cluster_str)
|
||||
|
||||
async def is_manager_up(self) -> bool:
|
||||
@@ -135,24 +135,24 @@ class ManagerClient():
|
||||
async def mark_dirty(self) -> None:
|
||||
"""Manually mark current cluster dirty.
|
||||
To be used when a server was modified outside of this API."""
|
||||
await self.client.get_text("/cluster/mark-dirty")
|
||||
await self.client.put_json("/cluster/mark-dirty")
|
||||
|
||||
async def server_stop(self, server_id: ServerNum) -> None:
|
||||
"""Stop specified server"""
|
||||
logger.debug("ManagerClient stopping %s", server_id)
|
||||
await self.client.get_text(f"/cluster/server/{server_id}/stop")
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/stop")
|
||||
|
||||
async def server_stop_gracefully(self, server_id: ServerNum) -> None:
|
||||
"""Stop specified server gracefully"""
|
||||
logger.debug("ManagerClient stopping gracefully %s", server_id)
|
||||
await self.client.get_text(f"/cluster/server/{server_id}/stop_gracefully")
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/stop_gracefully")
|
||||
|
||||
async def server_start(self, server_id: ServerNum, expected_error: Optional[str] = None,
|
||||
wait_others: int = 0, wait_interval: float = 45) -> None:
|
||||
"""Start specified server and optionally wait for it to learn of other servers"""
|
||||
logger.debug("ManagerClient starting %s", server_id)
|
||||
params = {'expected_error': expected_error} if expected_error is not None else None
|
||||
await self.client.get_text(f"/cluster/server/{server_id}/start", params=params)
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/start", params=params)
|
||||
await self.server_sees_others(server_id, wait_others, interval = wait_interval)
|
||||
self._driver_update()
|
||||
|
||||
@@ -160,19 +160,19 @@ class ManagerClient():
|
||||
wait_interval: float = 45) -> None:
|
||||
"""Restart specified server and optionally wait for it to learn of other servers"""
|
||||
logger.debug("ManagerClient restarting %s", server_id)
|
||||
await self.client.get_text(f"/cluster/server/{server_id}/restart")
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/restart")
|
||||
await self.server_sees_others(server_id, wait_others, interval = wait_interval)
|
||||
self._driver_update()
|
||||
|
||||
async def server_pause(self, server_id: ServerNum) -> None:
|
||||
"""Pause the specified server."""
|
||||
logger.debug("ManagerClient pausing %s", server_id)
|
||||
await self.client.get(f"/cluster/server/{server_id}/pause")
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/pause")
|
||||
|
||||
async def server_unpause(self, server_id: ServerNum) -> None:
|
||||
"""Unpause the specified server."""
|
||||
logger.debug("ManagerClient unpausing %s", server_id)
|
||||
await self.client.get(f"/cluster/server/{server_id}/unpause")
|
||||
await self.client.put_json(f"/cluster/server/{server_id}/unpause")
|
||||
|
||||
async def server_add(self, replace_cfg: Optional[ReplaceConfig] = None,
|
||||
cmdline: Optional[List[str]] = None,
|
||||
@@ -218,14 +218,14 @@ class ManagerClient():
|
||||
async def decommission_node(self, server_id: ServerNum) -> None:
|
||||
"""Tell a node to decommission with Scylla REST API"""
|
||||
logger.debug("ManagerClient decommission %s", server_id)
|
||||
await self.client.get_text(f"/cluster/decommission-node/{server_id}",
|
||||
await self.client.put_json(f"/cluster/decommission-node/{server_id}",
|
||||
timeout=ScyllaServer.TOPOLOGY_TIMEOUT)
|
||||
self._driver_update()
|
||||
|
||||
async def rebuild_node(self, server_id: ServerNum) -> None:
|
||||
"""Tell a node to rebuild with Scylla REST API"""
|
||||
logger.debug("ManagerClient rebuild %s", server_id)
|
||||
await self.client.get_text(f"/cluster/rebuild-node/{server_id}",
|
||||
await self.client.put_json(f"/cluster/rebuild-node/{server_id}",
|
||||
timeout=ScyllaServer.TOPOLOGY_TIMEOUT)
|
||||
self._driver_update()
|
||||
|
||||
|
||||
@@ -1052,19 +1052,19 @@ class ScyllaClusterManager:
|
||||
add_get('/cluster/running-servers', self._cluster_running_servers)
|
||||
add_get('/cluster/host-ip/{server_id}', self._cluster_server_ip_addr)
|
||||
add_get('/cluster/host-id/{server_id}', self._cluster_host_id)
|
||||
add_get('/cluster/before-test/{test_case_name}', self._before_test_req)
|
||||
add_get('/cluster/after-test/{success}', self._after_test)
|
||||
add_get('/cluster/mark-dirty', self._mark_dirty)
|
||||
add_get('/cluster/server/{server_id}/stop', self._cluster_server_stop)
|
||||
add_get('/cluster/server/{server_id}/stop_gracefully', self._cluster_server_stop_gracefully)
|
||||
add_get('/cluster/server/{server_id}/start', self._cluster_server_start)
|
||||
add_get('/cluster/server/{server_id}/restart', self._cluster_server_restart)
|
||||
add_get('/cluster/server/{server_id}/pause', self._cluster_server_pause)
|
||||
add_get('/cluster/server/{server_id}/unpause', self._cluster_server_unpause)
|
||||
add_put('/cluster/before-test/{test_case_name}', self._before_test_req)
|
||||
add_put('/cluster/after-test/{success}', self._after_test)
|
||||
add_put('/cluster/mark-dirty', self._mark_dirty)
|
||||
add_put('/cluster/server/{server_id}/stop', self._cluster_server_stop)
|
||||
add_put('/cluster/server/{server_id}/stop_gracefully', self._cluster_server_stop_gracefully)
|
||||
add_put('/cluster/server/{server_id}/start', self._cluster_server_start)
|
||||
add_put('/cluster/server/{server_id}/restart', self._cluster_server_restart)
|
||||
add_put('/cluster/server/{server_id}/pause', self._cluster_server_pause)
|
||||
add_put('/cluster/server/{server_id}/unpause', self._cluster_server_unpause)
|
||||
add_put('/cluster/addserver', self._cluster_server_add)
|
||||
add_put('/cluster/remove-node/{initiator}', self._cluster_remove_node)
|
||||
add_get('/cluster/decommission-node/{server_id}', self._cluster_decommission_node)
|
||||
add_get('/cluster/rebuild-node/{server_id}', self._cluster_rebuild_node)
|
||||
add_put('/cluster/decommission-node/{server_id}', self._cluster_decommission_node)
|
||||
add_put('/cluster/rebuild-node/{server_id}', self._cluster_rebuild_node)
|
||||
add_get('/cluster/server/{server_id}/get_config', self._server_get_config)
|
||||
add_put('/cluster/server/{server_id}/update_config', self._server_update_config)
|
||||
add_put('/cluster/server/{server_id}/change_ip', self._server_change_ip)
|
||||
|
||||
Reference in New Issue
Block a user