From 0377c6bf0ddda113a9229a5194ce94abb6f2ba40 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Wed, 22 Jun 2011 17:02:03 -0400 Subject: [PATCH] fix meta data for cloudzone --- .../cloud/agent/vmdata/JettyVmDataServer.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java index b013ec8e729..d7584ab3910 100644 --- a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java +++ b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java @@ -108,12 +108,23 @@ public class JettyVmDataServer implements VmDataServer { protected void handleUserData(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String metadataItem = req.getPathInfo(); String requester = req.getRemoteAddr(); resp.setContentType("text/html"); resp.setStatus(HttpServletResponse.SC_OK); - String userData = _vmDataServer.getVmDataItem(requester, USER_DATA); - if (userData != null){ - resp.getWriter().print(userData); + String data = null; + if (metadataItem != null) { + String[] path = metadataItem.split("/"); + if (path.length > 1) { + metadataItem = path[1]; + } + } + + if (metadataItem != null) + data = _vmDataServer.getVmDataItem(requester, metadataItem); + + if (data != null){ + resp.getWriter().print(data); } else { resp.setStatus(HttpServletResponse.SC_NOT_FOUND); resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Request not found"); @@ -249,8 +260,8 @@ public class JettyVmDataServer implements VmDataServer { Context root = new Context(_jetty,"/latest",Context.SESSIONS); root.setResourceBase(_vmDataDir); - root.addServlet(new ServletHolder(new VmDataServlet(this, USER_DATA)), "/user-data"); - root.addServlet(new ServletHolder(new VmDataServlet(this, META_DATA)), "/meta-data"); + root.addServlet(new ServletHolder(new VmDataServlet(this, USER_DATA)), "/*"); + ResourceHandler resource_handler = new ResourceHandler(); resource_handler.setResourceBase("/var/lib/images/"); @@ -344,5 +355,4 @@ public class JettyVmDataServer implements VmDataServer { String vmDataDir = _vmDataDir + File.separator + vmName; Script.runSimpleBashScript("rm -rf " + vmDataDir); } - }