Adding ability to balance load between different cell servers.

Adding ability to specify structure/size of the cell.

Change-Id: I5e87c99fe8812ba0a974d7815ab8ddc64193a608
diff --git a/utils/warden/src/main/java/org/onlab/warden/WardenServlet.java b/utils/warden/src/main/java/org/onlab/warden/WardenServlet.java
index 950fd42..74537a6 100644
--- a/utils/warden/src/main/java/org/onlab/warden/WardenServlet.java
+++ b/utils/warden/src/main/java/org/onlab/warden/WardenServlet.java
@@ -49,8 +49,8 @@
                 if (reservation != null) {
                     long expiration = reservation.time + reservation.duration * 60_000;
                     long remaining = (expiration - System.currentTimeMillis()) / 60_000;
-                    out.println(String.format("%-10s\t%-10s\t%s\t%s\t%s mins (%s remaining)",
-                                              cellName,
+                    out.println(String.format("%-14s\t%-10s\t%s\t%s\t%s mins (%s remaining)",
+                                              cellName + "-" + reservation.cellSpec,
                                               reservation.userName,
                                               fmt.format(new Date(reservation.time)),
                                               fmt.format(new Date(expiration)),
@@ -72,8 +72,9 @@
             String sshKey = new String(ByteStreams.toByteArray(req.getInputStream()), "UTF-8");
             String userName = req.getParameter("user");
             String sd = req.getParameter("duration");
+            String spec = req.getParameter("spec");
             int duration = isNullOrEmpty(sd) ? 0 : Integer.parseInt(sd);
-            String cellDefinition = warden.borrowCell(userName, sshKey, duration);
+            String cellDefinition = warden.borrowCell(userName, sshKey, duration, spec);
             out.println(cellDefinition);
         } catch (Exception e) {
             resp.setStatus(Response.SC_INTERNAL_SERVER_ERROR);