Skip to content

PortManager #234

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged

Conversation

dmitry-lipetsk
Copy link
Collaborator

@dmitry-lipetsk dmitry-lipetsk commented Apr 4, 2025

Main

  • Old PortManager was deleted
  • PostresNode uses new "abstract" interface PortManager to reserve/release port number.
  • PostgresNode.free_port always resets port number
  • OsOperations::is_free_port is added
    • LocalOsOperations::is_free_port uses python socket
    • RemoteOsOperations::is_free_port uses utility nc (netcat)
  • PostgresNode.start raises exception (InvalidOperationException) if node is None

Refactoring

  • PostgresNode::port is RO-property now. It throws if port is None
  • PostgresNode::host is RO-property now
  • PostgresNode::ssh_key is RO-property now
  • PostgresNode::name is RO-property now

PostgresNode uses PostgresNodePortManager to reserve/release port number

New PostgresNode RO-properties are added:
 - name
 - host
 - port
 - ssh_key
- [del] TestTestgresLocal.test_pgbench
- [del] TestTestgresRemote.test_pgbench
- test_port_rereserve_during_node_start
- test_port_conflict
…sg_arg]

- RemoteOperations::message
- RemoteOperations::path_exists
- RemoteOperations::is_port_free
Let's install it (netcat-traditional) explicitly.
A number of attempts is increased to 128.

The previous value (10) is not enough and test could fail.
- [del] assert hasattr(os_ops, "host")

During this test we get another exception:

<[AttributeError("'PostgresNode' object has no attribute '_port'") raised in repr()] PostgresNode object at 0x782b67d79dc0>
Tests are added:
 - test_try_to_get_port_after_free_manual_port
 - test_try_to_start_node_after_free_manual_port
@dmitry-lipetsk dmitry-lipetsk merged commit 14bc733 into postgrespro:master Apr 6, 2025
1 check passed
fabriziomello added a commit to fabriziomello/timescaledb that referenced this pull request Apr 22, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
fabriziomello added a commit to fabriziomello/timescaledb that referenced this pull request Apr 22, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
fabriziomello added a commit to fabriziomello/timescaledb that referenced this pull request Apr 22, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
fabriziomello added a commit to fabriziomello/timescaledb that referenced this pull request Apr 22, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
fabriziomello added a commit to timescale/timescaledb that referenced this pull request Apr 23, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
timescale-automation pushed a commit to timescale/timescaledb that referenced this pull request Apr 23, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
(cherry picked from commit 3e61107)
timescale-automation pushed a commit to timescale/timescaledb that referenced this pull request Apr 23, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
(cherry picked from commit 3e61107)
kpan2034 pushed a commit to kpan2034/timescaledb that referenced this pull request Apr 28, 2025
A new testgres framework was released that makes `PostgresNode::port`
read-only. Fixed it by properly set the port when initializing a new
node.

References:
https://github.com/postgrespro/testgres/releases/tag/1.11.0
postgrespro/testgres#234
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant