From 334721eb52d491dc7f09572080f322de60cac0aa Mon Sep 17 00:00:00 2001
From: Pete Fritchman <petef@databits.net>
Date: Thu, 20 Oct 2011 08:36:46 -0700
Subject: [PATCH] add /__heartbeat__ endpoint for load balancers - remove
 ping.txt - closes #481

---
 browserid/app.js          |  9 +++++----
 browserid/static/ping.txt |  0
 libs/heartbeat.js         |  7 +++++++
 verifier/app.js           | 21 +++++++++------------
 4 files changed, 21 insertions(+), 16 deletions(-)
 delete mode 100644 browserid/static/ping.txt
 create mode 100644 libs/heartbeat.js

diff --git a/browserid/app.js b/browserid/app.js
index a0f26efc2..f637f884a 100644
--- a/browserid/app.js
+++ b/browserid/app.js
@@ -45,6 +45,7 @@ express = require('express'),
 secrets = require('../libs/secrets.js'),
 db = require('./lib/db.js'),
 configuration = require('../libs/configuration.js'),
+heartbeat = require('../libs/heartbeat.js'),
 substitution = require('../libs/substitute.js');
 metrics = require("../libs/metrics.js"),
 logger = require("../libs/logging.js").logger;
@@ -102,9 +103,6 @@ function router(app) {
     res.render('index.ejs', {title: 'A Better Way to Sign In', fullpage: true});
   });
 
-  // BA removed .html URLs. If we have 404s,
-  // we should set up some redirects
-  
   app.get("/signup", function(req, res) {
     res.render('signup.ejs', {title: 'Sign Up', fullpage: false});
   });
@@ -141,7 +139,7 @@ function router(app) {
   REDIRECTS = {
     "/manage": "/",
     "/users": "/",
-    "/users/": "/",    
+    "/users/": "/",
     "/primaries" : "/developers",
     "/primaries/" : "/developers",
     "/developers" : "https://github.com/mozilla/browserid/wiki/How-to-Use-BrowserID-on-Your-Site"
@@ -160,6 +158,9 @@ function router(app) {
   // register all the WSAPI handlers
   wsapi.setup(app);
 
+  // setup health check / heartbeat
+  heartbeat.setup(app);
+
   // the public key
   app.get("/pk", function(req, res) {
     res.json(ca.PUBLIC_KEY.toSimpleObject());
diff --git a/browserid/static/ping.txt b/browserid/static/ping.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/libs/heartbeat.js b/libs/heartbeat.js
new file mode 100644
index 000000000..c5f2aaf70
--- /dev/null
+++ b/libs/heartbeat.js
@@ -0,0 +1,7 @@
+exports.setup = function(app) {
+  app.get("/__heartbeat__", function(req, res) {
+    res.writeHead(200);
+    res.write('ok');
+    res.end();
+  });
+};
diff --git a/verifier/app.js b/verifier/app.js
index 8a7d95e62..5e2c840d2 100644
--- a/verifier/app.js
+++ b/verifier/app.js
@@ -34,13 +34,14 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
-const   path = require('path'),
-         url = require('url'),
-          fs = require('fs'),
+const    path = require('path'),
+          url = require('url'),
+           fs = require('fs'),
 certassertion = require('./lib/certassertion.js'),
-     express = require('express'),
-     metrics = require('../libs/metrics.js'),
-     logger = require('../libs/logging.js').logger;
+      express = require('express'),
+      metrics = require('../libs/metrics.js'),
+    heartbeat = require('../libs/heartbeat.js'),
+       logger = require('../libs/logging.js').logger;
 
 logger.info("verifier server starting up");
 
@@ -114,12 +115,8 @@ exports.setup = function(app) {
     process.exit();
   });
 
-  // A simple ping hook for monitoring.
-  app.get("/ping.txt", function(req ,resp) {
-    resp.writeHead(200, {"Content-Type": "text/plain"})
-    resp.write("k.");
-    resp.end();
-  });
+  // setup health check / heartbeat
+  heartbeat.setup(app);
 
   app.post('/', doVerify);
   app.post('/verify', doVerify);
-- 
GitLab