def render()

in server/src/main/scala/com/twitter/server/view/EndpointRegistryView.scala [20:61]


  def render(dtabEntries: Map[Dtab, Map[String, Addr]]): String =
    s"""
    <div class="row">
      <div class="col-md-12">
        <a name="endpoints"></a>
        <h3>Endpoints</h3>
        <ul>
        ${(for ((dtab, observations) <- dtabEntries) yield {
      s"""
            <li>Dtab<br/>
              <div>${renderDtab(dtab)}</div>
              <div>Resolved Endpoints<br/>
                <ul>
                ${(for ((path, addr) <- observations) yield {
        s"""<li>Path: ${path}<br/>""" +
          (addr match {
            case Addr.Bound(endpoints, metadata) =>
              val weight: Double = metadata.get(AddrWeightKey) match {
                case Some(w: Double) => w
                case Some(failed) =>
                  // Namer records weights as Doubles, so this should never happen.
                  -1.0
                case None => 1.0
              }
              s"""Weight: ${weight}<br/>
                            Endpoints:<br/>
                              <ul>
                              ${(for (endpoint <- endpoints) yield {
                s"""<li>${endpoint}</li>"""
              }).mkString("\n")}
                              </ul>
                        </li>"""
            case Addr.Failed(why) =>
              s"""Endpoint Resolution Failed: ${why}</li>"""
            case _ =>
              s"""Unbound Addr: ${addr}</li>"""
          })
      }).mkString("\n")}
                </ul>
              </div>
            </li>"""
    }).mkString("\n")}