MCPcopy Create free account
hub / github.com/mongodb/mongo-python-driver / Server

Class Server

pymongo/synchronous/server.py:61–383  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59
60
61class Server:
62 def __init__(
63 self,
64 server_description: ServerDescription,
65 pool: Pool,
66 monitor: Monitor,
67 topology_id: Optional[ObjectId] = None,
68 listeners: Optional[_EventListeners] = None,
69 events: Optional[ReferenceType[Queue[Any]]] = None,
70 ) -> None:
71 """Represent one MongoDB server."""
72 self._description = server_description
73 self._pool = pool
74 self._monitor = monitor
75 self._topology_id = topology_id
76 self._publish = listeners is not None and listeners.enabled_for_server
77 self._listener = listeners
78 self._events = None
79 if self._publish:
80 self._events = events() # type: ignore[misc]
81
82 def open(self) -> None:
83 """Start monitoring, or restart after a fork.
84
85 Multiple calls have no effect.
86 """
87 if not self._pool.opts.load_balanced:
88 self._monitor.open()
89
90 def reset(self, service_id: Optional[ObjectId] = None) -> None:
91 """Clear the connection pool."""
92 self.pool.reset(service_id)
93
94 def close(self) -> None:
95 """Clear the connection pool and stop the monitor.
96
97 Reconnect with open().
98 """
99 if self._publish:
100 assert self._listener is not None
101 assert self._events is not None
102 self._events.put(
103 (
104 self._listener.publish_server_closed,
105 (self._description.address, self._topology_id),
106 )
107 )
108 if _SDAM_LOGGER.isEnabledFor(logging.DEBUG):
109 _debug_log(
110 _SDAM_LOGGER,
111 message=_SDAMStatusMessage.STOP_SERVER,
112 topologyId=self._topology_id,
113 serverHost=self._description.address[0],
114 serverPort=self._description.address[1],
115 )
116
117 self._monitor.close()
118 self._pool.close()

Callers 2

test_reprMethod · 0.90
_update_serversMethod · 0.90

Calls

no outgoing calls

Tested by 1

test_reprMethod · 0.72