def primary_node_private_dns_name()

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"]