You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by xy...@apache.org on 2018/01/10 19:53:46 UTC

[2/2] hadoop git commit: HDFS-12966. Ozone: owner name should be set properly when the container allocation happens. Contributed by Shashikant Banerjee.

HDFS-12966. Ozone: owner name should be set properly when the container allocation happens. Contributed by Shashikant Banerjee.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f4369776
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f4369776
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f4369776

Branch: refs/heads/HDFS-7240
Commit: f4369776dacbf402616011b774110b924c751a01
Parents: fd4a4ce
Author: Xiaoyu Yao <xy...@apache.org>
Authored: Wed Jan 10 11:50:07 2018 -0800
Committer: Xiaoyu Yao <xy...@apache.org>
Committed: Wed Jan 10 11:50:07 2018 -0800

----------------------------------------------------------------------
 .../scm/client/ContainerOperationClient.java    |  8 +--
 .../org/apache/hadoop/scm/client/ScmClient.java |  6 +-
 .../container/common/helpers/ContainerInfo.java | 12 ++--
 .../scm/protocol/ScmBlockLocationProtocol.java  |  2 +-
 .../StorageContainerLocationProtocol.java       |  2 +-
 ...kLocationProtocolClientSideTranslatorPB.java | 16 ++---
 ...rLocationProtocolClientSideTranslatorPB.java |  3 +-
 .../src/main/proto/Ozone.proto                  |  9 +--
 .../main/proto/ScmBlockLocationProtocol.proto   |  1 +
 .../StorageContainerLocationProtocol.proto      |  2 +-
 .../org/apache/hadoop/cblock/CBlockManager.java |  7 +-
 .../hadoop/cblock/storage/StorageManager.java   |  6 +-
 .../apache/hadoop/ozone/ksm/KeyManagerImpl.java |  9 ++-
 .../hadoop/ozone/ksm/KeySpaceManager.java       |  7 +-
 ...kLocationProtocolServerSideTranslatorPB.java |  2 +-
 ...rLocationProtocolServerSideTranslatorPB.java |  3 +-
 .../ozone/scm/StorageContainerManager.java      | 20 +++---
 .../hadoop/ozone/scm/block/BlockManager.java    |  2 +-
 .../ozone/scm/block/BlockManagerImpl.java       | 10 ++-
 .../cli/container/CreateContainerHandler.java   |  3 +-
 .../ozone/scm/container/ContainerMapping.java   |  3 +-
 .../scm/container/ContainerStateManager.java    | 57 +++++++++-------
 .../hadoop/ozone/scm/container/Mapping.java     |  2 +-
 .../apache/hadoop/cblock/TestBufferManager.java |  2 +-
 .../hadoop/cblock/TestCBlockReadWrite.java      |  2 +-
 .../hadoop/cblock/TestLocalBlockCache.java      |  2 +-
 .../hadoop/cblock/util/MockStorageClient.java   |  6 +-
 .../hadoop/ozone/TestContainerOperations.java   |  2 +-
 .../ozone/TestStorageContainerManager.java      |  4 +-
 .../hadoop/ozone/scm/TestAllocateContainer.java |  9 +--
 .../hadoop/ozone/scm/TestContainerSQLCli.java   |  8 ++-
 .../ozone/scm/TestContainerSmallFile.java       |  7 +-
 .../org/apache/hadoop/ozone/scm/TestSCMCli.java | 13 ++--
 .../ozone/scm/TestXceiverClientManager.java     | 25 +++----
 .../ozone/scm/TestXceiverClientMetrics.java     |  6 +-
 .../ozone/scm/block/TestBlockManager.java       | 11 ++--
 .../scm/container/TestContainerMapping.java     | 23 +++----
 .../container/TestContainerStateManager.java    | 69 ++++++++++----------
 .../ozone/scm/node/TestContainerPlacement.java  |  5 +-
 39 files changed, 206 insertions(+), 180 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ContainerOperationClient.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ContainerOperationClient.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ContainerOperationClient.java
