001package org.apache.hadoop.hdfs.server.namenode;
002
003import javax.servlet.*;
004import javax.servlet.http.*;
005import javax.servlet.jsp.*;
006import org.apache.hadoop.hdfs.server.namenode.NamenodeJspHelper.XMLBlockInfo;
007import org.apache.hadoop.hdfs.server.common.JspHelper;
008import org.znerd.xmlenc.*;
009
010public final class block_005finfo_005fxml_jsp extends org.apache.jasper.runtime.HttpJspBase
011    implements org.apache.jasper.runtime.JspSourceDependent {
012
013
014/*
015 * Licensed to the Apache Software Foundation (ASF) under one
016 * or more contributor license agreements.  See the NOTICE file 
017 * distributed with this work for additional information
018 * regarding copyright ownership.  The ASF licenses this file
019 * to you under the Apache License, Version 2.0 (the
020 * "License"); you may not use this file except in compliance
021 * with the License.  You may obtain a copy of the License at
022 *
023 *     http://www.apache.org/licenses/LICENSE-2.0
024 *
025 * Unless required by applicable law or agreed to in writing, software
026 * distributed under the License is distributed on an "AS IS" BASIS,
027 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
028 * See the License for the specific language governing permissions and
029 * limitations under the License.
030 */
031 
032 /*
033 
034  This script outputs information about a block (as XML). The script accepts a 
035  GET parameter named blockId which should be block id (as a long).
036
037  Example output is below (the blockId was 8888705098093096373):
038    <block_info>
039      <block_id>8888705098093096373</block_id>
040      <block_name>blk_8888705098093096373</block_name>
041      <file>
042        <local_name>some_file_name</local_name>
043        <local_directory>/input/</local_directory>
044        <user_name>user_name</user_name>
045        <group_name>supergroup</group_name>
046        <is_directory>false</is_directory>
047        <access_time>1251166313680</access_time>
048        <is_under_construction>false</is_under_construction>
049        <ds_quota>-1</ds_quota>
050        <permission_status>user_name:supergroup:rw-r--r--</permission_status>
051        <replication>1</replication>
052        <disk_space_consumed>2815</disk_space_consumed>
053        <preferred_block_size>67108864</preferred_block_size>
054      </file>
055      <replicas>
056        <replica>
057          <host_name>hostname</host_name>
058          <is_corrupt>false</is_corrupt>
059        </replica>
060      </replicas>
061    </block_info> 
062
063  Notes:
064    - block_info/file will only exist if the file can be found
065    - block_info/replicas can contain 0 or more children 
066    - If an error exists, block_info/error will exist and contain a human
067      readable error message
068 
069*/
070 
071
072
073  //for java.io.Serializable
074  private static final long serialVersionUID = 1L;  
075
076  private static java.util.List _jspx_dependants;
077
078  public Object getDependants() {
079    return _jspx_dependants;
080  }
081
082  public void _jspService(HttpServletRequest request, HttpServletResponse response)
083        throws java.io.IOException, ServletException {
084
085    JspFactory _jspxFactory = null;
086    PageContext pageContext = null;
087    HttpSession session = null;
088    ServletContext application = null;
089    ServletConfig config = null;
090    JspWriter out = null;
091    Object page = this;
092    JspWriter _jspx_out = null;
093    PageContext _jspx_page_context = null;
094
095
096    try {
097      _jspxFactory = JspFactory.getDefaultFactory();
098      response.setContentType("application/xml");
099      pageContext = _jspxFactory.getPageContext(this, request, response,
100                        null, true, 8192, true);
101      _jspx_page_context = pageContext;
102      application = pageContext.getServletContext();
103      config = pageContext.getServletConfig();
104      session = pageContext.getSession();
105      out = pageContext.getOut();
106      _jspx_out = out;
107
108      out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
109
110NameNode nn = NameNodeHttpServer.getNameNodeFromContext(application);
111String namenodeRole = nn.getRole().toString();
112FSNamesystem fsn = nn.getNamesystem();
113
114Long blockId = null;
115try {
116  blockId = JspHelper.validateLong(request.getParameter("blockId"));
117} catch(NumberFormatException e) {
118  blockId = null;
119}
120
121
122XMLBlockInfo bi = new XMLBlockInfo(fsn, blockId);
123XMLOutputter doc = new XMLOutputter(out, "UTF-8");
124bi.toXML(doc);
125
126
127    } catch (Throwable t) {
128      if (!(t instanceof SkipPageException)){
129        out = _jspx_out;
130        if (out != null && out.getBufferSize() != 0)
131          out.clearBuffer();
132        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
133      }
134    } finally {
135      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
136    }
137  }
138}