HDFS-6225. Merge r1586181 from trunk.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1586182 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
129bf91c5e
commit
55758cbd81
|
@ -40,6 +40,9 @@ Release 2.5.0 - UNRELEASED
|
||||||
HDFS-6170. Support GETFILESTATUS operation in WebImageViewer.
|
HDFS-6170. Support GETFILESTATUS operation in WebImageViewer.
|
||||||
(Akira Ajisaka via wheat9)
|
(Akira Ajisaka via wheat9)
|
||||||
|
|
||||||
|
HDFS-6225. Remove the o.a.h.hdfs.server.common.UpgradeStatusReport.
|
||||||
|
(wheat9)
|
||||||
|
|
||||||
OPTIMIZATIONS
|
OPTIMIZATIONS
|
||||||
|
|
||||||
BUG FIXES
|
BUG FIXES
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
/**
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.apache.hadoop.hdfs.server.common;
|
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base upgrade upgradeStatus class.
|
|
||||||
* Overload this class if specific status fields need to be reported.
|
|
||||||
*
|
|
||||||
* Describes status of current upgrade.
|
|
||||||
*/
|
|
||||||
@InterfaceAudience.Private
|
|
||||||
public class UpgradeStatusReport {
|
|
||||||
protected final int version;
|
|
||||||
protected final short upgradeStatus;
|
|
||||||
protected final boolean finalized;
|
|
||||||
|
|
||||||
public UpgradeStatusReport(int version, short status, boolean isFinalized) {
|
|
||||||
this.version = version;
|
|
||||||
this.upgradeStatus = status;
|
|
||||||
this.finalized = isFinalized;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the layout version of the currently running upgrade.
|
|
||||||
* @return layout version
|
|
||||||
*/
|
|
||||||
public int getVersion() {
|
|
||||||
return this.version;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get upgrade upgradeStatus as a percentage of the total upgrade done.
|
|
||||||
*
|
|
||||||
* @see Upgradeable#getUpgradeStatus()
|
|
||||||
*/
|
|
||||||
public short getUpgradeStatus() {
|
|
||||||
return upgradeStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is current upgrade finalized.
|
|
||||||
* @return true if finalized or false otherwise.
|
|
||||||
*/
|
|
||||||
public boolean isFinalized() {
|
|
||||||
return this.finalized;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get upgradeStatus data as a text for reporting.
|
|
||||||
* Should be overloaded for a particular upgrade specific upgradeStatus data.
|
|
||||||
*
|
|
||||||
* @param details true if upgradeStatus details need to be included,
|
|
||||||
* false otherwise
|
|
||||||
* @return text
|
|
||||||
*/
|
|
||||||
public String getStatusText(boolean details) {
|
|
||||||
return "Upgrade for version " + getVersion()
|
|
||||||
+ (upgradeStatus<100 ?
|
|
||||||
" is in progress. Status = " + upgradeStatus + "%" :
|
|
||||||
" has been completed."
|
|
||||||
+ "\nUpgrade is " + (finalized ? "" : "not ")
|
|
||||||
+ "finalized.");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print basic upgradeStatus details.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return getStatusText(false);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -586,33 +586,6 @@ public class TestJspHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testUpgradeStatusReport() {
|
|
||||||
short status = 6;
|
|
||||||
int version = 15;
|
|
||||||
String EXPECTED_NOTF_PATTERN = "Upgrade for version {0} has been completed.\nUpgrade is not finalized.";
|
|
||||||
String EXPECTED_PATTERN = "Upgrade for version {0} is in progress. Status = {1}%";
|
|
||||||
|
|
||||||
UpgradeStatusReport upgradeStatusReport = new UpgradeStatusReport(version,
|
|
||||||
status, true);
|
|
||||||
assertTrue(upgradeStatusReport.getVersion() == version);
|
|
||||||
assertTrue(upgradeStatusReport.getUpgradeStatus() == status);
|
|
||||||
assertTrue(upgradeStatusReport.isFinalized());
|
|
||||||
|
|
||||||
assertEquals(MessageFormat.format(EXPECTED_PATTERN, version, status),
|
|
||||||
upgradeStatusReport.getStatusText(true));
|
|
||||||
|
|
||||||
status += 100;
|
|
||||||
upgradeStatusReport = new UpgradeStatusReport(version, status, false);
|
|
||||||
assertFalse(upgradeStatusReport.isFinalized());
|
|
||||||
assertTrue(upgradeStatusReport.toString().equals(
|
|
||||||
MessageFormat.format(EXPECTED_NOTF_PATTERN, version)));
|
|
||||||
assertTrue(upgradeStatusReport.getStatusText(false).equals(
|
|
||||||
MessageFormat.format(EXPECTED_NOTF_PATTERN, version)));
|
|
||||||
assertTrue(upgradeStatusReport.getStatusText(true).equals(
|
|
||||||
MessageFormat.format(EXPECTED_NOTF_PATTERN, version)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAuthority(){
|
public void testAuthority(){
|
||||||
DatanodeID dnWithIp = new DatanodeID("127.0.0.1", "hostName", null,
|
DatanodeID dnWithIp = new DatanodeID("127.0.0.1", "hostName", null,
|
||||||
|
|
Loading…
Reference in New Issue