index 7568c85..52e7993 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ContainerOperationClient.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ContainerOperationClient.java
@@ -82,14 +82,14 @@ public class ContainerOperationClient implements ScmClient {
    * @inheritDoc
    */
   @Override
-  public Pipeline createContainer(String containerId)
+  public Pipeline createContainer(String containerId, String owner)
       throws IOException {
     XceiverClientSpi client = null;
     try {
       Pipeline pipeline =
           storageContainerLocationClient.allocateContainer(
               xceiverClientManager.getType(),
-              xceiverClientManager.getFactor(), containerId);
+              xceiverClientManager.getFactor(), containerId, owner);
       client = xceiverClientManager.acquireClient(pipeline);
 
       // Allocated State means that SCM has allocated this pipeline in its
@@ -187,13 +187,13 @@ public class ContainerOperationClient implements ScmClient {
   @Override
   public Pipeline createContainer(OzoneProtos.ReplicationType type,
       OzoneProtos.ReplicationFactor factor,
-      String containerId) throws IOException {
+      String containerId, String owner) throws IOException {
     XceiverClientSpi client = null;
     try {
       // allocate container on SCM.
       Pipeline pipeline =
           storageContainerLocationClient.allocateContainer(type, factor,
-              containerId);
+              containerId, owner);
       client = xceiverClientManager.acquireClient(pipeline);
 
       // Allocated State means that SCM has allocated this pipeline in its

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ScmClient.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ScmClient.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ScmClient.java
index 2d11336..ef2f1e0 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ScmClient.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/client/ScmClient.java
@@ -45,7 +45,7 @@ public interface ScmClient {
    * @return Pipeline
    * @throws IOException
    */
-  Pipeline createContainer(String containerId) throws IOException;
+  Pipeline createContainer(String containerId, String owner) throws IOException;
 
   /**
    * Gets a container by Name -- Throws if the container does not exist.
@@ -112,8 +112,8 @@ public interface ScmClient {
    * @throws IOException - in case of error.
    */
   Pipeline createContainer(OzoneProtos.ReplicationType type,
-      OzoneProtos.ReplicationFactor replicationFactor, String containerId)
-      throws IOException;
+      OzoneProtos.ReplicationFactor replicationFactor, String containerId,
+      String owner) throws IOException;
 
   /**
    * Returns a set of Nodes that meet a query criteria.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java
index ff8bcdb..fc51c80 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/container/common/helpers/ContainerInfo.java
@@ -38,7 +38,7 @@ public class ContainerInfo
   private long lastUsed;
   // The wall-clock ms since the epoch at which the current state enters.
   private long stateEnterTime;
-  private OzoneProtos.Owner owner;
+  private String owner;
   private String containerName;
 
   ContainerInfo(
@@ -49,7 +49,7 @@ public class ContainerInfo
       long usedBytes,
       long numberOfKeys,
       long stateEnterTime,
-      OzoneProtos.Owner owner) {
+      String owner) {
     this.containerName = containerName;
     this.pipeline = pipeline;
     this.allocatedBytes = allocatedBytes;
@@ -143,11 +143,11 @@ public class ContainerInfo
     return builder.build();
   }
 
-  public OzoneProtos.Owner getOwner() {
+  public String getOwner() {
     return owner;
   }
 
-  public void setOwner(OzoneProtos.Owner owner) {
+  public void setOwner(String owner) {
     this.owner = owner;
   }
 
@@ -241,7 +241,7 @@ public class ContainerInfo
     private long used;
     private long keys;
     private long stateEnterTime;
-    private OzoneProtos.Owner owner;
+    private String owner;
     private String containerName;
 
     public Builder setState(OzoneProtos.LifeCycleState lifeCycleState) {
@@ -274,7 +274,7 @@ public class ContainerInfo
       return this;
     }
 
-    public Builder setOwner(OzoneProtos.Owner containerOwner) {
+    public Builder setOwner(String containerOwner) {
       this.owner = containerOwner;
       return this;
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/ScmBlockLocationProtocol.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/ScmBlockLocationProtocol.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/ScmBlockLocationProtocol.java
index e849094..9728554 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/ScmBlockLocationProtocol.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/ScmBlockLocationProtocol.java
@@ -53,7 +53,7 @@ public interface ScmBlockLocationProtocol {
    * @throws IOException
    */
   AllocatedBlock allocateBlock(long size, ReplicationType type,
-      ReplicationFactor factor) throws IOException;
+      ReplicationFactor factor, String owner) throws IOException;
 
   /**
    * Delete blocks for a set of object keys.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java
index 07d3f0d..3a12f68 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java
@@ -38,7 +38,7 @@ public interface StorageContainerLocationProtocol {
    *
    */
   Pipeline allocateContainer(OzoneProtos.ReplicationType replicationType,
-      OzoneProtos.ReplicationFactor factor, String containerName)
+      OzoneProtos.ReplicationFactor factor, String containerName, String owner)
       throws IOException;
 
   /**

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java
index 061f0fe..02d973a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java
@@ -116,16 +116,14 @@ public final class ScmBlockLocationProtocolClientSideTranslatorPB
    * @throws IOException
    */
   @Override
-  public AllocatedBlock allocateBlock(long size, OzoneProtos.ReplicationType
-      type, OzoneProtos.ReplicationFactor factor) throws IOException {
-    Preconditions.checkArgument(size > 0,
-        "block size must be greater than 0");
+  public AllocatedBlock allocateBlock(long size,
+      OzoneProtos.ReplicationType type, OzoneProtos.ReplicationFactor factor,
+      String owner) throws IOException {
+    Preconditions.checkArgument(size > 0, "block size must be greater than 0");
 
-    AllocateScmBlockRequestProto request = AllocateScmBlockRequestProto
-        .newBuilder()
-        .setSize(size).setType(type)
-        .setFactor(factor)
-        .build();
+    AllocateScmBlockRequestProto request =
+        AllocateScmBlockRequestProto.newBuilder().setSize(size).setType(type)
+            .setFactor(factor).setOwner(owner).build();
     final AllocateScmBlockResponseProto response;
     try {
       response = rpcProxy.allocateScmBlock(NULL_RPC_CONTROLLER, request);

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
index 0ac322d..a3c4a9f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
@@ -88,7 +88,7 @@ public final class StorageContainerLocationProtocolClientSideTranslatorPB
   @Override
   public Pipeline allocateContainer(OzoneProtos.ReplicationType type,
       OzoneProtos.ReplicationFactor factor, String
-      containerName) throws IOException {
+      containerName, String owner) throws IOException {
 
     Preconditions.checkNotNull(containerName, "Container Name cannot be Null");
     Preconditions.checkState(!containerName.isEmpty(), "Container name cannot" +
@@ -97,6 +97,7 @@ public final class StorageContainerLocationProtocolClientSideTranslatorPB
         .setContainerName(containerName)
         .setReplicationFactor(factor)
         .setReplicationType(type)
+        .setOwner(owner)
         .build();
 
     final ContainerResponseProto response;

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto
index 4941b62..e5bfd36 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto
@@ -132,7 +132,7 @@ message SCMContainerInfo {
     required uint64 usedBytes = 5;
     required uint64 numberOfKeys = 6;
     optional int64 stateEnterTime = 7;
-    optional Owner owner = 8 [default = OZONE];
+    required string owner = 8;
 }
 
 message GetScmInfoRequestProto {
@@ -154,10 +154,3 @@ enum ReplicationFactor {
     ONE = 1;
     THREE = 3;
 }
-
-enum Owner {
-    OZONE = 1;
-    CBLOCK = 2;
-    // In future --
-    //HDFS = 3;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto
index 8a6359b..99536ac 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto
@@ -63,6 +63,7 @@ message AllocateScmBlockRequestProto {
   required uint64 size = 1;
   required hadoop.hdfs.ozone.ReplicationType type = 2;
   required hadoop.hdfs.ozone.ReplicationFactor factor = 3;
+  required string owner = 4;
 
 }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto
index e65f51b..c1e9ea6 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto
@@ -39,7 +39,7 @@ message ContainerRequestProto {
   // Ozone only support replciation of either 1 or 3.
   required hadoop.hdfs.ozone.ReplicationFactor replicationFactor = 2;
   required hadoop.hdfs.ozone.ReplicationType  replicationType = 3;
-  optional hadoop.hdfs.ozone.Owner owner = 4 [default = OZONE];
+  required string owner = 4;
 
 }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/CBlockManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/CBlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/CBlockManager.java
index 57c47d7..bb4252c 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/CBlockManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/CBlockManager.java
@@ -62,6 +62,7 @@ import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import static org.apache.hadoop.cblock.CBlockConfigKeys
     .DFS_CBLOCK_CONTAINER_SIZE_GB_DEFAULT;
@@ -122,7 +123,11 @@ public class CBlockManager implements CBlockServiceProtocol,
 
   public CBlockManager(OzoneConfiguration conf,
       ScmClient storageClient) throws IOException {
-    storageManager = new StorageManager(storageClient, conf);
+    // Fix the cBlockManagerId generattion code here. Should support
+    // cBlockManager --init command which will generate a cBlockManagerId and
+    // persist it locally.
+    storageManager =
+        new StorageManager(storageClient, conf, "CBLOCK");
 
     dbPath = conf.getTrimmed(DFS_CBLOCK_SERVICE_LEVELDB_PATH_KEY,
         DFS_CBLOCK_SERVICE_LEVELDB_PATH_DEFAULT);

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/storage/StorageManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/storage/StorageManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/storage/StorageManager.java
index edab822..65b9b49 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/storage/StorageManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/cblock/storage/StorageManager.java
@@ -58,6 +58,7 @@ public class StorageManager {
   private static final int MAX_THREADS =
       Runtime.getRuntime().availableProcessors() * 2;
   private static final int MAX_QUEUE_CAPACITY = 1024;
+  private final String cblockId;
 
   /**
    * We will NOT have the situation where same kv pair getting
@@ -77,13 +78,14 @@ public class StorageManager {
   private long containerSizeB;
 
   public StorageManager(ScmClient storageClient,
-      OzoneConfiguration ozoneConfig) throws IOException {
+      OzoneConfiguration ozoneConfig, String cblockId) throws IOException {
     this.storageClient = storageClient;
     this.user2VolumeMap = new ConcurrentHashMap<>();
     this.containerSizeB = storageClient.getContainerSize(null);
     this.numThreads =
         ozoneConfig.getInt(CBlockConfigKeys.DFS_CBLOCK_MANAGER_POOL_SIZE,
             CBlockConfigKeys.DFS_CBLOCK_MANAGER_POOL_SIZE_DEFAULT);
+    this.cblockId = cblockId;
   }
 
   /**
@@ -188,7 +190,7 @@ public class StorageManager {
             OzoneProtos.ReplicationType.STAND_ALONE,
             OzoneProtos.ReplicationFactor.ONE,
             KeyUtil.getContainerName(volume.getUserName(),
-                volume.getVolumeName(), containerIdx));
+                volume.getVolumeName(), containerIdx), cblockId);
 
         container = new ContainerDescriptor(pipeline.getContainerName());
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java
index b4a13de..10c61fc 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java
@@ -95,9 +95,11 @@ public class KeyManagerImpl implements KeyManager {
 
   private final long preallocateMax;
   private final Random random;
+  private final String ksmId;
 
   public KeyManagerImpl(ScmBlockLocationProtocol scmBlockClient,
-      KSMMetadataManager metadataManager, OzoneConfiguration conf) {
+      KSMMetadataManager metadataManager, OzoneConfiguration conf,
+      String ksmId) {
     this.scmBlockClient = scmBlockClient;
     this.metadataManager = metadataManager;
     this.scmBlockSize = conf.getLong(OZONE_SCM_BLOCK_SIZE_IN_MB,
@@ -123,6 +125,7 @@ public class KeyManagerImpl implements KeyManager {
     openKeyCleanupService = new OpenKeyCleanupService(
         scmBlockClient, this, openkeyCheckInterval, serviceTimeout);
     random = new Random();
+    this.ksmId = ksmId;
   }
 
   @Override
@@ -190,7 +193,7 @@ public class KeyManagerImpl implements KeyManager {
             KSMException.ResultCodes.FAILED_KEY_NOT_FOUND);
       }
       AllocatedBlock allocatedBlock =
-          scmBlockClient.allocateBlock(scmBlockSize, type, factor);
+          scmBlockClient.allocateBlock(scmBlockSize, type, factor, ksmId);
       KsmKeyInfo keyInfo =
           KsmKeyInfo.getFromProtobuf(KeyInfo.parseFrom(keyData));
       KsmKeyLocationInfo info = new KsmKeyLocationInfo.Builder()
@@ -245,7 +248,7 @@ public class KeyManagerImpl implements KeyManager {
       while (requestedSize > 0) {
         long allocateSize = Math.min(scmBlockSize, requestedSize);
         AllocatedBlock allocatedBlock =
-            scmBlockClient.allocateBlock(allocateSize, type, factor);
+            scmBlockClient.allocateBlock(allocateSize, type, factor, ksmId);
         KsmKeyLocationInfo subKeyInfo = new KsmKeyLocationInfo.Builder()
             .setContainerName(allocatedBlock.getPipeline().getContainerName())
             .setBlockID(allocatedBlock.getKey())

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
index 9147390..ef31165 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
@@ -182,8 +182,9 @@ public class KeySpaceManager extends ServiceRuntimeInfoImpl
     volumeManager = new VolumeManagerImpl(metadataManager, configuration);
     bucketManager = new BucketManagerImpl(metadataManager);
     metrics = KSMMetrics.create();
-    keyManager = new KeyManagerImpl(scmBlockClient, metadataManager,
-        configuration);
+    keyManager =
+        new KeyManagerImpl(scmBlockClient, metadataManager, configuration,
+            ksmStorage.getKsmId());
     httpServer = new KeySpaceManagerHttpServer(configuration, this);
   }
 
@@ -704,7 +705,7 @@ public class KeySpaceManager extends ServiceRuntimeInfoImpl
   }
 
   @Override
-  public KsmKeyLocationInfo allocateBlock(KsmKeyArgs args, int clientID)
+  public KsmKeyLocationInfo  allocateBlock(KsmKeyArgs args, int clientID)
       throws IOException {
     try {
       metrics.incNumBlockAllocateCalls();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java
index 9bdfe98..2ab11ba 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java
@@ -107,7 +107,7 @@ public final class ScmBlockLocationProtocolServerSideTranslatorPB
     try {
       AllocatedBlock allocatedBlock =
           impl.allocateBlock(request.getSize(), request.getType(),
-              request.getFactor());
+              request.getFactor(), request.getOwner());
       if (allocatedBlock != null) {
         return
             AllocateScmBlockResponseProto.newBuilder()

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java
index df1fa40..ae99a37 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -76,7 +76,8 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB
       ContainerRequestProto request) throws ServiceException {
     try {
       Pipeline pipeline = impl.allocateContainer(request.getReplicationType(),
-          request.getReplicationFactor(), request.getContainerName());
+          request.getReplicationFactor(), request.getContainerName(),
+          request.getOwner());
       return ContainerResponseProto.newBuilder()
           .setPipeline(pipeline.getProtobufMessage())
           .setErrorCode(ContainerResponseProto.Error.success)

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
index 42bb082..ca1fa48 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
@@ -788,16 +788,13 @@ public class StorageContainerManager extends ServiceRuntimeInfoImpl
    */
   @Override
   public Pipeline allocateContainer(OzoneProtos.ReplicationType replicationType,
-      OzoneProtos.ReplicationFactor replicationFactor, String containerName)
-      throws IOException {
+      OzoneProtos.ReplicationFactor replicationFactor, String containerName,
+      String owner) throws IOException {
 
-    //TODO : FIX ME : Pass the owner argument to this function.
-    // This causes a lot of test change and cblock change to filing
-    // another JIRA to fix it.
-    final OzoneProtos.Owner owner = OzoneProtos.Owner.OZONE;
     checkAdminAccess();
-    return scmContainerManager.allocateContainer(replicationType,
-        replicationFactor, containerName, owner).getPipeline();
+    return scmContainerManager
+        .allocateContainer(replicationType, replicationFactor, containerName,
+            owner).getPipeline();
   }
 
   /**
@@ -1115,9 +1112,10 @@ public class StorageContainerManager extends ServiceRuntimeInfoImpl
    * @throws IOException
    */
   @Override
-  public AllocatedBlock allocateBlock(long size, OzoneProtos.ReplicationType
-      type, OzoneProtos.ReplicationFactor factor) throws IOException {
-    return scmBlockManager.allocateBlock(size, type, factor);
+  public AllocatedBlock allocateBlock(long size,
+      OzoneProtos.ReplicationType type, OzoneProtos.ReplicationFactor factor,
+      String owner) throws IOException {
+    return scmBlockManager.allocateBlock(size, type, factor, owner);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManager.java
index b0f4da6..cfed7a8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManager.java
@@ -40,7 +40,7 @@ public interface BlockManager extends Closeable {
    * @throws IOException
    */
   AllocatedBlock allocateBlock(long size, OzoneProtos.ReplicationType type,
-      OzoneProtos.ReplicationFactor factor) throws IOException;
+      OzoneProtos.ReplicationFactor factor, String owner) throws IOException;
 
   /**
    *  Give the key to the block, get the pipeline info.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java
index 345db1a..5771080 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java
@@ -22,7 +22,6 @@ import org.apache.hadoop.hdfs.DFSUtil;
 import org.apache.hadoop.metrics2.util.MBeans;
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos;
-import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.Owner;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationFactor;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationType;
 import org.apache.hadoop.ozone.scm.container.Mapping;
@@ -76,7 +75,6 @@ public class BlockManagerImpl implements BlockManager, BlockmanagerMXBean {
   // TODO : FIX ME : Hard coding the owner.
   // Currently only user of the block service is Ozone, CBlock manages blocks
   // by itself and does not rely on the Block service offered by SCM.
-  private final Owner owner = Owner.OZONE;
 
   private final NodeManager nodeManager;
   private final Mapping containerManager;
@@ -178,7 +176,7 @@ public class BlockManagerImpl implements BlockManager, BlockmanagerMXBean {
    * @throws IOException
    */
   private void preAllocateContainers(int count, ReplicationType type,
-      ReplicationFactor factor)
+      ReplicationFactor factor, String owner)
       throws IOException {
     lock.lock();
     try {
@@ -214,8 +212,8 @@ public class BlockManagerImpl implements BlockManager, BlockmanagerMXBean {
    * @throws IOException on failure.
    */
   @Override
-  public AllocatedBlock allocateBlock(
-      final long size, ReplicationType type, ReplicationFactor factor)
+  public AllocatedBlock allocateBlock(final long size,
+      ReplicationType type, ReplicationFactor factor, String owner)
       throws IOException {
     LOG.trace("Size;{} , type : {}, factor : {} ", size, type, factor);
 
@@ -289,7 +287,7 @@ public class BlockManagerImpl implements BlockManager, BlockmanagerMXBean {
       // that most of our containers are full or we have not allocated
       // containers of the type and replication factor. So let us go and
       // allocate some.
-      preAllocateContainers(containerProvisionBatchSize, type, factor);
+      preAllocateContainers(containerProvisionBatchSize, type, factor, owner);
 
       // Since we just allocated a set of containers this should work
       containerInfo =

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/CreateContainerHandler.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/CreateContainerHandler.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/CreateContainerHandler.java
index b68d872..569c4a3 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/CreateContainerHandler.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/CreateContainerHandler.java
@@ -36,6 +36,7 @@ public class CreateContainerHandler extends OzoneCommandHandler {
 
   public static final String CONTAINER_CREATE = "create";
   public static final String OPT_CONTAINER_NAME = "c";
+  public static final String containerOwner = "OZONE";
   // TODO Support an optional -p <pipelineID> option to create
   // container on given datanodes.
 
@@ -59,7 +60,7 @@ public class CreateContainerHandler extends OzoneCommandHandler {
     String containerName = cmd.getOptionValue(OPT_CONTAINER_NAME);
 
     logOut("Creating container : %s.", containerName);
-    getScmClient().createContainer(containerName);
+    getScmClient().createContainer(containerName, containerOwner);
     logOut("Container created.");
   }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java
index 4ae1883..79974d9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerMapping.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.ozone.lease.Lease;
 import org.apache.hadoop.ozone.lease.LeaseException;
 import org.apache.hadoop.ozone.lease.LeaseManager;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos;
-import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.Owner;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationFactor;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationType;
 import org.apache.hadoop.ozone.protocol.proto.StorageContainerDatanodeProtocolProtos;
@@ -198,7 +197,7 @@ public class ContainerMapping implements Mapping {
       ReplicationType type,
       ReplicationFactor replicationFactor,
       final String containerName,
-      Owner owner)
+      String owner)
       throws IOException {
     Preconditions.checkNotNull(containerName);
     Preconditions.checkState(!containerName.isEmpty());

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerStateManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerStateManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerStateManager.java
index 9b67473..0240f69 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerStateManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/ContainerStateManager.java
@@ -54,7 +54,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.LifeCycleState;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationType;
-import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.Owner;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.LifeCycleEvent;
 import org.apache.hadoop.ozone.protocol.proto.OzoneProtos.ReplicationFactor;
 
@@ -167,7 +166,6 @@ public class ContainerStateManager implements Closeable {
 
     lock = new ReentrantReadWriteLock();
     containers = new HashMap<>();
-    initializeContainerMaps();
     loadExistingContainers(containerMapping);
     containerCloseQueue = new ConcurrentLinkedQueue<>();
   }
@@ -185,17 +183,15 @@ public class ContainerStateManager implements Closeable {
    * of these {ALLOCATED, CREATING, OPEN, CLOSED, DELETING, DELETED}  container
    * states
    */
-  private void initializeContainerMaps() {
+  private void initializeContainerMaps(String owner) {
     // Called only from Ctor path, hence no lock is held.
     Preconditions.checkNotNull(containers);
-    for (OzoneProtos.Owner owner : OzoneProtos.Owner.values()) {
-      for (ReplicationType type : ReplicationType.values()) {
-        for (ReplicationFactor factor : ReplicationFactor.values()) {
-          for (LifeCycleState state : LifeCycleState.values()) {
-            ContainerKey key = new ContainerKey(owner, type, factor, state);
-            PriorityQueue<ContainerInfo> queue = new PriorityQueue<>();
-            containers.put(key, queue);
-          }
+    for (ReplicationType type : ReplicationType.values()) {
+      for (ReplicationFactor factor : ReplicationFactor.values()) {
+        for (LifeCycleState state : LifeCycleState.values()) {
+          ContainerKey key = new ContainerKey(owner, type, factor, state);
+          PriorityQueue<ContainerInfo> queue = new PriorityQueue<>();
+          containers.put(key, queue);
         }
       }
     }
@@ -208,12 +204,18 @@ public class ContainerStateManager implements Closeable {
    */
   private void loadExistingContainers(Mapping containerMapping) {
     try {
+      List<String> ownerList = new ArrayList<>();
       List<ContainerInfo> containerList =
           containerMapping.listContainer(null, null, Integer.MAX_VALUE);
       for (ContainerInfo container : containerList) {
-        ContainerKey key = new ContainerKey(container.getOwner(),
-            container.getPipeline().getType(),
-            container.getPipeline().getFactor(), container.getState());
+        String owner = container.getOwner();
+        if (ownerList.isEmpty() || !ownerList.contains(owner)) {
+          ownerList.add(owner);
+          initializeContainerMaps(owner);
+        }
+        ContainerKey key =
+            new ContainerKey(owner, container.getPipeline().getType(),
+                container.getPipeline().getFactor(), container.getState());
         containers.get(key).add(container);
       }
     } catch (IOException e) {
@@ -317,7 +319,7 @@ public class ContainerStateManager implements Closeable {
    */
   public ContainerInfo allocateContainer(PipelineSelector selector, OzoneProtos
       .ReplicationType type, OzoneProtos.ReplicationFactor replicationFactor,
-      final String containerName, OzoneProtos.Owner owner) throws
+      final String containerName, String owner) throws
       IOException {
 
     Pipeline pipeline = selector.getReplicationPipeline(type,
@@ -340,7 +342,10 @@ public class ContainerStateManager implements Closeable {
       ContainerKey key = new ContainerKey(owner, type, replicationFactor,
           containerInfo.getState());
       PriorityQueue<ContainerInfo> queue = containers.get(key);
-      Preconditions.checkNotNull(queue);
+      if (queue == null) {
+        initializeContainerMaps(owner);
+        queue = containers.get(key);
+      }
       queue.add(containerInfo);
       LOG.trace("New container allocated: {}", containerInfo);
     } finally {
@@ -431,12 +436,16 @@ public class ContainerStateManager implements Closeable {
    * @return ContainerInfo
    */
   public ContainerInfo getMatchingContainer(final long size,
-      Owner owner, ReplicationType type, ReplicationFactor factor,
+      String owner, ReplicationType type, ReplicationFactor factor,
       LifeCycleState state) {
     ContainerKey key = new ContainerKey(owner, type, factor, state);
     lock.writeLock().lock();
     try {
       PriorityQueue<ContainerInfo> queue = containers.get(key);
+      if (queue == null) {
+        initializeContainerMaps(owner);
+        queue = containers.get(key);
+      }
       if (queue.size() == 0) {
         // We don't have any Containers of this type.
         return null;
@@ -466,13 +475,17 @@ public class ContainerStateManager implements Closeable {
   }
 
   @VisibleForTesting
-  public List<ContainerInfo> getMatchingContainers(Owner owner,
+  public List<ContainerInfo> getMatchingContainers(String owner,
       ReplicationType type, ReplicationFactor factor, LifeCycleState state) {
     ContainerKey key = new ContainerKey(owner, type, factor, state);
     lock.readLock().lock();
     try {
-      return Arrays.asList((ContainerInfo[]) containers.get(key)
-          .toArray(new ContainerInfo[0]));
+      if (containers.get(key) == null) {
+        return null;
+      } else {
+        return Arrays.asList((ContainerInfo[]) containers.get(key)
+            .toArray(new ContainerInfo[0]));
+      }
     } catch (Exception e) {
       LOG.error("Could not get matching containers", e);
     } finally {
@@ -492,7 +505,7 @@ public class ContainerStateManager implements Closeable {
   private static class ContainerKey {
     private final LifeCycleState state;
     private final ReplicationType type;
-    private final OzoneProtos.Owner owner;
+    private final String owner;
     private final ReplicationFactor replicationFactor;
 
     /**
@@ -503,7 +516,7 @@ public class ContainerStateManager implements Closeable {
      * @param factor - Replication Factors
      * @param state - LifeCycle State
      */
-    ContainerKey(Owner owner, ReplicationType type,
+    ContainerKey(String owner, ReplicationType type,
         ReplicationFactor factor, LifeCycleState state) {
       this.state = state;
       this.type = type;

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/Mapping.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/Mapping.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/Mapping.java
index ab4f3df..5d2518e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/Mapping.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/container/Mapping.java
@@ -73,7 +73,7 @@ public interface Mapping extends Closeable {
    */
   ContainerInfo allocateContainer(OzoneProtos.ReplicationType type,
       OzoneProtos.ReplicationFactor replicationFactor,
-      String containerName, OzoneProtos.Owner owner) throws IOException;
+      String containerName, String owner) throws IOException;
 
   /**
    * Deletes a container from SCM.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestBufferManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestBufferManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestBufferManager.java
index c0c077b..30f87e24 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestBufferManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestBufferManager.java
@@ -105,7 +105,7 @@ public class TestBufferManager {
       Pipeline pipeline =
           storageContainerLocationClient.allocateContainer(
               xceiverClientManager.getType(),
-              xceiverClientManager.getFactor(), containerName);
+              xceiverClientManager.getFactor(), containerName, "CBLOCK");
       XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
       ContainerProtocolCalls.createContainer(client, traceID);
       // This step is needed since we set private data on pipelines, when we

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestCBlockReadWrite.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestCBlockReadWrite.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestCBlockReadWrite.java
index b71dbb3..70793f4 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestCBlockReadWrite.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestCBlockReadWrite.java
@@ -111,7 +111,7 @@ public class TestCBlockReadWrite {
       Pipeline pipeline =
           storageContainerLocationClient.allocateContainer(
               xceiverClientManager.getType(),
-              xceiverClientManager.getFactor(), containerName);
+              xceiverClientManager.getFactor(), containerName, "CBLOCK");
       XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
       ContainerProtocolCalls.createContainer(client, traceID);
       // This step is needed since we set private data on pipelines, when we

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestLocalBlockCache.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestLocalBlockCache.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestLocalBlockCache.java
index 58b94d7..7749432 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestLocalBlockCache.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/TestLocalBlockCache.java
@@ -116,7 +116,7 @@ public class TestLocalBlockCache {
       Pipeline pipeline =
           storageContainerLocationClient.allocateContainer(
               xceiverClientManager.getType(),
-              xceiverClientManager.getFactor(), containerName);
+              xceiverClientManager.getFactor(), containerName, "CBLOCK");
       XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
       ContainerProtocolCalls.createContainer(client, traceID);
       // This step is needed since we set private data on pipelines, when we

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/util/MockStorageClient.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/util/MockStorageClient.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/util/MockStorageClient.java
index 7022c44..34eb69a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/util/MockStorageClient.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cblock/util/MockStorageClient.java
@@ -50,7 +50,7 @@ public class MockStorageClient implements ScmClient {
    * @throws Exception
    */
   @Override
-  public Pipeline createContainer(String containerId)
+  public Pipeline createContainer(String containerId, String owner)
       throws IOException {
     int contId = currentContainerId.getAndIncrement();
     ContainerLookUpService.addContainer(Long.toString(contId));
@@ -135,8 +135,8 @@ public class MockStorageClient implements ScmClient {
 
   @Override
   public Pipeline createContainer(OzoneProtos.ReplicationType type,
-      OzoneProtos.ReplicationFactor replicationFactor, String containerId)
-      throws IOException {
+      OzoneProtos.ReplicationFactor replicationFactor, String containerId,
+      String owner) throws IOException {
     int contId = currentContainerId.getAndIncrement();
     ContainerLookUpService.addContainer(Long.toString(contId));
     return ContainerLookUpService.lookUp(Long.toString(contId))

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestContainerOperations.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestContainerOperations.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestContainerOperations.java
index 26922f6..2a8ca7f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestContainerOperations.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestContainerOperations.java
@@ -82,7 +82,7 @@ public class TestContainerOperations {
   public void testCreate() throws Exception {
     Pipeline pipeline0 = storageClient.createContainer(OzoneProtos
         .ReplicationType.STAND_ALONE, OzoneProtos.ReplicationFactor
-        .ONE, "container0");
+        .ONE, "container0", "OZONE");
     assertEquals("container0", pipeline0.getContainerName());
 
   }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
index 8c59785..21321bf 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
@@ -132,7 +132,7 @@ public class TestStorageContainerManager {
       try {
         Pipeline pipeLine2 = mockScm.allocateContainer(
             xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, "container2");
+            OzoneProtos.ReplicationFactor.ONE, "container2", "OZONE");
         if (expectPermissionDenied) {
           fail("Operation should fail, expecting an IOException here.");
         } else {
@@ -145,7 +145,7 @@ public class TestStorageContainerManager {
       try {
         Pipeline pipeLine3 = mockScm.allocateContainer(
             xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, "container3");
+            OzoneProtos.ReplicationFactor.ONE, "container3", "OZONE");
 
         if (expectPermissionDenied) {
           fail("Operation should fail, expecting an IOException here.");

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestAllocateContainer.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestAllocateContainer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestAllocateContainer.java
index d9562f7..027e720 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestAllocateContainer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestAllocateContainer.java
@@ -45,6 +45,7 @@ public class TestAllocateContainer {
   private static StorageContainerLocationProtocolClientSideTranslatorPB
       storageContainerLocationClient;
   private static XceiverClientManager xceiverClientManager;
+  private static String containerOwner = "OZONE";
   @Rule
   public ExpectedException thrown = ExpectedException.none();
 
@@ -74,7 +75,7 @@ public class TestAllocateContainer {
     Pipeline pipeline = storageContainerLocationClient.allocateContainer(
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(),
-        "container0");
+        "container0", containerOwner);
     Assert.assertNotNull(pipeline);
     Assert.assertNotNull(pipeline.getLeader());
 
@@ -85,7 +86,7 @@ public class TestAllocateContainer {
     thrown.expect(NullPointerException.class);
     storageContainerLocationClient.allocateContainer(
         xceiverClientManager.getType(),
-        xceiverClientManager.getFactor(), null);
+        xceiverClientManager.getFactor(), null, containerOwner);
   }
 
   @Test
@@ -95,9 +96,9 @@ public class TestAllocateContainer {
     thrown.expectMessage("Specified container already exists");
     storageContainerLocationClient.allocateContainer(
         xceiverClientManager.getType(),
-        xceiverClientManager.getFactor(), containerName);
+        xceiverClientManager.getFactor(), containerName, containerOwner);
     storageContainerLocationClient.allocateContainer(
         xceiverClientManager.getType(),
-        xceiverClientManager.getFactor(), containerName);
+        xceiverClientManager.getFactor(), containerName, containerOwner);
   }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSQLCli.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSQLCli.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSQLCli.java
index 49fb261..686c567 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSQLCli.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSQLCli.java
@@ -2,7 +2,7 @@
  * 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
+ * regarding copyright containerOwnership.  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
@@ -99,6 +99,7 @@ public class TestContainerSQLCli {
   private final static long DEFAULT_BLOCK_SIZE = 4 * KB;
   private static OzoneProtos.ReplicationFactor factor;
   private static OzoneProtos.ReplicationType type;
+  private static final String containerOwner = "OZONE";
 
 
   @Before
@@ -145,7 +146,7 @@ public class TestContainerSQLCli {
     }
     assertEquals(2, nodeManager.getAllNodes().size());
     AllocatedBlock ab1 = blockManager.allocateBlock(DEFAULT_BLOCK_SIZE, type,
-        factor);
+        factor, containerOwner);
     pipeline1 = ab1.getPipeline();
     blockContainerMap.put(ab1.getKey(), pipeline1.getContainerName());
 
@@ -157,7 +158,8 @@ public class TestContainerSQLCli {
     // although each retry will create a block and assign to a container. So
     // the size of blockContainerMap will vary each time the test is run.
     while (true) {
-      ab2 = blockManager.allocateBlock(DEFAULT_BLOCK_SIZE, type, factor);
+      ab2 = blockManager
+          .allocateBlock(DEFAULT_BLOCK_SIZE, type, factor, containerOwner);
       pipeline2 = ab2.getPipeline();
       blockContainerMap.put(ab2.getKey(), pipeline2.getContainerName());
       if (!pipeline1.getContainerName().equals(pipeline2.getContainerName())) {

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSmallFile.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSmallFile.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSmallFile.java
index 290c894..a16d4d8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSmallFile.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestContainerSmallFile.java
@@ -55,6 +55,7 @@ public class TestContainerSmallFile {
   private static StorageContainerLocationProtocolClientSideTranslatorPB
       storageContainerLocationClient;
   private static XceiverClientManager xceiverClientManager;
+  private static String containerOwner = "OZONE";
 
   @BeforeClass
   public static void init() throws Exception {
@@ -86,7 +87,7 @@ public class TestContainerSmallFile {
     Pipeline pipeline =
         storageContainerLocationClient.allocateContainer(
             xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName);
+            OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
     ContainerProtocolCalls.createContainer(client, traceID);
 
@@ -107,7 +108,7 @@ public class TestContainerSmallFile {
     Pipeline pipeline =
         storageContainerLocationClient.allocateContainer(
             xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName);
+            OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
     ContainerProtocolCalls.createContainer(client, traceID);
 
@@ -129,7 +130,7 @@ public class TestContainerSmallFile {
     Pipeline pipeline =
         storageContainerLocationClient.allocateContainer(
             xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName);
+            OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     XceiverClientSpi client = xceiverClientManager.acquireClient(pipeline);
     ContainerProtocolCalls.createContainer(client, traceID);
     ContainerProtocolCalls.writeSmallFile(client, containerName,

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMCli.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMCli.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMCli.java
index d067247..14d314f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMCli.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestSCMCli.java
@@ -71,6 +71,7 @@ public class TestSCMCli {
   private static ByteArrayOutputStream errContent;
   private static PrintStream errStream;
   private static XceiverClientManager xceiverClientManager;
+  private static String containerOwner = "OZONE";
 
   @Rule
   public Timeout globalTimeout = new Timeout(30000);
@@ -158,7 +159,7 @@ public class TestSCMCli {
     containerName = "non-empty-container";
     pipeline = containerOperationClient
         .createContainer(xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName);
+            OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
 
     ContainerData cdata = ContainerData
         .getFromProtBuf(containerOperationClient.readContainer(pipeline), conf);
@@ -200,7 +201,7 @@ public class TestSCMCli {
     containerName = "empty-container";
     pipeline = containerOperationClient
         .createContainer(xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName);
+            OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     containerOperationClient.closeContainer(pipeline);
     Assert.assertTrue(containerExist(containerName));
 
@@ -213,7 +214,7 @@ public class TestSCMCli {
     // After the container is deleted,
     // a same name container can now be recreated.
     containerOperationClient.createContainer(xceiverClientManager.getType(),
-        OzoneProtos.ReplicationFactor.ONE, containerName);
+        OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     Assert.assertTrue(containerExist(containerName));
 
     // ****************************************
@@ -262,7 +263,7 @@ public class TestSCMCli {
     cname = "ContainerTestInfo1";
     Pipeline pipeline = containerOperationClient
         .createContainer(xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, cname);
+            OzoneProtos.ReplicationFactor.ONE, cname, containerOwner);
     ContainerData data = ContainerData
         .getFromProtBuf(containerOperationClient.readContainer(pipeline), conf);
 
@@ -284,7 +285,7 @@ public class TestSCMCli {
     cname = "ContainerTestInfo2";
     pipeline = containerOperationClient
         .createContainer(xceiverClientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, cname);
+            OzoneProtos.ReplicationFactor.ONE, cname, containerOwner);
     data = ContainerData
         .getFromProtBuf(containerOperationClient.readContainer(pipeline), conf);
     KeyUtils.getDB(data, conf).put(cname.getBytes(), "someKey".getBytes());
@@ -343,7 +344,7 @@ public class TestSCMCli {
     for (int index = 0; index < 20; index++) {
       String containerName = String.format("%s%02d", prefix, index);
       containerOperationClient.createContainer(xceiverClientManager.getType(),
-          OzoneProtos.ReplicationFactor.ONE, containerName);
+          OzoneProtos.ReplicationFactor.ONE, containerName, containerOwner);
     }
 
     ByteArrayOutputStream out = new ByteArrayOutputStream();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientManager.java
index b641299..d5ee1d7 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientManager.java
@@ -51,6 +51,7 @@ public class TestXceiverClientManager {
   private static MiniOzoneCluster cluster;
   private static StorageContainerLocationProtocolClientSideTranslatorPB
       storageContainerLocationClient;
+  private static String containerOwner = "OZONE";
 
   @Rule
   public ExpectedException exception = ExpectedException.none();
@@ -76,18 +77,18 @@ public class TestXceiverClientManager {
     XceiverClientManager clientManager = new XceiverClientManager(conf);
 
     String containerName1 = "container" + RandomStringUtils.randomNumeric(10);
-    Pipeline pipeline1 =
-        storageContainerLocationClient.allocateContainer(
-            clientManager.getType(), clientManager.getFactor(), containerName1);
+    Pipeline pipeline1 = storageContainerLocationClient
+        .allocateContainer(clientManager.getType(), clientManager.getFactor(),
+            containerName1, containerOwner);
     XceiverClientSpi client1 = clientManager.acquireClient(pipeline1);
     Assert.assertEquals(1, client1.getRefcount());
     Assert.assertEquals(containerName1,
         client1.getPipeline().getContainerName());
 
     String containerName2 = "container" + RandomStringUtils.randomNumeric(10);
-    Pipeline pipeline2 =
-        storageContainerLocationClient.allocateContainer(
-            clientManager.getType(), clientManager.getFactor(), containerName2);
+    Pipeline pipeline2 = storageContainerLocationClient
+        .allocateContainer(clientManager.getType(), clientManager.getFactor(),
+            containerName2, containerOwner);
     XceiverClientSpi client2 = clientManager.acquireClient(pipeline2);
     Assert.assertEquals(1, client2.getRefcount());
     Assert.assertEquals(containerName2,
@@ -116,7 +117,7 @@ public class TestXceiverClientManager {
     Pipeline pipeline1 =
         storageContainerLocationClient.allocateContainer(
             clientManager.getType(), OzoneProtos.ReplicationFactor.ONE,
-            containerName1);
+            containerName1, containerOwner);
     XceiverClientSpi client1 = clientManager.acquireClient(pipeline1);
     Assert.assertEquals(1, client1.getRefcount());
     Assert.assertEquals(containerName1,
@@ -126,7 +127,7 @@ public class TestXceiverClientManager {
     Pipeline pipeline2 =
         storageContainerLocationClient.allocateContainer(
             clientManager.getType(),
-            OzoneProtos.ReplicationFactor.ONE, containerName2);
+            OzoneProtos.ReplicationFactor.ONE, containerName2, containerOwner);
     XceiverClientSpi client2 = clientManager.acquireClient(pipeline2);
     Assert.assertEquals(1, client2.getRefcount());
     Assert.assertEquals(containerName2,
@@ -161,7 +162,7 @@ public class TestXceiverClientManager {
     Pipeline pipeline1 =
         storageContainerLocationClient.allocateContainer(
             clientManager.getType(),
-            clientManager.getFactor(), containerName1);
+            clientManager.getFactor(), containerName1, containerOwner);
     XceiverClientSpi client1 = clientManager.acquireClient(pipeline1);
     Assert.assertEquals(1, client1.getRefcount());
     Assert.assertEquals(containerName1,
@@ -171,9 +172,9 @@ public class TestXceiverClientManager {
     Assert.assertEquals(0, client1.getRefcount());
 
     String containerName2 = "container" + RandomStringUtils.randomNumeric(10);
-    Pipeline pipeline2 =
-        storageContainerLocationClient.allocateContainer(
-            clientManager.getType(), clientManager.getFactor(), containerName2);
+    Pipeline pipeline2 = storageContainerLocationClient
+        .allocateContainer(clientManager.getType(), clientManager.getFactor(),
+            containerName2, containerOwner);
     XceiverClientSpi client2 = clientManager.acquireClient(pipeline2);
     Assert.assertEquals(1, client2.getRefcount());
     Assert.assertEquals(containerName2,

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientMetrics.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientMetrics.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientMetrics.java
index 1478f6c..8a828fa 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientMetrics.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/TestXceiverClientMetrics.java
@@ -60,6 +60,7 @@ public class TestXceiverClientMetrics {
   private static MiniOzoneCluster cluster;
   private static StorageContainerLocationProtocolClientSideTranslatorPB
       storageContainerLocationClient;
+  private static String containerOwner = "OZONE";
 
   @BeforeClass
   public static void init() throws IOException {
@@ -82,8 +83,9 @@ public class TestXceiverClientMetrics {
     XceiverClientManager clientManager = new XceiverClientManager(conf);
 
     String containerName = "container" + RandomStringUtils.randomNumeric(10);
-    Pipeline pipeline = storageContainerLocationClient.allocateContainer(
-        clientManager.getType(), clientManager.getFactor(), containerName);
+    Pipeline pipeline = storageContainerLocationClient
+        .allocateContainer(clientManager.getType(), clientManager.getFactor(),
+            containerName, containerOwner);
     XceiverClientSpi client = clientManager.acquireClient(pipeline);
 
     ContainerCommandRequestProto request = ContainerTestHelper

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestBlockManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestBlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestBlockManager.java
index 7980de0..2878a03 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestBlockManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestBlockManager.java
@@ -57,6 +57,7 @@ public class TestBlockManager {
   private final static long DEFAULT_BLOCK_SIZE = 128 * MB;
   private static OzoneProtos.ReplicationFactor factor;
   private static OzoneProtos.ReplicationType type;
+  private static String containerOwner = "OZONE";
 
   @Rule
   public ExpectedException thrown = ExpectedException.none();
@@ -101,14 +102,14 @@ public class TestBlockManager {
   @Test
   public void testAllocateBlock() throws Exception {
     AllocatedBlock block = blockManager.allocateBlock(DEFAULT_BLOCK_SIZE,
-        type, factor);
+        type, factor, containerOwner);
     Assert.assertNotNull(block);
   }
 
   @Test
   public void testGetAllocatedBlock() throws IOException {
     AllocatedBlock block = blockManager.allocateBlock(DEFAULT_BLOCK_SIZE,
-        type, factor);
+        type, factor, containerOwner);
     Assert.assertNotNull(block);
     Pipeline pipeline = blockManager.getBlock(block.getKey());
     Assert.assertEquals(pipeline.getLeader().getDatanodeUuid(),
@@ -118,7 +119,7 @@ public class TestBlockManager {
   @Test
   public void testDeleteBlock() throws Exception {
     AllocatedBlock block = blockManager.allocateBlock(DEFAULT_BLOCK_SIZE,
-        type, factor);
+        type, factor, containerOwner);
     Assert.assertNotNull(block);
     blockManager.deleteBlocks(Collections.singletonList(block.getKey()));
 
@@ -139,7 +140,7 @@ public class TestBlockManager {
     long size = 6 * GB;
     thrown.expectMessage("Unsupported block size");
     AllocatedBlock block = blockManager.allocateBlock(size,
-        type, factor);
+        type, factor, containerOwner);
   }
 
   @Test
@@ -154,6 +155,6 @@ public class TestBlockManager {
     nodeManager.setChillmode(true);
     thrown.expectMessage("Unable to create block while in chill mode");
     blockManager.allocateBlock(DEFAULT_BLOCK_SIZE,
-        type, factor);
+        type, factor, containerOwner);
   }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/f4369776/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/container/TestContainerMapping.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/container/TestContainerMapping.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/container/TestContainerMapping.java
index 5907b2b..38067ad 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/container/TestContainerMapping.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/container/TestContainerMapping.java
@@ -57,6 +57,7 @@ public class TestContainerMapping {
   private static MockNodeManager nodeManager;
   private static File testDir;
   private static XceiverClientManager xceiverClientManager;
+  private static String containerOwner = "OZONE";
 
   private static final long TIMEOUT = 10000;
 
@@ -101,7 +102,7 @@ public class TestContainerMapping {
     ContainerInfo containerInfo = mapping.allocateContainer(
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(),
-        UUID.randomUUID().toString(), OzoneProtos.Owner.OZONE);
+        UUID.randomUUID().toString(), containerOwner);
     Assert.assertNotNull(containerInfo);
   }
 
@@ -118,7 +119,7 @@ public class TestContainerMapping {
       ContainerInfo containerInfo = mapping.allocateContainer(
           xceiverClientManager.getType(),
           xceiverClientManager.getFactor(),
-          UUID.randomUUID().toString(), OzoneProtos.Owner.OZONE);
+          UUID.randomUUID().toString(), containerOwner);
 
       Assert.assertNotNull(containerInfo);
       Assert.assertNotNull(containerInfo.getPipeline());
@@ -134,7 +135,7 @@ public class TestContainerMapping {
     Pipeline pipeline = mapping.allocateContainer(
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(), containerName,
-        OzoneProtos.Owner.OZONE).getPipeline();
+        containerOwner).getPipeline();
     Assert.assertNotNull(pipeline);
     Pipeline newPipeline = mapping.getContainer(containerName).getPipeline();
     Assert.assertEquals(pipeline.getLeader().getDatanodeUuid(),
@@ -147,12 +148,12 @@ public class TestContainerMapping {
     Pipeline pipeline = mapping.allocateContainer(
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(), containerName,
-        OzoneProtos.Owner.OZONE).getPipeline();
+        containerOwner).getPipeline();
     Assert.assertNotNull(pipeline);
     thrown.expectMessage("Specified container already exists.");
     mapping.allocateContainer(xceiverClientManager.getType(),
         xceiverClientManager.getFactor(), containerName,
-        OzoneProtos.Owner.OZONE);
+        containerOwner);
   }
 
   @Test
@@ -169,7 +170,7 @@ public class TestContainerMapping {
     thrown.expectMessage("Unable to create container while in chill mode");
     mapping.allocateContainer(xceiverClientManager.getType(),
         xceiverClientManager.getFactor(), containerName,
-        OzoneProtos.Owner.OZONE);
+        containerOwner);
   }
 
   @Test
@@ -181,7 +182,7 @@ public class TestContainerMapping {
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(),
         containerName,
-        OzoneProtos.Owner.OZONE);
+        containerOwner);
     mapping.updateContainerState(containerInfo.getContainerName(),
         OzoneProtos.LifeCycleEvent.CREATE);
     Thread.sleep(TIMEOUT + 1000);
@@ -265,7 +266,7 @@ public class TestContainerMapping {
     Assert.assertEquals(5368705120L, updatedContainer.getUsedBytes());
     List<ContainerInfo> pendingCloseContainers = mapping.getStateManager()
         .getMatchingContainers(
-            OzoneProtos.Owner.OZONE,
+            containerOwner,
             xceiverClientManager.getType(),
             xceiverClientManager.getFactor(),
             OzoneProtos.LifeCycleState.CLOSING);
@@ -282,7 +283,7 @@ public class TestContainerMapping {
         OzoneProtos.LifeCycleEvent.FINALIZE);
     List<ContainerInfo> pendingCloseContainers = mapping.getStateManager()
         .getMatchingContainers(
-            OzoneProtos.Owner.OZONE,
+            containerOwner,
             xceiverClientManager.getType(),
             xceiverClientManager.getFactor(),
             OzoneProtos.LifeCycleState.CLOSING);
@@ -293,7 +294,7 @@ public class TestContainerMapping {
         OzoneProtos.LifeCycleEvent.CLOSE);
     List<ContainerInfo> closeContainers = mapping.getStateManager()
         .getMatchingContainers(
-            OzoneProtos.Owner.OZONE,
+            containerOwner,
             xceiverClientManager.getType(),
             xceiverClientManager.getFactor(),
             OzoneProtos.LifeCycleState.CLOSED);
@@ -314,7 +315,7 @@ public class TestContainerMapping {
         xceiverClientManager.getType(),
         xceiverClientManager.getFactor(),
         containerName,
-        OzoneProtos.Owner.OZONE);
+        containerOwner);
     mapping.updateContainerState(containerInfo.getContainerName(),
         OzoneProtos.LifeCycleEvent.CREATE);
     mapping.updateContainerState(containerInfo.getContainerName(),


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