in mysqloperator/controller/group_monitor.py [0:0]
def find_primary(self) -> Tuple[Optional['mysqlx.Session'], bool]:
not_primary = None
pods = self.cluster.get_pods()
# Try to find the PRIMARY the easy way
for pod in pods:
member_info = pod.get_membership_info()
if member_info and member_info.get("role") == "PRIMARY":
session = self.try_connect(pod)
if session:
s = shellutils.jump_to_primary(session, self.account)
if s:
if s != session:
session.close()
return s, True
else:
not_primary = session
# Try to connect to anyone and find the primary from there
for pod in pods:
session = self.try_connect(pod)
if session:
s = shellutils.jump_to_primary(session, self.account)
if s:
if s != session:
session.close()
return s, True
else:
not_primary = session
return not_primary, False