| /* |
| * 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; |
| } |
| } |