@@ -108,12 +108,23 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
108108
109109 protected void handleUserData (HttpServletRequest req , HttpServletResponse resp )
110110 throws ServletException , IOException {
111+ String metadataItem = req .getPathInfo ();
111112 String requester = req .getRemoteAddr ();
112113 resp .setContentType ("text/html" );
113114 resp .setStatus (HttpServletResponse .SC_OK );
114- String userData = _vmDataServer .getVmDataItem (requester , USER_DATA );
115- if (userData != null ){
116- resp .getWriter ().print (userData );
115+ String data = null ;
116+ if (metadataItem != null ) {
117+ String [] path = metadataItem .split ("/" );
118+ if (path .length > 1 ) {
119+ metadataItem = path [1 ];
120+ }
121+ }
122+
123+ if (metadataItem != null )
124+ data = _vmDataServer .getVmDataItem (requester , metadataItem );
125+
126+ if (data != null ){
127+ resp .getWriter ().print (data );
117128 } else {
118129 resp .setStatus (HttpServletResponse .SC_NOT_FOUND );
119130 resp .sendError (HttpServletResponse .SC_NOT_FOUND , "Request not found" );
@@ -249,8 +260,8 @@ private void setupJetty(int vmDataPort, int fileservingPort) throws Exception {
249260
250261 Context root = new Context (_jetty ,"/latest" ,Context .SESSIONS );
251262 root .setResourceBase (_vmDataDir );
252- root .addServlet (new ServletHolder (new VmDataServlet (this , USER_DATA )), "/user-data " );
253- root . addServlet ( new ServletHolder ( new VmDataServlet ( this , META_DATA )), "/meta-data" );
263+ root .addServlet (new ServletHolder (new VmDataServlet (this , USER_DATA )), "/* " );
264+
254265
255266 ResourceHandler resource_handler = new ResourceHandler ();
256267 resource_handler .setResourceBase ("/var/lib/images/" );
@@ -344,5 +355,4 @@ public void handleVmStopped(String vmName) {
344355 String vmDataDir = _vmDataDir + File .separator + vmName ;
345356 Script .runSimpleBashScript ("rm -rf " + vmDataDir );
346357 }
347-
348358}
0 commit comments