python/aqmp: rename 'accept()' to 'start_server_and_accept()'
Previously, I had a method named "accept()" that under-the-hood calls bind(2), listen(2) *and* accept(2). I meant this as a simplification and counterpart to the one-shot "connect()" method. This is confusing to readers who expect accept() to mean *just* accept(2). Since I need to split apart the "accept()" method into multiple methods anyway (one of which strongly resembling accept(2)), it feels pertinent to rename this method *now*. Rename this all-in-one method "start_server_and_accept()" instead. Signed-off-by: John Snow <jsnow@redhat.com> Acked-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20220225205948.3693480-3-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
40196c2393
commit
0ba4e76b23
@ -91,7 +91,7 @@ class QEMUMonitorProtocol(qemu.qmp.QEMUMonitorProtocol):
|
|||||||
self._aqmp.negotiate = True
|
self._aqmp.negotiate = True
|
||||||
|
|
||||||
self._sync(
|
self._sync(
|
||||||
self._aqmp.accept(self._address),
|
self._aqmp.start_server_and_accept(self._address),
|
||||||
timeout
|
timeout
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -265,8 +265,10 @@ class AsyncProtocol(Generic[T]):
|
|||||||
|
|
||||||
@upper_half
|
@upper_half
|
||||||
@require(Runstate.IDLE)
|
@require(Runstate.IDLE)
|
||||||
async def accept(self, address: SocketAddrT,
|
async def start_server_and_accept(
|
||||||
ssl: Optional[SSLContext] = None) -> None:
|
self, address: SocketAddrT,
|
||||||
|
ssl: Optional[SSLContext] = None
|
||||||
|
) -> None:
|
||||||
"""
|
"""
|
||||||
Accept a connection and begin processing message queues.
|
Accept a connection and begin processing message queues.
|
||||||
|
|
||||||
|
@ -413,14 +413,14 @@ class Accept(Connect):
|
|||||||
assert family in ('INET', 'UNIX')
|
assert family in ('INET', 'UNIX')
|
||||||
|
|
||||||
if family == 'INET':
|
if family == 'INET':
|
||||||
await self.proto.accept(('example.com', 1))
|
await self.proto.start_server_and_accept(('example.com', 1))
|
||||||
elif family == 'UNIX':
|
elif family == 'UNIX':
|
||||||
await self.proto.accept('/dev/null')
|
await self.proto.start_server_and_accept('/dev/null')
|
||||||
|
|
||||||
async def _hanging_connection(self):
|
async def _hanging_connection(self):
|
||||||
with TemporaryDirectory(suffix='.aqmp') as tmpdir:
|
with TemporaryDirectory(suffix='.aqmp') as tmpdir:
|
||||||
sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock")
|
sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock")
|
||||||
await self.proto.accept(sock)
|
await self.proto.start_server_and_accept(sock)
|
||||||
|
|
||||||
|
|
||||||
class FakeSession(TestBase):
|
class FakeSession(TestBase):
|
||||||
@ -449,13 +449,13 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testFakeAccept(self):
|
async def testFakeAccept(self):
|
||||||
"""Test the full state lifecycle (via accept) with a no-op session."""
|
"""Test the full state lifecycle (via accept) with a no-op session."""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
self.assertEqual(self.proto.runstate, Runstate.RUNNING)
|
self.assertEqual(self.proto.runstate, Runstate.RUNNING)
|
||||||
|
|
||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testFakeRecv(self):
|
async def testFakeRecv(self):
|
||||||
"""Test receiving a fake/null message."""
|
"""Test receiving a fake/null message."""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
logname = self.proto.logger.name
|
logname = self.proto.logger.name
|
||||||
with self.assertLogs(logname, level='DEBUG') as context:
|
with self.assertLogs(logname, level='DEBUG') as context:
|
||||||
@ -471,7 +471,7 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testFakeSend(self):
|
async def testFakeSend(self):
|
||||||
"""Test sending a fake/null message."""
|
"""Test sending a fake/null message."""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
logname = self.proto.logger.name
|
logname = self.proto.logger.name
|
||||||
with self.assertLogs(logname, level='DEBUG') as context:
|
with self.assertLogs(logname, level='DEBUG') as context:
|
||||||
@ -493,7 +493,7 @@ class FakeSession(TestBase):
|
|||||||
):
|
):
|
||||||
with self.assertRaises(StateError) as context:
|
with self.assertRaises(StateError) as context:
|
||||||
if accept:
|
if accept:
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
else:
|
else:
|
||||||
await self.proto.connect('/not/a/real/path')
|
await self.proto.connect('/not/a/real/path')
|
||||||
|
|
||||||
@ -504,7 +504,7 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testAcceptRequireRunning(self):
|
async def testAcceptRequireRunning(self):
|
||||||
"""Test that accept() cannot be called when Runstate=RUNNING"""
|
"""Test that accept() cannot be called when Runstate=RUNNING"""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
await self._prod_session_api(
|
await self._prod_session_api(
|
||||||
Runstate.RUNNING,
|
Runstate.RUNNING,
|
||||||
@ -515,7 +515,7 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testConnectRequireRunning(self):
|
async def testConnectRequireRunning(self):
|
||||||
"""Test that connect() cannot be called when Runstate=RUNNING"""
|
"""Test that connect() cannot be called when Runstate=RUNNING"""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
await self._prod_session_api(
|
await self._prod_session_api(
|
||||||
Runstate.RUNNING,
|
Runstate.RUNNING,
|
||||||
@ -526,7 +526,7 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testAcceptRequireDisconnecting(self):
|
async def testAcceptRequireDisconnecting(self):
|
||||||
"""Test that accept() cannot be called when Runstate=DISCONNECTING"""
|
"""Test that accept() cannot be called when Runstate=DISCONNECTING"""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
# Cheat: force a disconnect.
|
# Cheat: force a disconnect.
|
||||||
await self.proto.simulate_disconnect()
|
await self.proto.simulate_disconnect()
|
||||||
@ -541,7 +541,7 @@ class FakeSession(TestBase):
|
|||||||
@TestBase.async_test
|
@TestBase.async_test
|
||||||
async def testConnectRequireDisconnecting(self):
|
async def testConnectRequireDisconnecting(self):
|
||||||
"""Test that connect() cannot be called when Runstate=DISCONNECTING"""
|
"""Test that connect() cannot be called when Runstate=DISCONNECTING"""
|
||||||
await self.proto.accept('/not/a/real/path')
|
await self.proto.start_server_and_accept('/not/a/real/path')
|
||||||
|
|
||||||
# Cheat: force a disconnect.
|
# Cheat: force a disconnect.
|
||||||
await self.proto.simulate_disconnect()
|
await self.proto.simulate_disconnect()
|
||||||
@ -576,7 +576,7 @@ class SimpleSession(TestBase):
|
|||||||
async def testSmoke(self):
|
async def testSmoke(self):
|
||||||
with TemporaryDirectory(suffix='.aqmp') as tmpdir:
|
with TemporaryDirectory(suffix='.aqmp') as tmpdir:
|
||||||
sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock")
|
sock = os.path.join(tmpdir, type(self.proto).__name__ + ".sock")
|
||||||
server_task = create_task(self.server.accept(sock))
|
server_task = create_task(self.server.start_server_and_accept(sock))
|
||||||
|
|
||||||
# give the server a chance to start listening [...]
|
# give the server a chance to start listening [...]
|
||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user