blob: 788242e3cd6747a9e49eb569023f8c0d546b2656 [file] [log] [blame]
/*
* 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.fs.adl;
import org.apache.hadoop.fs.FileStatus;
import java.util.Random;
/**
* Mock up response data returned from Adl storage account.
*/
public final class TestADLResponseData {
private TestADLResponseData() {
}
public static String getGetFileStatusJSONResponse(FileStatus status) {
return "{\"FileStatus\":{\"length\":" + status.getLen() + "," +
"\"pathSuffix\":\"\",\"type\":\"" + (status.isDirectory() ?
"DIRECTORY" :
"FILE") + "\"" +
",\"blockSize\":" + status.getBlockSize() + ",\"accessTime\":" +
status.getAccessTime() + ",\"modificationTime\":" + status
.getModificationTime() + "" +
",\"replication\":" + status.getReplication() + ",\"permission\":\""
+ status.getPermission() + "\",\"owner\":\"" + status.getOwner()
+ "\",\"group\":\"" + status.getGroup() + "\"}}";
}
public static String getGetFileStatusJSONResponse() {
return getGetFileStatusJSONResponse(4194304);
}
public static String getGetAclStatusJSONResponse() {
return "{\n" + " \"AclStatus\": {\n" + " \"entries\": [\n"
+ " \"user:carla:rw-\", \n" + " \"group::r-x\"\n"
+ " ], \n" + " \"group\": \"supergroup\", \n"
+ " \"owner\": \"hadoop\", \n"
+ " \"permission\":\"775\",\n" + " \"stickyBit\": false\n"
+ " }\n" + "}";
}
public static String getGetFileStatusJSONResponse(long length) {
return "{\"FileStatus\":{\"length\":" + length + "," +
"\"pathSuffix\":\"\",\"type\":\"FILE\",\"blockSize\":268435456," +
"\"accessTime\":1452103827023,\"modificationTime\":1452103827023," +
"\"replication\":0,\"permission\":\"777\"," +
"\"owner\":\"NotSupportYet\",\"group\":\"NotSupportYet\"}}";
}
public static String getGetFileStatusJSONResponse(boolean aclBit) {
return "{\"FileStatus\":{\"length\":1024," +
"\"pathSuffix\":\"\",\"type\":\"FILE\",\"blockSize\":268435456," +
"\"accessTime\":1452103827023,\"modificationTime\":1452103827023," +
"\"replication\":0,\"permission\":\"777\"," +
"\"owner\":\"NotSupportYet\",\"group\":\"NotSupportYet\",\"aclBit\":\""
+ aclBit + "\"}}";
}
public static String getListFileStatusJSONResponse(int dirSize) {
String list = "";
for (int i = 0; i < dirSize; ++i) {
list += "{\"length\":1024,\"pathSuffix\":\"" + java.util.UUID.randomUUID()
+ "\",\"type\":\"FILE\",\"blockSize\":268435456," +
"\"accessTime\":1452103878833," +
"\"modificationTime\":1452103879190,\"replication\":0," +
"\"permission\":\"777\",\"owner\":\"NotSupportYet\"," +
"\"group\":\"NotSupportYet\"},";
}
list = list.substring(0, list.length() - 1);
return "{\"FileStatuses\":{\"FileStatus\":[" + list + "]}}";
}
public static String getListFileStatusJSONResponse(boolean aclBit) {
return "{\"FileStatuses\":{\"FileStatus\":[{\"length\":0,\"pathSuffix\":\""
+ java.util.UUID.randomUUID()
+ "\",\"type\":\"DIRECTORY\",\"blockSize\":0,"
+ "\"accessTime\":1481184513488,"
+ "\"modificationTime\":1481184513488,\"replication\":0,"
+ "\"permission\":\"770\","
+ "\"owner\":\"4b27fe1a-d9ab-4a04-ad7a-4bba72cd9e6c\","
+ "\"group\":\"4b27fe1a-d9ab-4a04-ad7a-4bba72cd9e6c\",\"aclBit\":\""
+ aclBit + "\"}]}}";
}
public static String getJSONResponse(boolean status) {
return "{\"boolean\":" + status + "}";
}
public static String getErrorIllegalArgumentExceptionJSONResponse() {
return "{\n" +
" \"RemoteException\":\n" +
" {\n" +
" \"exception\" : \"IllegalArgumentException\",\n" +
" \"javaClassName\": \"java.lang.IllegalArgumentException\",\n" +
" \"message\" : \"Invalid\"" +
" }\n" +
"}";
}
public static String getErrorBadOffsetExceptionJSONResponse() {
return "{\n" +
" \"RemoteException\":\n" +
" {\n" +
" \"exception\" : \"BadOffsetException\",\n" +
" \"javaClassName\": \"org.apache.hadoop.fs.adl"
+ ".BadOffsetException\",\n" +
" \"message\" : \"Invalid\"" +
" }\n" +
"}";
}
public static String getErrorInternalServerExceptionJSONResponse() {
return "{\n" +
" \"RemoteException\":\n" +
" {\n" +
" \"exception\" : \"RuntimeException\",\n" +
" \"javaClassName\": \"java.lang.RuntimeException\",\n" +
" \"message\" : \"Internal Server Error\"" +
" }\n" +
"}";
}
public static String getAccessControlException() {
return "{\n" + " \"RemoteException\":\n" + " {\n"
+ " \"exception\" : \"AccessControlException\",\n"
+ " \"javaClassName\": \"org.apache.hadoop.security"
+ ".AccessControlException\",\n"
+ " \"message\" : \"Permission denied: ...\"\n" + " }\n" + "}";
}
public static String getFileNotFoundException() {
return "{\n" + " \"RemoteException\":\n" + " {\n"
+ " \"exception\" : \"FileNotFoundException\",\n"
+ " \"javaClassName\": \"java.io.FileNotFoundException\",\n"
+ " \"message\" : \"File does not exist\"\n" + " }\n" + "}";
}
public static byte[] getRandomByteArrayData() {
return getRandomByteArrayData(4 * 1024 * 1024);
}
public static byte[] getRandomByteArrayData(int size) {
byte[] b = new byte[size];
Random rand = new Random();
rand.nextBytes(b);
return b;
}
}