in sagemaker_studio_sparkmagic_lib/emr.py [0:0]
def primary_node_private_dns_name(self):
"""
Returns primary node private DNS name using describe cluster result
"""
# Master node public dns can actually be private DNS if EMR cluster is launched in
# private subnet hence we check both names. See
# https://docs.aws.amazon.com/emr/latest/APIReference/API_Cluster.html
master_node_public_dns = self._cluster["MasterPublicDnsName"]
for instance in self._instances:
if (
"PublicDnsName" in instance
and instance["PublicDnsName"] == master_node_public_dns
) or (
"PrivateDnsName" in instance
and instance["PrivateDnsName"] == master_node_public_dns
):
master_instance_details = instance
if master_instance_details is None:
raise ValueError(
f"Failed to find primary node ip address needed to communicate with Livy server."
f"Please ensure clusterId{self._cluster['Id']} is correct"
) from None
return master_instance_details["PrivateDnsName"]