http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/VolumeProcessTemplate.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/VolumeProcessTemplate.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/VolumeProcessTemplate.java
deleted file mode 100644
index 0cd652a..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/VolumeProcessTemplate.java
+++ /dev/null
@@ -1,274 +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.ozone.web.handlers;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.ozone.protocol.proto.KeySpaceManagerProtocolProtos;
-import org.apache.hadoop.ozone.web.exceptions.ErrorTable;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.web.interfaces.StorageHandler;
-import org.apache.hadoop.ozone.web.interfaces.UserAuth;
-import org.apache.hadoop.ozone.web.response.ListBuckets;
-import org.apache.hadoop.ozone.web.response.ListVolumes;
-import org.apache.hadoop.ozone.web.response.VolumeInfo;
-import org.apache.hadoop.ozone.web.utils.OzoneUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.IOException;
-import java.nio.file.DirectoryNotEmptyException;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.NoSuchFileException;
-
-import static java.net.HttpURLConnection.HTTP_OK;
-import static org.apache.hadoop.ozone.OzoneConsts.OZONE_COMPONENT;
-import static org.apache.hadoop.ozone.OzoneConsts.OZONE_RESOURCE;
-import static org.apache.hadoop.ozone.OzoneConsts.OZONE_REQUEST;
-import static org.apache.hadoop.ozone.OzoneConsts.OZONE_USER;
-
-
-/**
- * This class abstracts way the repetitive tasks in
- * handling volume related code.
- */
-@InterfaceAudience.Private
-public abstract class VolumeProcessTemplate {
-  private static final Logger LOG =
-      LoggerFactory.getLogger(VolumeProcessTemplate.class);
-
-
-  /**
-   * The handle call is the common functionality for Volume
-   * handling code.
-   *
-   * @param volume - Name of the Volume
-   * @param request - request
-   * @param info - UriInfo
-   * @param headers - Http Headers
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  public Response handleCall(String volume, Request request, UriInfo info,
-                             HttpHeaders headers) throws OzoneException {
-    String reqID = OzoneUtils.getRequestID();
-    String hostName = OzoneUtils.getHostName();
-    MDC.put(OZONE_COMPONENT, "ozone");
-    MDC.put(OZONE_REQUEST, reqID);
-    UserArgs userArgs  = null;
-    try {
-      userArgs = new UserArgs(reqID, hostName, request, info, headers);
-      OzoneUtils.validate(request, headers, reqID, volume, hostName);
-
-      // we use the same logic for both bucket and volume names
-      OzoneUtils.verifyResourceName(volume);
-      UserAuth auth = UserHandlerBuilder.getAuthHandler();
-
-      userArgs.setUserName(auth.getUser(userArgs));
-      MDC.put(OZONE_USER, userArgs.getUserName());
-      VolumeArgs args = new VolumeArgs(volume, userArgs);
-
-      MDC.put(OZONE_RESOURCE, args.getResourceName());
-      Response response =  doProcess(args);
-      LOG.info("Success");
-      MDC.clear();
-      return response;
-
-    } catch (IllegalArgumentException ex) {
-      LOG.error("Illegal argument.", ex);
-      throw ErrorTable.newError(ErrorTable.INVALID_VOLUME_NAME, userArgs, ex);
-    } catch (IOException ex) {
-      handleIOException(volume, reqID, hostName, ex);
-    }
-    return null;
-  }
-
-  /**
-   * Specific handler for each call.
-   *
-   * @param args - Volume Args
-   *
-   * @return - Response
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  public abstract Response doProcess(VolumeArgs args)
-      throws IOException, OzoneException;
-
-  /**
-   * Maps Java File System Exceptions to Ozone Exceptions in the Volume path.
-   *
-   * @param volume - Name of the Volume
-   * @param reqID - Request ID
-   * @param hostName - HostName
-   * @param fsExp - Exception
-   *
-   * @throws OzoneException
-   */
-  private void handleIOException(String volume, String reqID, String hostName,
-                                 IOException fsExp) throws OzoneException {
-    LOG.error("IOException:", fsExp);
-    OzoneException exp = null;
-
-    if ((fsExp != null && fsExp.getMessage().endsWith(
-        KeySpaceManagerProtocolProtos.Status.VOLUME_ALREADY_EXISTS.name()))
-        || fsExp instanceof FileAlreadyExistsException) {
-      exp = ErrorTable
-          .newError(ErrorTable.VOLUME_ALREADY_EXISTS, reqID, volume, hostName);
-    }
-
-    if (fsExp instanceof DirectoryNotEmptyException) {
-      exp = ErrorTable
-          .newError(ErrorTable.VOLUME_NOT_EMPTY, reqID, volume, hostName);
-    }
-
-    if (fsExp instanceof NoSuchFileException) {
-      exp = ErrorTable
-          .newError(ErrorTable.INVALID_VOLUME_NAME, reqID, volume, hostName);
-    }
-
-    if ((fsExp != null) && (exp != null)) {
-      exp.setMessage(fsExp.getMessage());
-    }
-
-    // We don't handle that FS error yet, report a Server Internal Error
-    if (exp == null) {
-      exp =
-          ErrorTable.newError(ErrorTable.SERVER_ERROR, reqID, volume, 
hostName);
-      if (fsExp != null) {
-        exp.setMessage(fsExp.getMessage());
-      }
-    }
-    throw exp;
-  }
-
-  /**
-   * Set the user provided string into args and throw ozone exception
-   * if needed.
-   *
-   * @param args - volume args
-   * @param quota - quota sting
-   *
-   * @throws OzoneException
-   */
-  void setQuotaArgs(VolumeArgs args, String quota) throws OzoneException {
-    try {
-      args.setQuota(quota);
-    } catch (IllegalArgumentException ex) {
-      LOG.debug("Malformed Quota.", ex);
-      throw ErrorTable.newError(ErrorTable.MALFORMED_QUOTA, args, ex);
-    }
-  }
-
-  /**
-   * Wraps calls into volumeInfo data.
-   *
-   * @param args - volumeArgs
-   *
-   * @return - VolumeInfo
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  Response getVolumeInfoResponse(VolumeArgs args)
-      throws IOException, OzoneException {
-    StorageHandler fs = StorageHandlerBuilder.getStorageHandler();
-    VolumeInfo info = fs.getVolumeInfo(args);
-    return OzoneUtils.getResponse(args, HTTP_OK, info.toJsonString());
-  }
-
-  /**
-   * Returns all the volumes belonging to a user.
-   *
-   * @param user - userArgs
-   * @return - Response
-   * @throws OzoneException
-   * @throws IOException
-   */
-  Response getVolumesByUser(UserArgs user, String prefix, int maxKeys,
-      String prevKey, boolean rootScan) throws OzoneException, IOException {
-
-    String validatedUser = user.getUserName();
-    try {
-      UserAuth auth = UserHandlerBuilder.getAuthHandler();
-      if(rootScan && !auth.isAdmin(user)) {
-        throw ErrorTable.newError(ErrorTable.UNAUTHORIZED, user);
-      }
-      if (auth.isAdmin(user)) {
-        validatedUser = auth.getOzoneUser(user);
-        if (validatedUser == null) {
-          validatedUser = auth.getUser(user);
-        }
-      }
-
-      UserArgs onBehalfOf =
-          new UserArgs(validatedUser, user.getRequestID(), user.getHostName(),
-              user.getRequest(), user.getUri(), user.getHeaders());
-
-      StorageHandler fs = StorageHandlerBuilder.getStorageHandler();
-      ListArgs<UserArgs> listArgs = new ListArgs<>(onBehalfOf, prefix,
-          maxKeys, prevKey);
-      listArgs.setRootScan(rootScan);
-      ListVolumes volumes = fs.listVolumes(listArgs);
-      return OzoneUtils.getResponse(user, HTTP_OK, volumes.toJsonString());
-    } catch (IOException ex) {
-      LOG.debug("unable to get the volume list for the user.", ex);
-      OzoneException exp = ErrorTable.newError(ErrorTable.SERVER_ERROR,
-          user, ex);
-      exp.setMessage("unable to get the volume list for the user");
-      throw exp;
-    }
-  }
-
-  /**
-   * Returns a list of Buckets in a Volume.
-   *
-   * @param args    - VolumeArgs
-   * @param prefix  - Prefix to Match
-   * @param maxKeys - Max results to return.
-   * @param prevKey - PrevKey
-   * @return List of Buckets
-   * @throws OzoneException
-   */
-  Response getBucketsInVolume(VolumeArgs args, String prefix, int maxKeys,
-                              String prevKey) throws OzoneException {
-    try {
-      // UserAuth auth = UserHandlerBuilder.getAuthHandler();
-      // TODO : Check ACLS.
-      StorageHandler fs = StorageHandlerBuilder.getStorageHandler();
-      ListArgs<VolumeArgs> listArgs = new ListArgs<>(args, prefix,
-          maxKeys, prevKey);
-      ListBuckets bucketList = fs.listBuckets(listArgs);
-      return OzoneUtils.getResponse(args, HTTP_OK, bucketList.toJsonString());
-    } catch (IOException ex) {
-      LOG.debug("unable to get the bucket list for the specified volume.", ex);
-      OzoneException exp =
-          ErrorTable.newError(ErrorTable.SERVER_ERROR, args, ex);
-      exp.setMessage("unable to get the bucket list for the specified 
volume.");
-      throw exp;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/package-info.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/package-info.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/package-info.java
deleted file mode 100644
index 4d34c2d..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/handlers/package-info.java
+++ /dev/null
@@ -1,22 +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.ozone.web.handlers;
-
-/**
- This package contains ozone client side libraries.
- */

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Accounting.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Accounting.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Accounting.java
deleted file mode 100644
index f03276c..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Accounting.java
+++ /dev/null
@@ -1,57 +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.ozone.web.interfaces;
-
-/**
- * This in the accounting interface, Ozone Rest interface will call into this
- * interface whenever a put or delete key happens.
- * <p>
- * TODO : Technically we need to report bucket creation and deletion too
- * since the bucket names and metadata consume storage.
- * <p>
- * TODO : We should separate out reporting metadata & data --
- * <p>
- * In some cases end users will only want to account for the data they are
- * storing since metadata is mostly a cost of business.
- */
-public interface Accounting {
-  /**
-   * This call is made when ever a put key call is made.
-   * <p>
-   * In case of a Put which causes a over write of a key accounting system will
-   * see two calls, a removeByte call followed by an addByte call.
-   *
-   * @param owner  - Volume Owner
-   * @param volume - Name of the Volume
-   * @param bucket - Name of the bucket
-   * @param bytes  - How many bytes are put
-   */
-  void addBytes(String owner, String volume, String bucket, int bytes);
-
-  /**
-   * This call is made whenever a delete call is made.
-   *
-   * @param owner  - Volume Owner
-   * @param volume - Name of the Volume
-   * @param bucket - Name of the bucket
-   * @param bytes  - How many bytes are deleted
-   */
-  void removeBytes(String owner, String volume, String bucket, int bytes);
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Bucket.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Bucket.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Bucket.java
deleted file mode 100644
index 4c8b85b..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Bucket.java
+++ /dev/null
@@ -1,183 +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.ozone.web.interfaces;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.client.rest.headers.Header;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-/**
- * Bucket Interface acts as the HTTP entry point for
- * bucket related functionality.
- */
-@Path("/{volume}/{bucket}")
-@Api(tags = "bucket")
-public interface Bucket {
-  /**
-   * createBucket call handles the POST request for Creating a Bucket.
-   *
-   * @param volume - Volume name
-   * @param bucket - Bucket Name
-   * @param req - Http request
-   * @param info - Uri Info
-   * @param headers - Http headers
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @POST
-  @ApiOperation("Create new bucket to a volume")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response createBucket(@PathParam("volume") String volume,
-                        @PathParam("bucket") String bucket,
-                        @Context Request req, @Context UriInfo info,
-                        @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * updateBucket call handles the PUT request for updating a Bucket.
-   *
-   * @param volume - Volume name
-   * @param bucket - Bucket name
-   * @param req - Http request
-   * @param info - Uri Info
-   * @param headers - Http headers
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @PUT
-  @ApiOperation("Update bucket")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response updateBucket(@PathParam("volume") String volume,
-                        @PathParam("bucket") String bucket,
-                        @Context Request req, @Context UriInfo info,
-                        @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Deletes an empty bucket.
-   *
-   * @param volume Volume name
-   * @param bucket Bucket Name
-   * @param req - Http request
-   * @param info - Uri Info
-   * @param headers - Http headers
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @DELETE
-  @ApiOperation("Deletes an empty bucket.")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response deleteBucket(@PathParam("volume") String volume,
-                        @PathParam("bucket") String bucket,
-                        @Context Request req, @Context UriInfo info,
-                        @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * List Buckets lists the contents of a bucket.
-   *
-   * @param volume - Storage Volume Name
-   * @param bucket - Bucket Name
-   * @param info - Information type needed
-   * @param prefix - Prefix for the keys to be fetched
-   * @param maxKeys - MaxNumber of Keys to Return
-   * @param prevKey - Continuation Token
-   * @param req - Http request
-   * @param headers - Http headers
-   *
-   * @return - Json Body
-   *
-   * @throws OzoneException
-   */
-
-  @GET
-  @Produces(MediaType.APPLICATION_JSON)
-  @ApiOperation("List contents of a bucket")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response listBucket(@PathParam("volume") String volume,
-                      @PathParam("bucket") String bucket,
-                      @DefaultValue(Header.OZONE_INFO_QUERY_KEY)
-                      @QueryParam(Header.OZONE_INFO_QUERY_TAG)
-                      String info,
-                      @QueryParam(Header.OZONE_LIST_QUERY_PREFIX)
-                      String prefix,
-                      @DefaultValue(Header.OZONE_DEFAULT_LIST_SIZE)
-                      @QueryParam(Header.OZONE_LIST_QUERY_MAXKEYS)
-                      int maxKeys,
-                      @QueryParam(Header.OZONE_LIST_QUERY_PREVKEY)
-                      String prevKey,
-                      @Context Request req, @Context UriInfo uriInfo,
-                      @Context HttpHeaders headers) throws OzoneException;
-
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Keys.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Keys.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Keys.java
deleted file mode 100644
index f9255f2..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Keys.java
+++ /dev/null
@@ -1,146 +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.ozone.web.interfaces;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.client.rest.headers.Header;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.io.InputStream;
-
-/**
- * This interface defines operations permitted on a key.
- */
-@Path("/{volume}/{bucket}/{keys:.*}")
-@Api(tags = "key")
-public interface Keys {
-
-  /**
-   * Adds a key to an existing bucket. If the object already exists
-   * this call will overwrite or add with new version number if the bucket
-   * versioning is turned on.
-   *
-   * @param volume Storage Volume Name
-   * @param bucket Name of the bucket
-   * @param keys Name of the Object
-   * @param is InputStream or File Data
-   * @param req Request
-   * @param headers http headers
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @PUT
-  @Consumes(MediaType.WILDCARD)
-  @ApiOperation(value = "Adds a key to an existing bucket.", notes = "If the "
-      + "object already exists this call will overwrite or add with new 
version"
-      + " number if the bucket versioning is turned on.")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response putKey(@PathParam("volume") String volume,
-      @PathParam("bucket") String bucket, @PathParam("keys") String keys,
-      InputStream is, @Context Request req, @Context UriInfo info,
-      @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Gets the Key if it exists.
-   *
-   * @param volume Storage Volume
-   * @param bucket Name of the bucket
-   * @param keys Object Name
-   * @param info Tag info
-   * @param req Request
-   * @param uriInfo Uri info
-   * @param headers Http Header
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @GET
-  @ApiOperation("Gets the Key if it exists.")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response getKey(@PathParam("volume") String volume,
-      @PathParam("bucket") String bucket, @PathParam("keys") String keys,
-      @QueryParam(Header.OZONE_INFO_QUERY_TAG) String info,
-      @Context Request req, @Context UriInfo uriInfo,
-      @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Deletes an existing key.
-   *
-   * @param volume Storage Volume Name
-   * @param bucket Name of the bucket
-   * @param keys Name of the Object
-   * @param req http Request
-   * @param headers HttpHeaders
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @DELETE
-  @ApiOperation("Deletes an existing key")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response deleteKey(@PathParam("volume") String volume,
-      @PathParam("bucket") String bucket, @PathParam("keys") String keys,
-      @Context Request req, @Context UriInfo info, @Context HttpHeaders 
headers)
-      throws OzoneException;
-}
-

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/StorageHandler.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/StorageHandler.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/StorageHandler.java
deleted file mode 100644
index 6336c90..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/StorageHandler.java
+++ /dev/null
@@ -1,295 +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.ozone.web.interfaces;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.ozone.client.io.LengthInputStream;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.web.handlers.BucketArgs;
-import org.apache.hadoop.ozone.web.handlers.KeyArgs;
-import org.apache.hadoop.ozone.web.handlers.ListArgs;
-import org.apache.hadoop.ozone.web.handlers.VolumeArgs;
-import org.apache.hadoop.ozone.OzoneAcl;
-import org.apache.hadoop.ozone.web.response.BucketInfo;
-import org.apache.hadoop.ozone.web.response.KeyInfo;
-import org.apache.hadoop.ozone.web.response.ListBuckets;
-import org.apache.hadoop.ozone.web.response.ListKeys;
-import org.apache.hadoop.ozone.web.response.ListVolumes;
-import org.apache.hadoop.ozone.web.response.VolumeInfo;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * Storage handler Interface is the Interface between
- * REST protocol and file system.
- *
- * We will have two default implementations of this interface.
- * One for the local file system that is handy while testing
- * and another which will point to the HDFS backend.
- */
-@InterfaceAudience.Private
-public interface StorageHandler extends Closeable{
-
-  /**
-   * Creates a Storage Volume.
-   *
-   * @param args - Volume Name
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  void createVolume(VolumeArgs args) throws IOException, OzoneException;
-
-
-  /**
-   * setVolumeOwner - sets the owner of the volume.
-   *
-   * @param args owner info is present in the args
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  void setVolumeOwner(VolumeArgs args) throws IOException, OzoneException;
-
-
-  /**
-   * Set Volume Quota.
-   *
-   * @param args - Has Quota info
-   * @param remove - true if the request is to remove the quota
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  void setVolumeQuota(VolumeArgs args, boolean remove)
-      throws IOException, OzoneException;
-
-  /**
-   * Checks if a Volume exists and the user with a role specified has access
-   * to the Volume.
-   *
-   * @param volume - Volume Name whose access permissions needs to be checked
-   * @param acl - requested acls which needs to be checked for access
-   *
-   * @return - Boolean - True if the user with a role can access the volume.
-   * This is possible for owners of the volume and admin users
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  boolean checkVolumeAccess(String volume, OzoneAcl acl)
-      throws IOException, OzoneException;
-
-
-  /**
-   * Returns the List of Volumes owned by the specific user.
-   *
-   * @param args - ListArgs
-   *
-   * @return - List of Volumes
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  ListVolumes listVolumes(ListArgs args) throws IOException, OzoneException;
-
-  /**
-   * Deletes an Empty Volume.
-   *
-   * @param args - Volume Args
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  void deleteVolume(VolumeArgs args) throws IOException, OzoneException;
-
-
-  /**
-   * Returns Info about the specified Volume.
-   *
-   * @param args - Volume Args
-   *
-   * @return VolumeInfo
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  VolumeInfo getVolumeInfo(VolumeArgs args) throws IOException, OzoneException;
-
-  /**
-   * Creates a Bucket in specified Volume.
-   *
-   * @param args BucketArgs- BucketName, UserName and Acls
-   *
-   * @throws IOException
-   */
-  void createBucket(BucketArgs args) throws IOException, OzoneException;
-
-  /**
-   * Adds or Removes ACLs from a Bucket.
-   *
-   * @param args - BucketArgs
-   *
-   * @throws IOException
-   */
-  void setBucketAcls(BucketArgs args) throws IOException, OzoneException;
-
-  /**
-   * Enables or disables Bucket Versioning.
-   *
-   * @param args - BucketArgs
-   *
-   * @throws IOException
-   */
-  void setBucketVersioning(BucketArgs args) throws IOException, OzoneException;
-
-  /**
-   * Sets the Storage Class of a Bucket.
-   *
-   * @param args - BucketArgs
-   *
-   * @throws IOException
-   */
-  void setBucketStorageClass(BucketArgs args)
-      throws IOException, OzoneException;
-
-  /**
-   * Deletes a bucket if it is empty.
-   *
-   * @param args Bucket args structure
-   *
-   * @throws IOException
-   */
-  void deleteBucket(BucketArgs args) throws IOException, OzoneException;
-
-  /**
-   * true if the bucket exists and user has read access
-   * to the bucket else throws Exception.
-   *
-   * @param args Bucket args structure
-   *
-   * @throws IOException
-   */
-  void checkBucketAccess(BucketArgs args) throws IOException, OzoneException;
-
-
-  /**
-   * Returns all Buckets of a specified Volume.
-   *
-   * @param listArgs -- List Args.
-   *
-   * @return ListAllBuckets
-   *
-   * @throws OzoneException
-   */
-  ListBuckets listBuckets(ListArgs listArgs) throws
-      IOException, OzoneException;
-
-
-  /**
-   * Returns Bucket's Metadata as a String.
-   *
-   * @param args Bucket args structure
-   *
-   * @return Info about the bucket
-   *
-   * @throws IOException
-   */
-  BucketInfo getBucketInfo(BucketArgs args) throws IOException, OzoneException;
-
-  /**
-   * Writes a key in an existing bucket.
-   *
-   * @param args KeyArgs
-   *
-   * @return InputStream
-   *
-   * @throws OzoneException
-   */
-  OutputStream newKeyWriter(KeyArgs args)
-      throws IOException, OzoneException;
-
-
-  /**
-   * Tells the file system that the object has been written out
-   * completely and it can do any house keeping operation that needs
-   * to be done.
-   *
-   * @param args Key Args
-   *
-   * @param stream
-   * @throws IOException
-   */
-  void commitKey(KeyArgs args, OutputStream stream)
-      throws IOException, OzoneException;
-
-
-  /**
-   * Reads a key from an existing bucket.
-   *
-   * @param args KeyArgs
-   *
-   * @return LengthInputStream
-   *
-   * @throws IOException
-   */
-  LengthInputStream newKeyReader(KeyArgs args)
-      throws IOException, OzoneException;
-
-
-  /**
-   * Deletes an existing key.
-   *
-   * @param args KeyArgs
-   *
-   * @throws OzoneException
-   */
-  void deleteKey(KeyArgs args) throws IOException, OzoneException;
-
-
-  /**
-   * Returns a list of Key.
-   *
-   * @param args KeyArgs
-   *
-   * @return BucketList
-   *
-   * @throws IOException
-   */
-  ListKeys listKeys(ListArgs args) throws IOException, OzoneException;
-
-  /**
-   * Get information of the specified Key.
-   *
-   * @param args Key Args
-   *
-   * @return KeyInfo
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  KeyInfo getKeyInfo(KeyArgs args) throws IOException, OzoneException;
-
-  /**
-   * Closes all the opened resources.
-   */
-  void close();
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/UserAuth.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/UserAuth.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/UserAuth.java
deleted file mode 100644
index a1d2e7c..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/UserAuth.java
+++ /dev/null
@@ -1,101 +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.ozone.web.interfaces;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.web.handlers.UserArgs;
-
-/**
- * This interface is used by Ozone to determine user identity.
- *
- * Please see concrete implementations for more information
- */
-@InterfaceAudience.Private
-public interface UserAuth {
-  /**
-   * Returns the user name as a string from the URI and HTTP headers.
-   *
-   * @param userArgs - userArgs
-   *
-   * @return String - User name
-   *
-   * @throws OzoneException
-   */
-  String getUser(UserArgs userArgs) throws OzoneException;
-
-  /**
-   * Returns all the Groups that user is a member of.
-   *
-   * @param userArgs - userArgs
-   *
-   * @return Array of Groups
-   *
-   * @throws OzoneException
-   */
-  String[] getGroups(UserArgs userArgs) throws OzoneException;
-
-  /**
-   * Returns true if a user is a Admin.
-   *
-   * @param userArgs - userArgs
-   *
-   * @return true if Admin , false otherwise
-   *
-   * @throws OzoneException -- Allows the underlying system
-   * to throw, that error will get propagated to clients
-   */
-  boolean isAdmin(UserArgs userArgs) throws OzoneException;
-
-  /**
-   * Returns true if the request is Anonymous.
-   *
-   * @param userArgs - userArgs
-   *
-   * @return true if the request is anonymous, false otherwise.
-   *
-   * @throws OzoneException - Will be propagated back to end user
-   */
-  boolean isAnonymous(UserArgs userArgs) throws OzoneException;
-
-  /**
-   * Returns true if the name is a recognizable user in the system.
-   *
-   * @param userName - User Name to check
-   * @param userArgs - userArgs
-   *
-   * @return true if the username string is the name of a valid user.
-   *
-   * @throws OzoneException - Will be propagated back to end user
-   */
-  boolean isUser(String userName, UserArgs userArgs) throws OzoneException;
-
-  /**
-   * Returns the x-ozone-user or the user on behalf of, This is
-   * used in Volume creation path.
-   *
-   * @param userArgs - userArgs
-   *
-   * @return a user name if it has x-ozone-user args in header.
-   *
-   * @throws OzoneException
-   */
-  String getOzoneUser(UserArgs userArgs) throws OzoneException;
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Volume.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Volume.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Volume.java
deleted file mode 100644
index 85b2240..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/Volume.java
+++ /dev/null
@@ -1,182 +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.ozone.web.interfaces;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.client.rest.headers.Header;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-/**
- * Volume Interface acts as the HTTP entry point for
- * volume related functionality.
- */
-@InterfaceAudience.Private
-@Path("/{volume}")
-@Api(tags = "volume")
-public interface Volume {
-
-  /**
-   * Creates a Volume owned by the user.
-   *
-   * Params :
-   * Quota - Specifies the Maximum usable size by the user
-   * the valid parameters for quota are <int>(<BYTES| MB|GB|TB>) | remove.
-   * For example 10GB or "remove".
-   *
-   * @param volume Volume Name, this has to be unique at Ozone Level
-   * @param quota Quota for this Storage Volume - <int>(<MB|GB|TB>) | remove
-   * @param req - Request Object - Request Object
-   * @param uriInfo - Http UriInfo
-   * @param headers Http Headers HttpHeaders
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-
-  @POST
-  @ApiOperation("Creates a Volume owned by the user")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response createVolume(@PathParam("volume") String volume,
-      @DefaultValue(Header.OZONE_QUOTA_UNDEFINED)
-      @QueryParam(Header.OZONE_QUOTA_QUERY_TAG) String quota,
-      @Context Request req, @Context UriInfo uriInfo,
-      @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Updates a Volume owned by the user.
-   *
-   * Params :
-   * Owner - Specifies the name of the owner
-   * Quota - Specifies the Maximum usable size by the user
-   * the valid parameters for quota are <int>(<MB|GB|TB>) | remove.
-   * For example 10GB or "remove".
-   *
-   * @param volume Volume Name, this has to be unique at Ozone Level
-   * @param quota Quota for this Storage Volume - <int>(<MB|GB|TB>) | remove
-   * @param req - Request Object - Request Object
-   * @param headers Http Headers HttpHeaders
-   *
-   * @return Response
-   *
-   * @throws OzoneException
-   */
-  @PUT
-  @ApiOperation("Updates a Volume owned by the user")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response updateVolume(@PathParam("volume") String volume,
-      @DefaultValue(Header.OZONE_QUOTA_UNDEFINED)
-      @QueryParam(Header.OZONE_QUOTA_QUERY_TAG) String quota,
-      @Context Request req, @Context UriInfo uriInfo,
-      @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Deletes a Volume if it is empty.
-   *
-   * @param volume Storage Volume Name
-   *
-   * @return Response Response
-   *
-   * @throws OzoneException
-   */
-  @DELETE
-  @ApiOperation("Deletes a Volume if it is empty")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response deleteVolume(@PathParam("volume") String volume,
-      @Context Request req, @Context UriInfo uriInfo,
-      @Context HttpHeaders headers) throws OzoneException;
-
-  /**
-   * Returns Volume info. This API can be invoked either
-   * by admin or the owner
-   *
-   * @param volume - Storage Volume Name
-   * @param req - Http Req
-   * @param headers - Http headers
-   *
-   * @return - Response
-   *
-   * @throws OzoneException
-   */
-  @GET
-  @ApiOperation(value = "Returns Volume info", notes = "This API can be "
-      + "invoked either by admin or the owner")
-  @ApiImplicitParams({
-      @ApiImplicitParam(name = "x-ozone-version", example = "v1", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "x-ozone-user", example = "user", required =
-          true, paramType = "header"),
-      @ApiImplicitParam(name = "Date", example = "Date: Mon, 26 Jun 2017 "
-          + "04:23:30 GMT", required = true, paramType = "header"),
-      @ApiImplicitParam(name = "Authorization", example = "OZONE", required =
-          true, paramType = "header")})
-  Response getVolumeInfo(@PathParam("volume") String volume,
-      @DefaultValue(Header.OZONE_INFO_QUERY_BUCKET)
-      @QueryParam(Header.OZONE_INFO_QUERY_TAG) String info,
-      @QueryParam(Header.OZONE_LIST_QUERY_PREFIX) String prefix,
-      @DefaultValue(Header.OZONE_DEFAULT_LIST_SIZE)
-      @QueryParam(Header.OZONE_LIST_QUERY_MAXKEYS) int keys,
-      @QueryParam(Header.OZONE_LIST_QUERY_PREVKEY) String prevKey,
-      @QueryParam(Header.OZONE_LIST_QUERY_ROOTSCAN) boolean rootScan,
-      @Context Request req, @Context UriInfo uriInfo,
-      @Context HttpHeaders headers) throws OzoneException;
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/package-info.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/package-info.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/package-info.java
deleted file mode 100644
index 940f179..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/interfaces/package-info.java
+++ /dev/null
@@ -1,22 +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.ozone.web.interfaces;
-
-/**
- This package contains ozone client side libraries.
- */

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce23d9ad/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/localstorage/LocalStorageHandler.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/localstorage/LocalStorageHandler.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/localstorage/LocalStorageHandler.java
deleted file mode 100644
index 9747eac..0000000
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/web/localstorage/LocalStorageHandler.java
+++ /dev/null
@@ -1,379 +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.ozone.web.localstorage;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.ozone.client.io.LengthInputStream;
-import org.apache.hadoop.ozone.client.rest.OzoneException;
-import org.apache.hadoop.ozone.web.handlers.BucketArgs;
-import org.apache.hadoop.ozone.web.handlers.KeyArgs;
-import org.apache.hadoop.ozone.web.handlers.ListArgs;
-import org.apache.hadoop.ozone.web.handlers.VolumeArgs;
-import org.apache.hadoop.ozone.web.interfaces.StorageHandler;
-import org.apache.hadoop.ozone.OzoneAcl;
-import org.apache.hadoop.ozone.web.request.OzoneQuota;
-import org.apache.hadoop.ozone.web.response.BucketInfo;
-import org.apache.hadoop.ozone.web.response.KeyInfo;
-import org.apache.hadoop.ozone.web.response.ListBuckets;
-import org.apache.hadoop.ozone.web.response.ListKeys;
-import org.apache.hadoop.ozone.web.response.ListVolumes;
-import org.apache.hadoop.ozone.web.response.VolumeInfo;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * PLEASE NOTE : This file is a dummy backend for test purposes and prototyping
- * effort only. It does not handle any Object semantics correctly, neither does
- * it take care of security.
- */
-@InterfaceAudience.Private
-public class LocalStorageHandler implements StorageHandler {
-  private final Configuration conf;
-
-  /**
-   * Constructs LocalStorageHandler.
-   *
-   * @param conf ozone conf.
-   */
-  public LocalStorageHandler(Configuration conf) {
-    this.conf = conf;
-  }
-
-  /**
-   * Creates Storage Volume.
-   *
-   * @param args - volumeArgs
-   * @throws IOException
-   */
-  @Override
-  public void createVolume(VolumeArgs args) throws IOException, OzoneException 
{
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.createVolume(args);
-
-  }
-
-  /**
-   * setVolumeOwner - sets the owner of the volume.
-   *
-   * @param args volumeArgs
-   * @throws IOException
-   */
-  @Override
-  public void setVolumeOwner(VolumeArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.setVolumeProperty(args, OzoneMetadataManager.VolumeProperty.OWNER);
-  }
-
-  /**
-   * Set Volume Quota Info.
-   *
-   * @param args   - volumeArgs
-   * @param remove - true if the request is to remove the quota
-   * @throws IOException
-   */
-  @Override
-  public void setVolumeQuota(VolumeArgs args, boolean remove)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-
-    if (remove) {
-      OzoneQuota quota = new OzoneQuota();
-      args.setQuota(quota);
-    }
-    oz.setVolumeProperty(args, OzoneMetadataManager.VolumeProperty.QUOTA);
-  }
-
-  /**
-   * Checks if a Volume exists and the user specified has access to the volume.
-   *
-   * @param volume - Volume Name
-   * @param acl - Ozone acl which needs to be compared for access
-   * @return - Boolean - True if the user can modify the volume. This is
-   * possible for owners of the volume and admin users
-   * @throws IOException
-   */
-  @Override
-  public boolean checkVolumeAccess(String volume, OzoneAcl acl)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.checkVolumeAccess(volume, acl);
-  }
-
-  /**
-   * Returns Info about the specified Volume.
-   *
-   * @param args - volumeArgs
-   * @return VolumeInfo
-   * @throws IOException
-   */
-  @Override
-  public VolumeInfo getVolumeInfo(VolumeArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.getVolumeInfo(args);
-  }
-
-  /**
-   * Deletes an Empty Volume.
-   *
-   * @param args - Volume Args
-   * @throws IOException
-   */
-  @Override
-  public void deleteVolume(VolumeArgs args) throws IOException, OzoneException 
{
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.deleteVolume(args);
-
-  }
-
-  /**
-   * Returns the List of Volumes owned by the specific user.
-   *
-   * @param args - ListArgs
-   * @return - List of Volumes
-   * @throws IOException
-   */
-  @Override
-  public ListVolumes listVolumes(ListArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.listVolumes(args);
-  }
-
-  /**
-   * true if the bucket exists and user has read access to the bucket else
-   * throws Exception.
-   *
-   * @param args Bucket args structure
-   * @throws IOException
-   */
-  @Override
-  public void checkBucketAccess(BucketArgs args)
-      throws IOException, OzoneException {
-
-  }
-
-  /**
-   * Creates a Bucket in specified Volume.
-   *
-   * @param args BucketArgs- BucketName, UserName and Acls
-   * @throws IOException
-   */
-  @Override
-  public void createBucket(BucketArgs args) throws IOException, OzoneException 
{
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.createBucket(args);
-  }
-
-  /**
-   * Adds or Removes ACLs from a Bucket.
-   *
-   * @param args - BucketArgs
-   * @throws IOException
-   */
-  @Override
-  public void setBucketAcls(BucketArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.setBucketProperty(args, OzoneMetadataManager.BucketProperty.ACLS);
-  }
-
-  /**
-   * Enables or disables Bucket Versioning.
-   *
-   * @param args - BucketArgs
-   * @throws IOException
-   */
-  @Override
-  public void setBucketVersioning(BucketArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.setBucketProperty(args, OzoneMetadataManager.BucketProperty.VERSIONING);
-
-  }
-
-  /**
-   * Sets the Storage Class of a Bucket.
-   *
-   * @param args - BucketArgs
-   * @throws IOException
-   */
-  @Override
-  public void setBucketStorageClass(BucketArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.setBucketProperty(args, 
OzoneMetadataManager.BucketProperty.STORAGETYPE);
-
-  }
-
-  /**
-   * Deletes a bucket if it is empty.
-   *
-   * @param args Bucket args structure
-   * @throws IOException
-   */
-  @Override
-  public void deleteBucket(BucketArgs args) throws IOException, OzoneException 
{
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.deleteBucket(args);
-  }
-
-  /**
-   * Returns all Buckets of a specified Volume.
-   *
-   * @param args --User Args
-   * @return ListAllBuckets
-   * @throws OzoneException
-   */
-  @Override
-  public ListBuckets listBuckets(ListArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.listBuckets(args);
-  }
-
-  /**
-   * Returns Bucket's Metadata as a String.
-   *
-   * @param args Bucket args structure
-   * @return Info about the bucket
-   * @throws IOException
-   */
-  @Override
-  public BucketInfo getBucketInfo(BucketArgs args)
-      throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.getBucketInfo(args);
-  }
-
-  /**
-   * Writes a key in an existing bucket.
-   *
-   * @param args KeyArgs
-   * @return InputStream
-   * @throws OzoneException
-   */
-  @Override
-  public OutputStream newKeyWriter(KeyArgs args) throws IOException,
-      OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.createKey(args);
-  }
-
-  /**
-   * Tells the file system that the object has been written out completely and
-   * it can do any house keeping operation that needs to be done.
-   *
-   * @param args   Key Args
-   * @param stream
-   * @throws IOException
-   */
-  @Override
-  public void commitKey(KeyArgs args, OutputStream stream) throws
-      IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.commitKey(args, stream);
-
-  }
-
-  /**
-   * Reads a key from an existing bucket.
-   *
-   * @param args KeyArgs
-   * @return LengthInputStream
-   * @throws IOException
-   */
-  @Override
-  public LengthInputStream newKeyReader(KeyArgs args) throws IOException,
-      OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.newKeyReader(args);
-  }
-
-  /**
-   * Deletes an existing key.
-   *
-   * @param args KeyArgs
-   * @throws OzoneException
-   */
-  @Override
-  public void deleteKey(KeyArgs args) throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    oz.deleteKey(args);
-  }
-
-  /**
-   * Returns a list of Key.
-   *
-   * @param args KeyArgs
-   * @return BucketList
-   * @throws IOException
-   */
-  @Override
-  public ListKeys listKeys(ListArgs args) throws IOException, OzoneException {
-    OzoneMetadataManager oz =
-        OzoneMetadataManager.getOzoneMetadataManager(conf);
-    return oz.listKeys(args);
-
-  }
-
-  /**
-   * Get information of the specified Key.
-   *
-   * @param args Key Args
-   *
-   * @return KeyInfo
-   *
-   * @throws IOException
-   * @throws OzoneException
-   */
-  @Override
-  public KeyInfo getKeyInfo(KeyArgs args) throws IOException, OzoneException {
-    OzoneMetadataManager oz = OzoneMetadataManager
-        .getOzoneMetadataManager(conf);
-    return oz.getKeyInfo(args);
-  }
-
-  @Override
-  public void close() {
-    //No resource to close, do nothing.
-  }
-
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to