HAWQ-891. Refine libyarn codes

Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/383818c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/383818c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/383818c2

Branch: refs/heads/master
Commit: 383818c280f3b4787c726920105585c09bd7630f
Parents: 8b79e10
Author: Wen Lin <w...@pivotal.io>
Authored: Wed Jul 6 09:33:56 2016 +0800
Committer: Wen Lin <w...@pivotal.io>
Committed: Wed Jul 6 09:33:56 2016 +0800

----------------------------------------------------------------------
 depends/libyarn/mock/MockApplicationClient.h    |    7 +-
 .../MockApplicationClientProtocolInternal.h     |   51 +
 .../MockApplicationMasterProtocolInternal.h     |   51 +
 .../MockContainerManagementProtocolInternal.h   |   52 +
 depends/libyarn/src/CMakeLists.txt              |    2 +-
 depends/libyarn/src/common/Exception.cpp        |   26 -
 depends/libyarn/src/common/Exception.h          |  159 ---
 .../src/libyarnclient/ApplicationClient.cpp     |    6 +-
 .../src/libyarnclient/ApplicationClient.h       |   10 +-
 .../libyarn/src/libyarnclient/LibYarnClient.cpp |   12 +-
 .../libyarn/src/libyarnclient/LibYarnClient.h   |    6 +-
 .../src/libyarnclient/LibYarnClientC.cpp        |    4 +-
 .../libyarnserver/ApplicationClientProtocol.h   |    2 +-
 .../libyarnserver/ApplicationMasterProtocol.h   |    2 +-
 .../libyarnserver/ContainerManagementProtocol.h |    2 +-
 .../GetApplicationReportRequest.cpp             |    6 +-
 .../GetApplicationReportRequest.h               |    6 +-
 .../GetApplicationReportResponse.cpp            |    2 +-
 .../GetApplicationReportResponse.h              |    2 +-
 .../GetNewApplicationResponse.cpp               |    6 +-
 .../protocolrecords/GetNewApplicationResponse.h |    6 +-
 .../protocolrecords/KillApplicationRequest.cpp  |    2 +-
 .../protocolrecords/KillApplicationRequest.h    |    4 +-
 .../src/records/ApplicationAttemptId.cpp        |    6 +-
 .../libyarn/src/records/ApplicationAttemptId.h  |    6 +-
 depends/libyarn/src/records/ApplicationID.cpp   |   20 +-
 depends/libyarn/src/records/ApplicationID.h     |   56 -
 depends/libyarn/src/records/ApplicationId.h     |   56 +
 .../libyarn/src/records/ApplicationReport.cpp   |    8 +-
 depends/libyarn/src/records/ApplicationReport.h |    8 +-
 .../records/ApplicationSubmissionContext.cpp    |    6 +-
 .../src/records/ApplicationSubmissionContext.h  |    6 +-
 depends/libyarn/src/records/ContainerId.cpp     |    6 +-
 depends/libyarn/src/records/ContainerId.h       |    6 +-
 depends/libyarn/src/records/ContainerReport.cpp |    2 +-
 depends/libyarn/src/records/ContainerReport.h   |    2 +-
 depends/libyarn/src/records/ContainerStatus.cpp |    2 +-
 depends/libyarn/src/records/ContainerStatus.h   |    2 +-
 .../libyarn/test/function/TestLibYarnClient.cpp |    2 +
 .../test/function/TestLibYarnClientC.cpp        |  139 +++
 .../TestMockApplicationClientProtocol.cpp       |    2 +
 .../TestMockApplicationMasterProtocol.cpp       |    2 +
 .../libyarn/test/unit/TestApplicationClient.cpp |  264 -----
 .../libyarn/test/unit/TestApplicationMaster.cpp |  193 ----
 .../test/unit/TestContainerManagement.cpp       |  146 ---
 depends/libyarn/test/unit/TestLibYarnClient.cpp |  651 -----------
 .../TestLibYarnClient/TestApplicationClient.cpp |  277 +++++
 .../TestLibYarnClient/TestApplicationMaster.cpp |  196 ++++
 .../TestContainerManagement.cpp                 |  158 +++
 .../TestLibYarnClient/TestLibYarnClient.cpp     | 1085 ++++++++++++++++++
 .../TestLibYarnClient/TestLibYarnClientC.cpp    |  278 +++++
 .../libyarn/test/unit/TestLibYarnClientC.cpp    |  276 -----
 .../TestApplicationClientProtocol.cpp           |  213 ++++
 .../TestApplicationMasterProtocol.cpp           |   96 ++
 .../TestContainerManagementProtocol.cpp         |  101 ++
 .../TestProtocolRecords/TestAllocateRequest.cpp |  104 ++
 .../TestAllocateResponse.cpp                    |   67 ++
 .../TestFinishApplicationMasterRequest.cpp      |   70 ++
 .../TestFinishApplicationMasterResponse.cpp     |   39 +
 .../TestGetApplicationReportRequest.cpp         |   47 +
 .../TestGetApplicationReportResponse.cpp        |   39 +
 .../TestGetApplicationsRequest.cpp              |   70 ++
 .../TestGetApplicationsResponse.cpp             |   47 +
 .../TestGetClusterMetricsRequest.cpp            |   39 +
 .../TestGetClusterMetricsResponse.cpp           |   39 +
 .../TestGetClusterNodesRequest.cpp              |   55 +
 .../TestGetClusterNodesResponse.cpp             |   39 +
 .../TestGetContainerStatusesRequest.cpp         |   56 +
 .../TestGetContainerStatusesResponse.cpp        |   57 +
 .../TestGetContainersRequest.cpp                |   52 +
 .../TestGetContainersResponse.cpp               |   39 +
 .../TestGetNewApplicationRequest.cpp            |   39 +
 .../TestGetNewApplicationResponse.cpp           |   44 +
 .../TestGetQueueInfoRequest.cpp                 |   85 ++
 .../TestGetQueueInfoResponse.cpp                |   39 +
 .../TestGetQueueUserAclsInfoRequest.cpp         |   39 +
 .../TestGetQueueUserAclsInfoResponse.cpp        |   47 +
 .../TestKillApplicationRequest.cpp              |   39 +
 .../TestKillApplicationResponse.cpp             |   39 +
 .../TestRegisterApplicationMasterRequest.cpp    |   75 ++
 .../TestRegisterApplicationMasterResponse.cpp   |   39 +
 .../TestStartContainerRequest.cpp               |   65 ++
 .../TestStartContainerResponse.cpp              |   39 +
 .../TestStartContainersRequest.cpp              |   57 +
 .../TestStartContainersResponse.cpp             |   74 ++
 .../TestStopContainersRequest.cpp               |   57 +
 .../TestStopContainersResponse.cpp              |   74 ++
 .../TestSubmitApplicationRequest.cpp            |   52 +
 .../TestSubmitApplicationResponse.cpp           |   48 +
 .../TestRecords/TestApplicationAttemptId.cpp    |   56 +
 .../unit/TestRecords/TestApplicationReport.cpp  |  152 +++
 .../TestApplicationResourceUsageReport.cpp      |   98 ++
 .../TestApplicationSubmisionContext.cpp         |  156 +++
 .../TestRecords/TestContainerExceptionMap.cpp   |   59 +
 .../test/unit/TestRecords/TestContainerId.cpp   |   59 +
 .../TestRecords/TestContainerLaunchContext.cpp  |  124 ++
 .../unit/TestRecords/TestContainerReport.cpp    |  114 ++
 .../test/unit/TestRecords/TestLocalResource.cpp |  119 ++
 .../test/unit/TestRecords/TestNodeReport.cpp    |   81 ++
 .../TestRecords/TestPreemptionContainer.cpp     |   82 ++
 .../unit/TestRecords/TestPreemptionContract.cpp |   84 ++
 .../unit/TestRecords/TestPreemptionMessage.cpp  |   75 ++
 .../TestPreemptionResourceRequest.cpp           |   45 +
 .../TestResourceBlacklistRequest.cpp            |   88 ++
 .../TestRecords/TestSerializedException.cpp     |   81 ++
 .../TestStrictPreemptionContract.cpp            |   50 +
 .../unit/TestRecords/TestStringBytesMap.cpp     |   56 +
 .../TestRecords/TestStringLocalResourceMap.cpp  |   59 +
 .../unit/TestRecords/TestStringStringMap.cpp    |   56 +
 .../libyarn/test/unit/TestRecords/TestURL.cpp   |   89 ++
 110 files changed, 6436 insertions(+), 1854 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/mock/MockApplicationClient.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/mock/MockApplicationClient.h 
b/depends/libyarn/mock/MockApplicationClient.h
index 0c59a85..d5ba972 100644
--- a/depends/libyarn/mock/MockApplicationClient.h
+++ b/depends/libyarn/mock/MockApplicationClient.h
@@ -40,16 +40,17 @@ public:
     }
     ~MockApplicationClient(){
     }
-    MOCK_METHOD0(getNewApplication, ApplicationID ());
+    MOCK_METHOD0(getNewApplication, ApplicationId ());
     MOCK_METHOD1(submitApplication, void (ApplicationSubmissionContext 
&appContext));
-    MOCK_METHOD1(getApplicationReport, ApplicationReport (ApplicationID 
&appId));
+    MOCK_METHOD1(getApplicationReport, ApplicationReport (ApplicationId 
&appId));
     MOCK_METHOD1(getContainers, list<ContainerReport> (ApplicationAttemptId 
&appAttempId));
     MOCK_METHOD1(getClusterNodes, list<NodeReport> (list<NodeState> &state));
     MOCK_METHOD4(getQueueInfo, QueueInfo (string &queue, bool includeApps,bool 
includeChildQueues, bool recursive));
-    MOCK_METHOD1(forceKillApplication, void (ApplicationID &appId));
+    MOCK_METHOD1(forceKillApplication, void (ApplicationId &appId));
     MOCK_METHOD0(getClusterMetrics, YarnClusterMetrics ());
     MOCK_METHOD2(getApplications, list<ApplicationReport> (list<string> 
&applicationTypes,list<YarnApplicationState> &applicationStates));
     MOCK_METHOD0(getQueueAclsInfo, list<QueueUserACLInfo> ());
+    MOCK_METHOD0(getMethod, const AuthMethod ());
 };
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/mock/MockApplicationClientProtocolInternal.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/mock/MockApplicationClientProtocolInternal.h 
b/depends/libyarn/mock/MockApplicationClientProtocolInternal.h
new file mode 100644
index 0000000..4d84e1d
--- /dev/null
+++ b/depends/libyarn/mock/MockApplicationClientProtocolInternal.h
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+/*
+ * MockApplicationClientProtocolInternal.h
+ *
+ *  Created on: April 27, 2016
+ *      Author: Yangcheng Luo
+ */
+
+#ifndef MOCKAPPLICATIONCLIENTPROTOCOLINTERNAL_H_
+#define MOCKAPPLICATIONCLIENTPROTOCOLINTERNAL_H_
+#include <string>
+
+#include "gmock/gmock.h"
+#include "libyarnserver/ApplicationClientProtocol.h"
+
+using namespace libyarn;
+using std::string;
+
+namespace Mock{
+class MockApplicationClientProtocolInternal : public ApplicationClientProtocol 
{
+public:
+       MockApplicationClientProtocolInternal(const string & user, const string 
& nmHost, const string & nmPort,
+                       const string & tokenService, const SessionConfig & c):
+                       ApplicationClientProtocol(user, nmHost, nmPort, 
tokenService, c){
+       }
+       ~MockApplicationClientProtocolInternal(){
+       }
+
+       MOCK_METHOD1(invoke, void(const RpcCall & call));
+
+};
+}
+#endif /* MOCKAPPLICATIONCLIENTPROTOCOLINTERNAL_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/mock/MockApplicationMasterProtocolInternal.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/mock/MockApplicationMasterProtocolInternal.h 
b/depends/libyarn/mock/MockApplicationMasterProtocolInternal.h
new file mode 100644
index 0000000..5fcaee3
--- /dev/null
+++ b/depends/libyarn/mock/MockApplicationMasterProtocolInternal.h
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+/*
+ * MockApplicationMasterProtocolInternal.h
+ *
+ *  Created on: May 4, 2016
+ *      Author: Yangcheng Luo
+ */
+
+#ifndef MOCKAPPLICATIONMASTERPROTOCOLINTERNAL_H_
+#define MOCKAPPLICATIONMASTERPROTOCOLINTERNAL_H_
+#include <string>
+
+#include "gmock/gmock.h"
+#include "libyarnserver/ApplicationMasterProtocol.h"
+
+using namespace libyarn;
+using std::string;
+
+namespace Mock{
+class MockApplicationMasterProtocolInternal : public ApplicationMasterProtocol 
{
+public:
+       MockApplicationMasterProtocolInternal(const string & schedHost, const 
string & schedPort,
+                       const string & tokenService, const SessionConfig & c, 
const RpcAuth & a):
+                       ApplicationMasterProtocol(schedHost, schedPort, 
tokenService, c, a){
+       }
+       ~MockApplicationMasterProtocolInternal(){
+       }
+
+       MOCK_METHOD1(invoke, void(const RpcCall & call));
+
+};
+}
+#endif /* MOCKAPPLICATIONCLIENTPROTOCOLINTERNAL_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/mock/MockContainerManagementProtocolInternal.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/mock/MockContainerManagementProtocolInternal.h 
b/depends/libyarn/mock/MockContainerManagementProtocolInternal.h
new file mode 100644
index 0000000..aacf26c
--- /dev/null
+++ b/depends/libyarn/mock/MockContainerManagementProtocolInternal.h
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+
+/*
+ * MockContainerManagementProtocolInternal.h
+ *
+ *  Created on: April 22, 2016
+ *      Author: Ruilong Huo
+ */
+
+#ifndef MOCKCONTAINERMANAGEMENTPROTOCOLINTERNAL_H_
+#define MOCKCONTAINERMANAGEMENTPROTOCOLINTERNAL_H_
+#include <string>
+
+#include "gmock/gmock.h"
+#include "libyarnserver/ContainerManagementProtocol.h"
+
+using namespace libyarn;
+using std::string; using std::list;
+
+namespace Mock{
+class MockContainerManagementProtocolInternal : public 
ContainerManagementProtocol {
+public:
+       MockContainerManagementProtocolInternal(string & nmHost, string & 
nmPort,
+                       const string & tokenService, const SessionConfig & c,
+                       const RpcAuth & a):
+                       ContainerManagementProtocol(nmHost,nmPort,tokenService, 
c,a){
+       }
+       ~MockContainerManagementProtocolInternal(){
+       }
+
+       MOCK_METHOD1(invoke, void(const RpcCall & call));
+
+};
+}
+#endif /* MOCKCONTAINERMANAGEMENTPROTOCOLINTERNAL_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/CMakeLists.txt 
b/depends/libyarn/src/CMakeLists.txt
index cafe999..9fe2fcb 100644
--- a/depends/libyarn/src/CMakeLists.txt
+++ b/depends/libyarn/src/CMakeLists.txt
@@ -76,7 +76,7 @@ SET(HEADER
 
 SET(RECORDS_HEADER 
        records/ApplicationAttemptId.h
-    records/ApplicationID.h
+    records/ApplicationId.h
     records/ApplicationReport.h
     records/ApplicationResourceUsageReport.h
     records/FinalApplicationStatus.h

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/common/Exception.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/common/Exception.cpp 
b/depends/libyarn/src/common/Exception.cpp
index 09d1312..dffe1cc 100644
--- a/depends/libyarn/src/common/Exception.cpp
+++ b/depends/libyarn/src/common/Exception.cpp
@@ -26,47 +26,21 @@ namespace Yarn {
 
 const char * YarnIOException::ReflexName = "java.io.IOException";
 
-const char * AlreadyBeingCreatedException::ReflexName =
-    "org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException";
-
 const char * AccessControlException::ReflexName =
     "org.apache.hadoop.security.AccessControlException";
 
-const char * FileAlreadyExistsException::ReflexName =
-    "org.apache.hadoop.fs.FileAlreadyExistsException";
-
-const char * DSQuotaExceededException::ReflexName =
-    "org.apache.hadoop.hdfs.protocol.DSQuotaExceededException";
-
-const char * NSQuotaExceededException::ReflexName =
-    "org.apache.hadoop.hdfs.protocol.NSQuotaExceededException";
-
-const char * ParentNotDirectoryException::ReflexName =
-    "org.apache.hadoop.fs.ParentNotDirectoryException";
-
 const char * SafeModeException::ReflexName =
     "org.apache.hadoop.hdfs.server.namenode.SafeModeException";
 
-const char * NotReplicatedYetException::ReflexName =
-    "org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException";
-
-const char * FileNotFoundException::ReflexName = 
"java.io.FileNotFoundException";
-
 const char * UnresolvedLinkException::ReflexName =
     "org.apache.hadoop.fs.UnresolvedLinkException";
 
 const char * UnsupportedOperationException::ReflexName =
     "java.lang.UnsupportedOperationException";
 
-const char * ReplicaNotFoundException::ReflexName =
-    "org.apache.hadoop.hdfs.server.datanode.ReplicaNotFoundException";
-
 const char * ResourceManagerStandbyException::ReflexName =
     "org.apache.hadoop.ipc.StandbyException";
 
-const char * YarnInvalidBlockToken::ReflexName =
-    "org.apache.hadoop.security.token.SecretManager$InvalidToken";
-
 const char * SaslException::ReflexName = "javax.security.sasl.SaslException";
 
 const char * ApplicationMasterNotRegisteredException::ReflexName =

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/common/Exception.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/common/Exception.h 
b/depends/libyarn/src/common/Exception.h
index 46af910..ea54e0d 100644
--- a/depends/libyarn/src/common/Exception.h
+++ b/depends/libyarn/src/common/Exception.h
@@ -102,73 +102,6 @@ public:
     static const char * ReflexName;
 };
 
-class AlreadyBeingCreatedException: public YarnException {
-public:
-    AlreadyBeingCreatedException(const std::string & arg, const char * file,
-                                 int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~AlreadyBeingCreatedException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class ChecksumException: public YarnException {
-public:
-    ChecksumException(const std::string & arg, const char * file, int line,
-                      const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~ChecksumException() throw () {
-    }
-};
-
-class DSQuotaExceededException: public YarnException {
-public:
-    DSQuotaExceededException(const std::string & arg, const char * file,
-                             int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~DSQuotaExceededException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class FileAlreadyExistsException: public YarnException {
-public:
-    FileAlreadyExistsException(const std::string & arg, const char * file,
-                               int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~FileAlreadyExistsException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class FileNotFoundException: public YarnException {
-public:
-    FileNotFoundException(const std::string & arg, const char * file, int line,
-                          const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~FileNotFoundException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
 class YarnBadBoolFormat: public YarnException {
 public:
     YarnBadBoolFormat(const std::string & arg, const char * file, int line,
@@ -213,17 +146,6 @@ public:
     }
 };
 
-class YarnFileSystemClosed: public YarnException {
-public:
-    YarnFileSystemClosed(const std::string & arg, const char * file, int line,
-                         const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~YarnFileSystemClosed() throw () {
-    }
-};
-
 class YarnConfigInvalid: public YarnException {
 public:
     YarnConfigInvalid(const std::string & arg, const char * file, int line,
@@ -257,20 +179,6 @@ public:
     }
 };
 
-class YarnInvalidBlockToken: public YarnException {
-public:
-    YarnInvalidBlockToken(const std::string & arg, const char * file, int line,
-                          const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~YarnInvalidBlockToken() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
 /**
  * This will wrap YarnNetworkConnectionException and YarnTimeoutException.
  * This exception will be caught and attempt will be performed to recover in 
HA case.
@@ -357,73 +265,6 @@ public:
     }
 };
 
-class InvalidPath: public YarnException {
-public:
-    InvalidPath(const std::string & arg, const char * file, int line,
-                const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~InvalidPath() throw () {
-    }
-};
-
-class NotReplicatedYetException: public YarnException {
-public:
-    NotReplicatedYetException(const std::string & arg, const char * file,
-                              int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~NotReplicatedYetException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class NSQuotaExceededException: public YarnException {
-public:
-    NSQuotaExceededException(const std::string & arg, const char * file,
-                             int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~NSQuotaExceededException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class ParentNotDirectoryException: public YarnException {
-public:
-    ParentNotDirectoryException(const std::string & arg, const char * file,
-                                int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~ParentNotDirectoryException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
-class ReplicaNotFoundException: public YarnException {
-public:
-    ReplicaNotFoundException(const std::string & arg, const char * file,
-                             int line, const char * stack) :
-        YarnException(arg, file, line, stack) {
-    }
-
-    ~ReplicaNotFoundException() throw () {
-    }
-
-public:
-    static const char * ReflexName;
-};
-
 class SafeModeException: public YarnException {
 public:
     SafeModeException(const std::string & arg, const char * file, int line,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnclient/ApplicationClient.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/ApplicationClient.cpp 
b/depends/libyarn/src/libyarnclient/ApplicationClient.cpp
index ecbaf44..64acbe9 100644
--- a/depends/libyarn/src/libyarnclient/ApplicationClient.cpp
+++ b/depends/libyarn/src/libyarnclient/ApplicationClient.cpp
@@ -206,7 +206,7 @@ static void HandleYarnFailoverException(const 
Yarn::YarnFailoverException & e) {
  optional ResourceProto maximumCapability = 2;
  }
  */
-ApplicationID ApplicationClient::getNewApplication() {
+ApplicationId ApplicationClient::getNewApplication() {
     GetNewApplicationRequest request;
     GetNewApplicationResponse response;
 
@@ -250,7 +250,7 @@ void ApplicationClient::submitApplication(
  */
 
 ApplicationReport ApplicationClient::getApplicationReport(
-        ApplicationID &appId) {
+        ApplicationId &appId) {
     GetApplicationReportRequest request;
     GetApplicationReportResponse response;
 
@@ -302,7 +302,7 @@ QueueInfo ApplicationClient::getQueueInfo(string &queue, 
bool includeApps,
     return response.getQueueInfo();
 }
 
-void ApplicationClient::forceKillApplication(ApplicationID &appId) {
+void ApplicationClient::forceKillApplication(ApplicationId &appId) {
     KillApplicationRequest request;
     request.setApplicationId(appId);
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnclient/ApplicationClient.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/ApplicationClient.h 
b/depends/libyarn/src/libyarnclient/ApplicationClient.h
index 4dd1b51..f078fa3 100644
--- a/depends/libyarn/src/libyarnclient/ApplicationClient.h
+++ b/depends/libyarn/src/libyarnclient/ApplicationClient.h
@@ -23,7 +23,7 @@
 #include <list>
 
 #include "libyarnserver/ApplicationClientProtocol.h"
-#include "records/ApplicationID.h"
+#include "records/ApplicationId.h"
 #include "records/ApplicationReport.h"
 #include "records/ContainerReport.h"
 #include "records/ApplicationSubmissionContext.h"
@@ -122,11 +122,11 @@ public:
 
     virtual ~ApplicationClient();
 
-    virtual ApplicationID getNewApplication();
+    virtual ApplicationId getNewApplication();
 
     virtual void submitApplication(ApplicationSubmissionContext &appContext);
 
-    virtual ApplicationReport getApplicationReport(ApplicationID &appId);
+    virtual ApplicationReport getApplicationReport(ApplicationId &appId);
 
     virtual list<ContainerReport> getContainers(ApplicationAttemptId 
&appAttempId);
 
@@ -135,7 +135,7 @@ public:
     virtual QueueInfo getQueueInfo(string &queue, bool includeApps,
             bool includeChildQueues, bool recursive);
 
-    virtual void forceKillApplication(ApplicationID &appId);
+    virtual void forceKillApplication(ApplicationId &appId);
 
     virtual YarnClusterMetrics getClusterMetrics();
 
@@ -146,7 +146,7 @@ public:
 
     const std::string & getUser(){uint32_t old=0; return 
getActiveAppClientProto(old)->getUser();};
 
-    const AuthMethod getMethod(){uint32_t old=0; return 
getActiveAppClientProto(old)->getMethod();};
+    virtual const AuthMethod getMethod(){uint32_t old=0; return 
getActiveAppClientProto(old)->getMethod();};
 
     const std::string getPrincipal(){uint32_t old=0; return 
getActiveAppClientProto(old)->getPrincipal();};
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnclient/LibYarnClient.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/LibYarnClient.cpp 
b/depends/libyarn/src/libyarnclient/LibYarnClient.cpp
index 0cf90fa..823d116 100644
--- a/depends/libyarn/src/libyarnclient/LibYarnClient.cpp
+++ b/depends/libyarn/src/libyarnclient/LibYarnClient.cpp
@@ -160,7 +160,7 @@ int LibYarnClient::createJob(string &jobName, string 
&queue,string &jobId) {
         ApplicationClient *applicationClient = (ApplicationClient*)appClient;
 
         //1. getNewApplication
-        ApplicationID appId = applicationClient->getNewApplication();
+        ApplicationId appId = applicationClient->getNewApplication();
         LOG(INFO, "LibYarnClient::createJob, getNewApplication finished, 
appId:[clusterTimeStamp:%lld,id:%d]",
                 appId.getClusterTimestamp(), appId.getId());
 
@@ -425,13 +425,13 @@ void LibYarnClient::addResourceRequest(Resource 
capability,
 int LibYarnClient::addContainerRequests(string &jobId, Resource &capability, 
int32_t num_containers,
                                                                           
list<LibYarnNodeInfo> &preferred, int32_t priority, bool relax_locality)
 {
-       if (jobId != clientJobId) {
-               throw std::invalid_argument("The jobId is wrong, check the 
jobId argument");
-       }
+       try {
+               if (jobId != clientJobId) {
+                       throw std::invalid_argument("The jobId is wrong, check 
the jobId argument");
+               }
 
-       map<string, int32_t> inferredRacks;
+               map<string, int32_t> inferredRacks;
 
-       try {
                for (list<LibYarnNodeInfo>::iterator iter = preferred.begin();
                                iter != preferred.end(); iter++) {
                        LOG(INFO, "LibYarnClient::addContainerRequests, "

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnclient/LibYarnClient.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/LibYarnClient.h 
b/depends/libyarn/src/libyarnclient/LibYarnClient.h
index 2e3481c..f2c98ae 100644
--- a/depends/libyarn/src/libyarnclient/LibYarnClient.h
+++ b/depends/libyarn/src/libyarnclient/LibYarnClient.h
@@ -124,7 +124,7 @@ namespace libyarn {
                //ContainerManagement
                void *nmClient;
 
-               ApplicationID clientAppId;
+               ApplicationId clientAppId;
                ApplicationAttemptId clientAppAttempId;
 
                // the user of running AM, default is postgres
@@ -161,9 +161,9 @@ namespace libyarn {
 
        class LibYarnNodeInfo {
                public:
-                       LibYarnNodeInfo(char *host, char* rack, int32_t cnt)
+                       LibYarnNodeInfo(const string &host, const string &rack, 
int32_t cnt)
                                                        :hostname(host), 
num_containers(cnt)
-                       { if(rack == NULL) rackname = DEFAULT_RACK; else 
rackname = string(rack);}
+                       { if(rack == "") rackname = DEFAULT_RACK; else rackname 
= rack;}
 
                        string getHost() { return hostname; }
                        string getRack() { return rackname; }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp 
b/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
index cc7544d..a635cec 100644
--- a/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
+++ b/depends/libyarn/src/libyarnclient/LibYarnClientC.cpp
@@ -224,8 +224,8 @@ extern "C" {
                list<LibYarnNodeInfo> preferredHostsList;
                if (preferredHosts != NULL && preferredHostSize > 0) {
                        for (i = 0; i < preferredHostSize; i++) {
-                               LibYarnNodeInfo *info = new 
LibYarnNodeInfo(preferredHosts[i].hostname,
-                                                                               
                                        preferredHosts[i].rackname,
+                               LibYarnNodeInfo *info = new 
LibYarnNodeInfo(string(preferredHosts[i].hostname),
+                                                                               
                                        string(preferredHosts[i].rackname),
                                                                                
                                        preferredHosts[i].num_containers);
                                preferredHostsList.push_back(*info);
                                totalPreferred += 
preferredHosts[i].num_containers;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnserver/ApplicationClientProtocol.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnserver/ApplicationClientProtocol.h 
b/depends/libyarn/src/libyarnserver/ApplicationClientProtocol.h
index 3a317c3..fb4497c 100644
--- a/depends/libyarn/src/libyarnserver/ApplicationClientProtocol.h
+++ b/depends/libyarn/src/libyarnserver/ApplicationClientProtocol.h
@@ -99,7 +99,7 @@ public:
        const string getPrincipal() {return auth.getUser().getPrincipal();};
 
 private:
-       void invoke(const RpcCall & call);
+       virtual void invoke(const RpcCall & call);
 
 private:
        RpcAuth auth;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnserver/ApplicationMasterProtocol.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnserver/ApplicationMasterProtocol.h 
b/depends/libyarn/src/libyarnserver/ApplicationMasterProtocol.h
index 157563e..e589a8a 100644
--- a/depends/libyarn/src/libyarnserver/ApplicationMasterProtocol.h
+++ b/depends/libyarn/src/libyarnserver/ApplicationMasterProtocol.h
@@ -73,7 +73,7 @@ public:
                        FinishApplicationMasterRequest &request);
 
 private:
-       void invoke(const RpcCall & call);
+       virtual void invoke(const RpcCall & call);
 
 private:
     RpcAuth auth;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/libyarnserver/ContainerManagementProtocol.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/libyarnserver/ContainerManagementProtocol.h 
b/depends/libyarn/src/libyarnserver/ContainerManagementProtocol.h
index 6ed3b51..e7ff9c7 100644
--- a/depends/libyarn/src/libyarnserver/ContainerManagementProtocol.h
+++ b/depends/libyarn/src/libyarnserver/ContainerManagementProtocol.h
@@ -71,7 +71,7 @@ public:
        virtual GetContainerStatusesResponse 
getContainerStatuses(GetContainerStatusesRequest &request);
 
 private:
-       void invoke(const RpcCall & call);
+       virtual void invoke(const RpcCall & call);
 
 private:
        RpcAuth auth;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.cpp
----------------------------------------------------------------------
diff --git 
a/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.cpp 
b/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.cpp
index 5b1c710..558c8c8 100644
--- a/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.cpp
+++ b/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.cpp
@@ -37,14 +37,14 @@ GetApplicationReportRequestProto& 
GetApplicationReportRequest::getProto() {
        return requestProto;
 }
 
-void GetApplicationReportRequest::setApplicationId(ApplicationID &appId) {
+void GetApplicationReportRequest::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto* proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        requestProto.set_allocated_application_id(proto);
 }
 
-ApplicationID GetApplicationReportRequest::getApplicationId() {
-       return ApplicationID(requestProto.application_id());
+ApplicationId GetApplicationReportRequest::getApplicationId() {
+       return ApplicationId(requestProto.application_id());
 }
 
 } /* namespace libyarn */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.h 
b/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.h
index 3caa47e..abbc6d5 100644
--- a/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.h
+++ b/depends/libyarn/src/protocolrecords/GetApplicationReportRequest.h
@@ -22,7 +22,7 @@
 
 #include "YARN_yarn_service_protos.pb.h"
 #include "YARN_yarn_protos.pb.h"
-#include "records/ApplicationID.h"
+#include "records/ApplicationId.h"
 
 using namespace hadoop::yarn;
 
@@ -42,8 +42,8 @@ public:
 
        GetApplicationReportRequestProto& getProto();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
 private:
        GetApplicationReportRequestProto requestProto;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.cpp
----------------------------------------------------------------------
diff --git 
a/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.cpp 
b/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.cpp
index 8c0f5c6..a07e0f5 100644
--- a/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.cpp
+++ b/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.cpp
@@ -33,7 +33,7 @@ GetApplicationReportResponse::GetApplicationReportResponse(
 GetApplicationReportResponse::~GetApplicationReportResponse() {
 }
 
-GetApplicationReportResponseProto& GetApplicationReportResponse::proto() {
+GetApplicationReportResponseProto& GetApplicationReportResponse::getProto() {
        return responseProto;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.h 
b/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.h
index 237fe8a..bfbbaaa 100644
--- a/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.h
+++ b/depends/libyarn/src/protocolrecords/GetApplicationReportResponse.h
@@ -39,7 +39,7 @@ public:
        GetApplicationReportResponse(const GetApplicationReportResponseProto 
&proto);
        virtual ~GetApplicationReportResponse();
 
-       GetApplicationReportResponseProto& proto();
+       GetApplicationReportResponseProto& getProto();
 
        void setApplicationReport(ApplicationReport &appReport);
        ApplicationReport getApplicationReport();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.cpp 
b/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.cpp
index 04e04ad..114f153 100644
--- a/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.cpp
+++ b/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.cpp
@@ -33,14 +33,14 @@ GetNewApplicationResponse::GetNewApplicationResponse(
 GetNewApplicationResponse::~GetNewApplicationResponse() {
 }
 
-void GetNewApplicationResponse::setApplicationId(ApplicationID &appId) {
+void GetNewApplicationResponse::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto *proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        responseProto.set_allocated_application_id(proto);
 }
 
-ApplicationID GetNewApplicationResponse::getApplicationId() {
-       return ApplicationID(responseProto.application_id());
+ApplicationId GetNewApplicationResponse::getApplicationId() {
+       return ApplicationId(responseProto.application_id());
 }
 
 void GetNewApplicationResponse::setResource(Resource &resource) {

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.h 
b/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.h
index 41335d6..12a7bd7 100644
--- a/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.h
+++ b/depends/libyarn/src/protocolrecords/GetNewApplicationResponse.h
@@ -22,7 +22,7 @@
 
 #include "YARN_yarn_protos.pb.h"
 #include "YARN_yarn_service_protos.pb.h"
-#include "records/ApplicationID.h"
+#include "records/ApplicationId.h"
 #include "records/Resource.h"
 
 using namespace hadoop::yarn;
@@ -40,8 +40,8 @@ public:
        GetNewApplicationResponse(const GetNewApplicationResponseProto &proto);
        virtual ~GetNewApplicationResponse();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
        void setResource(Resource &resource);
        Resource getResource();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/KillApplicationRequest.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/KillApplicationRequest.cpp 
b/depends/libyarn/src/protocolrecords/KillApplicationRequest.cpp
index 63ce33a..7702619 100644
--- a/depends/libyarn/src/protocolrecords/KillApplicationRequest.cpp
+++ b/depends/libyarn/src/protocolrecords/KillApplicationRequest.cpp
@@ -37,7 +37,7 @@ KillApplicationRequestProto& 
KillApplicationRequest::getProto() {
        return requestProto;
 }
 
-void KillApplicationRequest::setApplicationId(ApplicationID &applicationId) {
+void KillApplicationRequest::setApplicationId(ApplicationId &applicationId) {
        ApplicationIdProto* appId = new ApplicationIdProto();
        appId->CopyFrom(applicationId.getProto());
        requestProto.set_allocated_application_id(appId);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/protocolrecords/KillApplicationRequest.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/protocolrecords/KillApplicationRequest.h 
b/depends/libyarn/src/protocolrecords/KillApplicationRequest.h
index 6b9702b..3abd609 100644
--- a/depends/libyarn/src/protocolrecords/KillApplicationRequest.h
+++ b/depends/libyarn/src/protocolrecords/KillApplicationRequest.h
@@ -22,7 +22,7 @@
 
 #include "YARN_yarn_service_protos.pb.h"
 #include "YARN_yarn_protos.pb.h"
-#include "records/ApplicationID.h"
+#include "records/ApplicationId.h"
 
 using namespace hadoop::yarn;
 
@@ -39,7 +39,7 @@ public:
        virtual ~KillApplicationRequest();
 
        KillApplicationRequestProto& getProto();
-       void setApplicationId(ApplicationID &applicationId);
+       void setApplicationId(ApplicationId &applicationId);
 
 private:
        KillApplicationRequestProto requestProto;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationAttemptId.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationAttemptId.cpp 
b/depends/libyarn/src/records/ApplicationAttemptId.cpp
index 1b47c07..8aab26e 100644
--- a/depends/libyarn/src/records/ApplicationAttemptId.cpp
+++ b/depends/libyarn/src/records/ApplicationAttemptId.cpp
@@ -36,14 +36,14 @@ ApplicationAttemptIdProto& ApplicationAttemptId::getProto(){
        return attemptIdProto;
 }
 
-void ApplicationAttemptId::setApplicationId(ApplicationID &appId) {
+void ApplicationAttemptId::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto *proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        attemptIdProto.set_allocated_application_id(proto);
 }
 
-ApplicationID ApplicationAttemptId::getApplicationId() {
-       return ApplicationID(attemptIdProto.application_id());
+ApplicationId ApplicationAttemptId::getApplicationId() {
+       return ApplicationId(attemptIdProto.application_id());
 }
 
 void ApplicationAttemptId::setAttemptId(int32_t attemptId) {

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationAttemptId.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationAttemptId.h 
b/depends/libyarn/src/records/ApplicationAttemptId.h
index e9b70f9..9e4dafc 100644
--- a/depends/libyarn/src/records/ApplicationAttemptId.h
+++ b/depends/libyarn/src/records/ApplicationAttemptId.h
@@ -22,7 +22,7 @@
 #define APPLICATIONATTEMPTID_H_
 
 #include "YARN_yarn_protos.pb.h"
-#include "ApplicationID.h"
+#include "ApplicationId.h"
 
 using namespace hadoop::yarn;
 
@@ -41,8 +41,8 @@ public:
 
        ApplicationAttemptIdProto& getProto();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
        void setAttemptId(int32_t attemptId);
        int32_t getAttemptId();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationID.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationID.cpp 
b/depends/libyarn/src/records/ApplicationID.cpp
index c17aa04..4fcff64 100644
--- a/depends/libyarn/src/records/ApplicationID.cpp
+++ b/depends/libyarn/src/records/ApplicationID.cpp
@@ -17,41 +17,41 @@
  * under the License.
  */
 
-#include "ApplicationID.h"
+#include "ApplicationId.h"
 
 namespace libyarn {
 
-ApplicationID::ApplicationID() {
+ApplicationId::ApplicationId() {
        appIdProto = ApplicationIdProto::default_instance();
 }
 
-ApplicationID::ApplicationID(const ApplicationIdProto &proto) : 
appIdProto(proto) {
+ApplicationId::ApplicationId(const ApplicationIdProto &proto) : 
appIdProto(proto) {
 }
 
-ApplicationID::ApplicationID(const ApplicationID &applicationId){
+ApplicationId::ApplicationId(const ApplicationId &applicationId){
        appIdProto = applicationId.appIdProto;
 }
 
-ApplicationID::~ApplicationID() {
+ApplicationId::~ApplicationId() {
 }
 
-ApplicationIdProto& ApplicationID::getProto() {
+ApplicationIdProto& ApplicationId::getProto() {
        return appIdProto;
 }
 
-void ApplicationID::setId(int32_t id) {
+void ApplicationId::setId(int32_t id) {
        appIdProto.set_id(id);
 }
 
-int ApplicationID::getId() {
+int ApplicationId::getId() {
        return appIdProto.id();
 }
 
-void ApplicationID::setClusterTimestamp(int64_t timestamp) {
+void ApplicationId::setClusterTimestamp(int64_t timestamp) {
        appIdProto.set_cluster_timestamp(timestamp);
 }
 
-int64_t ApplicationID::getClusterTimestamp() {
+int64_t ApplicationId::getClusterTimestamp() {
        return appIdProto.cluster_timestamp();
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationID.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationID.h 
b/depends/libyarn/src/records/ApplicationID.h
deleted file mode 100644
index 6eda5b3..0000000
--- a/depends/libyarn/src/records/ApplicationID.h
+++ /dev/null
@@ -1,56 +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.
- */
-
-#ifndef APPLICATIONIDS_H_
-#define APPLICATIONIDS_H_
-
-#include "YARN_yarn_protos.pb.h"
-
-using namespace hadoop::yarn;
-
-namespace libyarn {
-
-/*
-message ApplicationIdProto {
-  optional int32 id = 1;
-  optional int64 cluster_timestamp = 2;
-}
- */
-
-class ApplicationID {
-public:
-       ApplicationID();
-       ApplicationID(const ApplicationIdProto &proto);
-       ApplicationID(const ApplicationID &applicationId);
-       virtual ~ApplicationID();
-
-       ApplicationIdProto& getProto();
-
-       void setId(int32_t id);
-       int32_t getId();
-
-       void setClusterTimestamp(int64_t timestamp);
-       int64_t getClusterTimestamp();
-
-private:
-       ApplicationIdProto appIdProto;
-};
-
-} /* namespace libyarn */
-#endif /* APPLICATIONIDS_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationId.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationId.h 
b/depends/libyarn/src/records/ApplicationId.h
new file mode 100644
index 0000000..72014df
--- /dev/null
+++ b/depends/libyarn/src/records/ApplicationId.h
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+
+#ifndef APPLICATIONIdS_H_
+#define APPLICATIONIdS_H_
+
+#include "YARN_yarn_protos.pb.h"
+
+using namespace hadoop::yarn;
+
+namespace libyarn {
+
+/*
+message ApplicationIdProto {
+  optional int32 id = 1;
+  optional int64 cluster_timestamp = 2;
+}
+ */
+
+class ApplicationId {
+public:
+       ApplicationId();
+       ApplicationId(const ApplicationIdProto &proto);
+       ApplicationId(const ApplicationId &applicationId);
+       virtual ~ApplicationId();
+
+       ApplicationIdProto& getProto();
+
+       void setId(int32_t id);
+       int32_t getId();
+
+       void setClusterTimestamp(int64_t timestamp);
+       int64_t getClusterTimestamp();
+
+private:
+       ApplicationIdProto appIdProto;
+};
+
+} /* namespace libyarn */
+#endif /* APPLICATIONIdS_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationReport.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationReport.cpp 
b/depends/libyarn/src/records/ApplicationReport.cpp
index 2ac14ef..93726e7 100644
--- a/depends/libyarn/src/records/ApplicationReport.cpp
+++ b/depends/libyarn/src/records/ApplicationReport.cpp
@@ -36,14 +36,14 @@ ApplicationReportProto& ApplicationReport::getProto() {
        return reportProto;
 }
 
-void ApplicationReport::setApplicationId(ApplicationID &appId) {
+void ApplicationReport::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto *proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        reportProto.set_allocated_applicationid(proto);
 }
 
-ApplicationID ApplicationReport::getApplicationId() {
-       return ApplicationID(reportProto.applicationid());
+ApplicationId ApplicationReport::getApplicationId() {
+       return ApplicationId(reportProto.applicationid());
 }
 
 void ApplicationReport::setUser(string &user) {
@@ -136,7 +136,7 @@ int64_t ApplicationReport::getFinishTime() {
        return reportProto.finishtime();
 }
 
-void ApplicationReport::setFinalAppStatus(FinalApplicationStatus status) {
+void ApplicationReport::setFinalApplicationStatus(FinalApplicationStatus 
status) {
        
reportProto.set_final_application_status((FinalApplicationStatusProto)status);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationReport.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationReport.h 
b/depends/libyarn/src/records/ApplicationReport.h
index 8aeb885..4106ac8 100644
--- a/depends/libyarn/src/records/ApplicationReport.h
+++ b/depends/libyarn/src/records/ApplicationReport.h
@@ -27,7 +27,7 @@
 
 #include "Token.h"
 #include "YarnApplicationState.h"
-#include "ApplicationID.h"
+#include "ApplicationId.h"
 #include "YarnApplicationState.h"
 #include "FinalApplicationStatus.h"
 #include "ApplicationResourceUsageReport.h"
@@ -69,8 +69,8 @@ public:
 
        ApplicationReportProto& getProto();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
        void setUser(string &user);
        string getUser();
@@ -105,7 +105,7 @@ public:
        void setFinishTime(int64_t time);
        int64_t getFinishTime();
 
-       void setFinalAppStatus(FinalApplicationStatus status);
+       void setFinalApplicationStatus(FinalApplicationStatus status);
        FinalApplicationStatus getFinalApplicationStatus();
 
        void setAppResourceUsage(ApplicationResourceUsageReport &usage);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationSubmissionContext.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationSubmissionContext.cpp 
b/depends/libyarn/src/records/ApplicationSubmissionContext.cpp
index da9e9b4..46284bd 100644
--- a/depends/libyarn/src/records/ApplicationSubmissionContext.cpp
+++ b/depends/libyarn/src/records/ApplicationSubmissionContext.cpp
@@ -37,14 +37,14 @@ ApplicationSubmissionContextProto& 
ApplicationSubmissionContext::getProto() {
        return submitCtxProto;
 }
 
-void ApplicationSubmissionContext::setApplicationId(ApplicationID &appId) {
+void ApplicationSubmissionContext::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto *proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        submitCtxProto.set_allocated_application_id(proto);
 }
 
-ApplicationID ApplicationSubmissionContext::getApplicationId() {
-       return ApplicationID(submitCtxProto.application_id());
+ApplicationId ApplicationSubmissionContext::getApplicationId() {
+       return ApplicationId(submitCtxProto.application_id());
 }
 
 void ApplicationSubmissionContext::setApplicationName(string &applicationName) 
{

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ApplicationSubmissionContext.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ApplicationSubmissionContext.h 
b/depends/libyarn/src/records/ApplicationSubmissionContext.h
index f371a9f..28516a7 100644
--- a/depends/libyarn/src/records/ApplicationSubmissionContext.h
+++ b/depends/libyarn/src/records/ApplicationSubmissionContext.h
@@ -23,7 +23,7 @@
 #include <iostream>
 #include "ContainerLaunchContext.h"
 #include "YARN_yarn_protos.pb.h"
-#include "ApplicationID.h"
+#include "ApplicationId.h"
 #include "Priority.h"
 #include "Resource.h"
 
@@ -53,8 +53,8 @@ public:
 
        ApplicationSubmissionContextProto& getProto();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
        void setApplicationName(string &applicationName);
        string getApplicationName();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerId.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerId.cpp 
b/depends/libyarn/src/records/ContainerId.cpp
index 6fabddc..d934b24 100644
--- a/depends/libyarn/src/records/ContainerId.cpp
+++ b/depends/libyarn/src/records/ContainerId.cpp
@@ -35,14 +35,14 @@ ContainerIdProto& ContainerId::getProto(){
        return containerIdProto;
 }
 
-void ContainerId::setApplicationId(ApplicationID &appId) {
+void ContainerId::setApplicationId(ApplicationId &appId) {
        ApplicationIdProto *proto = new ApplicationIdProto();
        proto->CopyFrom(appId.getProto());
        containerIdProto.set_allocated_app_id(proto);
 }
 
-ApplicationID ContainerId::getApplicationId() {
-       return ApplicationID(containerIdProto.app_id());
+ApplicationId ContainerId::getApplicationId() {
+       return ApplicationId(containerIdProto.app_id());
 }
 
 void ContainerId::setApplicationAttemptId(ApplicationAttemptId &appAttemptId) {

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerId.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerId.h 
b/depends/libyarn/src/records/ContainerId.h
index ee89d2a..9f5b8f7 100644
--- a/depends/libyarn/src/records/ContainerId.h
+++ b/depends/libyarn/src/records/ContainerId.h
@@ -22,7 +22,7 @@
 
 #include "YARN_yarn_protos.pb.h"
 
-#include "ApplicationID.h"
+#include "ApplicationId.h"
 #include "ApplicationAttemptId.h"
 
 using namespace hadoop::yarn;
@@ -45,8 +45,8 @@ public:
 
        ContainerIdProto& getProto();
 
-       void setApplicationId(ApplicationID &appId);
-       ApplicationID getApplicationId();
+       void setApplicationId(ApplicationId &appId);
+       ApplicationId getApplicationId();
 
        void setApplicationAttemptId(ApplicationAttemptId &appAttemptId);
        ApplicationAttemptId getApplicationAttemptId();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerReport.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerReport.cpp 
b/depends/libyarn/src/records/ContainerReport.cpp
index 9b4d7d2..1bded5e 100644
--- a/depends/libyarn/src/records/ContainerReport.cpp
+++ b/depends/libyarn/src/records/ContainerReport.cpp
@@ -97,7 +97,7 @@ ContainerExitStatus ContainerReport::getContainerExitStatus(){
        return (ContainerExitStatus)reportProto.container_exit_status();
 }
 
-void ContainerReport::setContaierState(ContainerState state){
+void ContainerReport::setContainerState(ContainerState state){
        reportProto.set_container_state((ContainerStateProto)state);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerReport.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerReport.h 
b/depends/libyarn/src/records/ContainerReport.h
index 2e034f0..0bf4ed5 100644
--- a/depends/libyarn/src/records/ContainerReport.h
+++ b/depends/libyarn/src/records/ContainerReport.h
@@ -79,7 +79,7 @@ public:
        void setContainerExitStatus(ContainerExitStatus container_exit_status);
        ContainerExitStatus getContainerExitStatus();
 
-       void setContaierState(ContainerState state);
+       void setContainerState(ContainerState state);
        ContainerState getContainerState();
 
        void setDiagnostics(string &diagnostics);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerStatus.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerStatus.cpp 
b/depends/libyarn/src/records/ContainerStatus.cpp
index ac9dab9..4048c55 100644
--- a/depends/libyarn/src/records/ContainerStatus.cpp
+++ b/depends/libyarn/src/records/ContainerStatus.cpp
@@ -45,7 +45,7 @@ ContainerId ContainerStatus::getContainerId() {
        return ContainerId(statusProto.container_id());
 }
 
-void ContainerStatus::setContaierState(ContainerState state) {
+void ContainerStatus::setContainerState(ContainerState state) {
        statusProto.set_state((ContainerStateProto)state);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/src/records/ContainerStatus.h
----------------------------------------------------------------------
diff --git a/depends/libyarn/src/records/ContainerStatus.h 
b/depends/libyarn/src/records/ContainerStatus.h
index f099985..59b3084 100644
--- a/depends/libyarn/src/records/ContainerStatus.h
+++ b/depends/libyarn/src/records/ContainerStatus.h
@@ -46,7 +46,7 @@ public:
        void setContainerId(ContainerId &containerId);
        ContainerId getContainerId();
 
-       void setContaierState(ContainerState state);
+       void setContainerState(ContainerState state);
        ContainerState getContainerState();
 
        void setDiagnostics(string &diagnostics);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/function/TestLibYarnClient.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/test/function/TestLibYarnClient.cpp 
b/depends/libyarn/test/function/TestLibYarnClient.cpp
index 5260775..620c7d0 100644
--- a/depends/libyarn/test/function/TestLibYarnClient.cpp
+++ b/depends/libyarn/test/function/TestLibYarnClient.cpp
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#include <string>
+
 #include "gtest/gtest.h"
 #include "libyarnclient/LibYarnClient.h"
 #include "records/FinalApplicationStatus.h"

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/function/TestLibYarnClientC.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/test/function/TestLibYarnClientC.cpp 
b/depends/libyarn/test/function/TestLibYarnClientC.cpp
new file mode 100644
index 0000000..2ec9743
--- /dev/null
+++ b/depends/libyarn/test/function/TestLibYarnClientC.cpp
@@ -0,0 +1,139 @@
+/*
+ * 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.
+ */
+
+#include "gtest/gtest.h"
+#include "libyarn/LibYarnClientC.h"
+
+extern "C" {
+
+class TestLibYarnClientC: public ::testing::Test {
+public:
+       TestLibYarnClientC(){
+               char *user = "postgres";
+               char *rmHost = "localhost";
+               char *rmPort = "8032";
+               char *schedHost = "localhost";
+               char *schedPort = "8030";
+               char *amHost = "localhost";
+               int32_t amPort = 0;
+               char *am_tracking_url = "url";
+               int heartbeatInterval = 1000;
+               client = NULL;
+               result = newLibYarnClient(user, rmHost, rmPort, schedHost, 
schedPort, amHost, amPort, am_tracking_url, &client, heartbeatInterval);
+       }
+       ~TestLibYarnClientC(){
+       }
+protected:
+       LibYarnClient_t *client;
+       int result;
+       int i;
+};
+
+TEST_F(TestLibYarnClientC,TestLibYarn){
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       char *jobName = "libyarn";
+       char *queue = "default";
+       char *jobId = NULL;
+       result = createJob(client, jobName, queue, &jobId);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       LibYarnNodeReport_t *nodeReportArray;
+       int nodeReportArraySize;
+       result = getClusterNodes(client, NODE_STATE_RUNNING, &nodeReportArray, 
&nodeReportArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+       EXPECT_GT(nodeReportArraySize, 0);
+
+       char *localhost = strdup(nodeReportArray[0].host);
+
+       freeMemNodeReportArray(nodeReportArray, nodeReportArraySize);
+
+       char *blackListAdditions[0];
+       char *blackListRemovals[0];
+       LibYarnNodeInfo_t preferredHosts[1];
+       preferredHosts[0].hostname = localhost;
+       preferredHosts[0].rackname = "/default-rack";
+       preferredHosts[0].num_containers = 2;
+       int preferredHostSize = 1;
+       LibYarnResource_t *allocatedResourcesArray;
+       int allocatedResourcesArraySize;
+       result = allocateResources(client, jobId, 1, 1, 1024, 5,
+                                       blackListAdditions, 0, 
blackListRemovals, 0, preferredHosts, preferredHostSize,
+                                       &allocatedResourcesArray, 
&allocatedResourcesArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       int64_t activeContainerIds[allocatedResourcesArraySize];
+       int64_t releaseContainerIds[allocatedResourcesArraySize];
+       int64_t statusContainerIds[allocatedResourcesArraySize];
+       for (i = 0 ; i < allocatedResourcesArraySize; i++) {
+               activeContainerIds[i] = allocatedResourcesArray[i].containerId;
+               releaseContainerIds[i] = allocatedResourcesArray[i].containerId;
+               statusContainerIds[i] = allocatedResourcesArray[i].containerId;
+       }
+
+       result = activeResources(client, jobId, activeContainerIds, 
allocatedResourcesArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       freeMemAllocatedResourcesArray(allocatedResourcesArray, 
allocatedResourcesArraySize);
+
+       sleep(10);
+
+       int64_t *activeFailIds;
+       int activeFailSize;
+       result = 
getActiveFailContainerIds(client,&activeFailIds,&activeFailSize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+       EXPECT_EQ(activeFailSize, 0);
+
+       LibYarnApplicationReport_t *applicationReport;
+       result = getApplicationReport(client, jobId, &applicationReport);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       freeApplicationReport(applicationReport);
+
+       LibYarnContainerReport_t *containerReportArray;
+       int containerReportArraySize;
+       result = getContainerReports(client, jobId, &containerReportArray, 
&containerReportArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+       EXPECT_EQ(containerReportArraySize, 5);
+
+       freeContainerReportArray(containerReportArray, 
containerReportArraySize);
+
+       LibYarnContainerStatus_t *containerStatusArray;
+       int containerStatusArraySize;
+       result = getContainerStatuses(client, jobId, statusContainerIds,
+                                       allocatedResourcesArraySize, 
&containerStatusArray,
+                                       &containerStatusArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+       EXPECT_EQ(containerReportArraySize, 5);
+
+       freeContainerStatusArray(containerStatusArray, 
containerStatusArraySize);
+
+       result = releaseResources(client, jobId, releaseContainerIds, 
allocatedResourcesArraySize);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       LibYarnQueueInfo_t *queueInfo = NULL;
+       result = getQueueInfo(client, queue, true, true, true, &queueInfo);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+
+       freeMemQueueInfo(queueInfo);
+
+       result = finishJob(client, jobId, APPLICATION_SUCCEEDED);
+       EXPECT_EQ(result, FUNCTION_SUCCEEDED);
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/function/TestMockApplicationClientProtocol.cpp
----------------------------------------------------------------------
diff --git 
a/depends/libyarn/test/function/TestMockApplicationClientProtocol.cpp 
b/depends/libyarn/test/function/TestMockApplicationClientProtocol.cpp
index 24a110a..fa59c38 100644
--- a/depends/libyarn/test/function/TestMockApplicationClientProtocol.cpp
+++ b/depends/libyarn/test/function/TestMockApplicationClientProtocol.cpp
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#include <string>
+
 #include "gtest/gtest.h"
 #include "gmock/gmock.h"
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/function/TestMockApplicationMasterProtocol.cpp
----------------------------------------------------------------------
diff --git 
a/depends/libyarn/test/function/TestMockApplicationMasterProtocol.cpp 
b/depends/libyarn/test/function/TestMockApplicationMasterProtocol.cpp
index 4236ccb..b48287b 100644
--- a/depends/libyarn/test/function/TestMockApplicationMasterProtocol.cpp
+++ b/depends/libyarn/test/function/TestMockApplicationMasterProtocol.cpp
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#include <string>
+
 #include "gtest/gtest.h"
 #include "gmock/gmock.h"
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/unit/TestApplicationClient.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/test/unit/TestApplicationClient.cpp 
b/depends/libyarn/test/unit/TestApplicationClient.cpp
deleted file mode 100644
index d81ac0a..0000000
--- a/depends/libyarn/test/unit/TestApplicationClient.cpp
+++ /dev/null
@@ -1,264 +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.
- */
-
-#include "gtest/gtest.h"
-#include "gmock/gmock.h"
-
-#include "libyarnclient/ApplicationClient.h"
-#include "MockApplicationClientProtocol.h"
-
-using std::string;
-using std::list;
-using namespace libyarn;
-using namespace testing;
-using namespace Mock;
-
-class TestApplicationClient: public ::testing::Test {
-public:
-       TestApplicationClient(){
-               string user("postgres");
-               string rmHost("localhost");
-               string rmPort("8032");
-               string tokenService = "";
-               Yarn::Config config;
-               Yarn::Internal::SessionConfig sessionConfig(config);
-               MockApplicationClientProtocol *protocol = new 
MockApplicationClientProtocol(user,rmHost,rmPort,tokenService, sessionConfig);
-
-               ApplicationID appId;
-               appId.setId(100);
-               appId.setClusterTimestamp(1454307175682);
-               GetNewApplicationResponse getNewApplicationResponse;
-               getNewApplicationResponse.setApplicationId(appId);
-               
EXPECT_CALL((*protocol),getNewApplication(_)).Times(AnyNumber()).WillOnce(Return(getNewApplicationResponse));
-               
EXPECT_CALL((*protocol),submitApplication(_)).Times(AnyNumber()).WillOnce(Return());
-
-               ApplicationReport appReport;
-               appReport.setApplicationId(appId);
-               appReport.setUser(user);
-               string queue("default");
-               string appName("hawq");
-               string hostname("master");
-               appReport.setQueue(queue);
-               appReport.setName(appName);
-               appReport.setHost(hostname);
-               appReport.setRpcPort(8090);
-               appReport.setProgress(0.5);
-               GetApplicationReportResponse appReportResponse;
-               appReportResponse.setApplicationReport(appReport);
-               
EXPECT_CALL((*protocol),getApplicationReport(_)).Times(AnyNumber()).WillOnce(Return(appReportResponse));
-
-               ContainerId containerId;
-               containerId.setId(501);
-               containerId.setApplicationId(appId);
-               Resource resource;
-               resource.setMemory(1024);
-               resource.setVirtualCores(1);
-               Priority priority;
-               priority.setPriority(1);
-               ContainerReport report;
-               report.setId(containerId);
-               report.setResource(resource);
-               report.setPriority(priority);
-               list<ContainerReport> reportList;
-               reportList.push_back(report);
-               GetContainersResponse getContainersResponse;
-               getContainersResponse.setContainersReportList(reportList);
-               
EXPECT_CALL((*protocol),getContainers(_)).Times(AnyNumber()).WillOnce(Return(getContainersResponse));
-               
-               NodeId nodeId;
-               string nodeHost("node1");
-               nodeId.setHost(nodeHost);
-               nodeId.setPort(9983);
-               NodeReport nodeReport;
-               nodeReport.setNodeId(nodeId);
-               string rackName("default-rack");
-               nodeReport.setRackName(rackName);
-               nodeReport.setNumContainers(8);
-               Resource nodeResource;
-               nodeResource.setMemory(2048*8);
-               nodeResource.setVirtualCores(8);
-               nodeReport.setResourceCapablity(nodeResource);
-               nodeReport.setNodeState(NodeState::NS_RUNNING);
-               list<NodeReport> nodeReportList;
-               nodeReportList.push_back(nodeReport);
-               GetClusterNodesResponse getClusterNodesResponse;
-               getClusterNodesResponse.setNodeReports(nodeReportList);
-               
EXPECT_CALL((*protocol),getClusterNodes(_)).Times(AnyNumber()).WillOnce(Return(getClusterNodesResponse));
-
-               QueueInfo queueInfo;
-               queueInfo.setQueueName(queue);
-               queueInfo.setCapacity(0.67);
-               queueInfo.setMaximumCapacity(0.95);
-               queueInfo.setCurrentCapacity(0.5);
-               queueInfo.setQueueState(QueueState::Q_RUNNING);
-               QueueInfo childQueue;
-               string childQueueName("hawq-queue");
-               childQueue.setQueueName(childQueueName);
-               childQueue.setCapacity(0.33);
-               childQueue.setMaximumCapacity(0.5);
-               childQueue.setCurrentCapacity(0.25);
-               list<QueueInfo> childQueueList;
-               childQueueList.push_back(childQueue);
-               queueInfo.setChildQueues(childQueueList);
-               list<ApplicationReport> appReportList;
-               appReportList.push_back(appReport);
-               queueInfo.setApplicationReports(appReportList);
-               GetQueueInfoResponse getQueueInfoResponse;
-               getQueueInfoResponse.setQueueInfo(queueInfo);
-               
EXPECT_CALL((*protocol),getQueueInfo(_)).Times(AnyNumber()).WillOnce(Return(getQueueInfoResponse));
-
-               KillApplicationResponseProto killApplicationResponseProto;
-               
EXPECT_CALL((*protocol),forceKillApplication(_)).Times(AnyNumber()).WillOnce(Return(KillApplicationResponse(killApplicationResponseProto)));
-
-               YarnClusterMetrics metrics;
-               metrics.setNumNodeManagers(10);
-               GetClusterMetricsResponse clusterMetricsResponse;
-               clusterMetricsResponse.setClusterMetrics(metrics);
-               
EXPECT_CALL((*protocol),getClusterMetrics(_)).Times(AnyNumber()).WillOnce(Return(clusterMetricsResponse));
-       
-               GetApplicationsResponse applicationsResponse;
-               applicationsResponse.setApplicationList(appReportList);
-               
EXPECT_CALL((*protocol),getApplications(_)).Times(AnyNumber()).WillOnce(Return(applicationsResponse));
-
-               QueueUserACLInfo aclInfo;
-               aclInfo.setQueueName(queue);
-               list<QueueACL> queueACLList;
-               QueueACL acl1 = QueueACL::QACL_ADMINISTER_QUEUE;
-               QueueACL acl2 = QueueACL::QACL_SUBMIT_APPLICATIONS;
-               queueACLList.push_back(acl1);
-               queueACLList.push_back(acl2);
-               aclInfo.setUserAcls(queueACLList);
-               list<QueueUserACLInfo> aclInfoList;
-               aclInfoList.push_back(aclInfo);
-               GetQueueUserAclsInfoResponse queueUserAclsInfoResponse;
-               queueUserAclsInfoResponse.setUserAclsInfoList(aclInfoList);
-               
EXPECT_CALL((*protocol),getQueueAclsInfo(_)).Times(AnyNumber()).WillOnce(Return(queueUserAclsInfoResponse));
-
-               client = new ApplicationClient(protocol);
-       }
-       
-       ~TestApplicationClient(){
-               delete client;
-       }
-       
-protected:
-       ApplicationClient *client;
-};
-
-TEST_F(TestApplicationClient, TestGetNewApplication){
-       ApplicationID response = client->getNewApplication();
-       EXPECT_EQ(response.getId(), 100);
-       EXPECT_EQ(response.getClusterTimestamp(), 1454307175682);
-}
-
-TEST_F(TestApplicationClient,TestSubmitApplication){
-       ApplicationSubmissionContext appContext;
-       client->submitApplication(appContext);
-}
-
-TEST_F(TestApplicationClient,TestGetApplicationReport){
-       ApplicationID appId;
-       ApplicationReport report = client->getApplicationReport(appId);
-       EXPECT_EQ(report.getUser(), "postgres");
-       EXPECT_EQ(report.getQueue(), "default");
-       EXPECT_EQ(report.getName(), "hawq");
-       EXPECT_EQ(report.getHost(), "master");
-       EXPECT_EQ(report.getRpcPort(), 8090);
-       EXPECT_FLOAT_EQ(report.getProgress(), 0.5); 
-}
-
-TEST_F(TestApplicationClient,TestGetContainers){
-       ApplicationAttemptId appAttempId;
-       list<ContainerReport> reports = client->getContainers(appAttempId);
-       EXPECT_EQ(reports.size(), 1);
-       list<ContainerReport>::iterator it = reports.begin();
-       EXPECT_EQ(it->getId().getId(), 501);
-       EXPECT_EQ(it->getPriority().getPriority(), 1);
-       EXPECT_EQ(it->getResource().getMemory(), 1024);
-       EXPECT_EQ(it->getResource().getVirtualCores(), 1);
-}
-
-TEST_F(TestApplicationClient,TestGetClusterNodes){
-       list<NodeState> states;
-       list<NodeReport> reports = client->getClusterNodes(states);
-       EXPECT_EQ(reports.size(), 1);
-       list<NodeReport>::iterator it = reports.begin();
-       EXPECT_EQ(it->getNodeId().getHost(), "node1");
-       EXPECT_EQ(it->getNodeId().getPort(), 9983);
-       EXPECT_EQ(it->getRackName(), "default-rack");
-       EXPECT_EQ(it->getResourceCapability().getMemory(), 2048*8);
-       EXPECT_EQ(it->getResourceCapability().getVirtualCores(), 8);
-       EXPECT_EQ(it->getNodeState(), NodeState::NS_RUNNING);
-       EXPECT_EQ(it->getNumContainers(), 8);
-}
-
-TEST_F(TestApplicationClient,TestGetQueueInfo){
-       string queue = "";
-       QueueInfo queueInfo = client->getQueueInfo(queue,true,true,true);
-       EXPECT_EQ(queueInfo.getQueueName(), "default");
-       EXPECT_FLOAT_EQ(queueInfo.getCapacity(), 0.67);
-       EXPECT_FLOAT_EQ(queueInfo.getMaximumCapacity(), 0.95);
-       EXPECT_FLOAT_EQ(queueInfo.getCurrentCapacity(), 0.5);
-       EXPECT_EQ(queueInfo.getQueueState(), QueueState::Q_RUNNING);
-       list<QueueInfo> child = queueInfo.getChildQueues();
-       EXPECT_EQ(child.size(), 1);
-       list<QueueInfo>::iterator it = child.begin();
-       EXPECT_EQ(it->getQueueName(), "hawq-queue");
-       EXPECT_FLOAT_EQ(it->getCapacity(), 0.33);
-       EXPECT_FLOAT_EQ(it->getMaximumCapacity(), 0.5);
-       EXPECT_FLOAT_EQ(it->getCurrentCapacity(), 0.25);
-       list<ApplicationReport> appReportList = 
queueInfo.getApplicationReports();
-       list<ApplicationReport>::iterator itAppReport = appReportList.begin();
-       EXPECT_EQ(itAppReport->getApplicationId().getId(), 100);
-       EXPECT_EQ(itAppReport->getUser(), "postgres");
-}
-
-TEST_F(TestApplicationClient,TestForceKillApplication){
-       ApplicationID appId;
-       client->forceKillApplication(appId);
-}
-
-TEST_F(TestApplicationClient,TestGetClusterMetrics){
-       YarnClusterMetrics response = client->getClusterMetrics();
-       EXPECT_EQ(response.getNumNodeManagers(), 10);
-}
-
-TEST_F(TestApplicationClient,TestGetApplications){
-       list<string> applicationTypes;
-       list<YarnApplicationState> applicationStates;
-       list<ApplicationReport> reports = 
client->getApplications(applicationTypes,applicationStates);
-       EXPECT_EQ(reports.size(), 1);
-       list<ApplicationReport>::iterator it = reports.begin();
-       EXPECT_EQ(it->getApplicationId().getId(), 100);
-       EXPECT_EQ(it->getUser(), "postgres");
-}
-
-TEST_F(TestApplicationClient,TestGetQueueAclsInfo){
-       list<QueueUserACLInfo> response = client->getQueueAclsInfo();
-       EXPECT_EQ(response.size(), 1);
-       list<QueueUserACLInfo>::iterator it = response.begin();
-       EXPECT_EQ(it->getQueueName(), "default");
-       list<QueueACL> queueACLs = it->getUserAcls();
-       EXPECT_EQ(queueACLs.size(), 2);
-       list<QueueACL>::iterator queueACL = queueACLs.begin();
-       EXPECT_EQ(*queueACL, QueueACL::QACL_ADMINISTER_QUEUE);
-       *queueACL++;
-       EXPECT_EQ(*queueACL, QueueACL::QACL_SUBMIT_APPLICATIONS);
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/383818c2/depends/libyarn/test/unit/TestApplicationMaster.cpp
----------------------------------------------------------------------
diff --git a/depends/libyarn/test/unit/TestApplicationMaster.cpp 
b/depends/libyarn/test/unit/TestApplicationMaster.cpp
deleted file mode 100644
index ad2f7d4..0000000
--- a/depends/libyarn/test/unit/TestApplicationMaster.cpp
+++ /dev/null
@@ -1,193 +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.
- */
-
-#include "gtest/gtest.h"
-#include "gmock/gmock.h"
-
-#include "libyarnclient/ApplicationMaster.h"
-#include "MockApplicationMasterProtocol.h"
-
-using std::string;
-using std::list;
-using namespace libyarn;
-using namespace testing;
-using namespace Mock;
-
-class TestApplicationMaster: public ::testing::Test {
-public:
-       TestApplicationMaster(){
-               string schedHost("localhost");
-               string schedPort("8032");
-               string tokenService = "";
-               Yarn::Config config;
-               Yarn::Internal::SessionConfig sessionConfig(config);
-               Yarn::Internal::UserInfo user = 
Yarn::Internal::UserInfo::LocalUser();
-               Yarn::Internal::RpcAuth rpcAuth(user, 
Yarn::Internal::AuthMethod::SIMPLE);
-               protocol = new 
MockApplicationMasterProtocol(schedHost,schedPort,tokenService, 
sessionConfig,rpcAuth);
-               client = new ApplicationMaster(protocol);
-       }
-       ~TestApplicationMaster(){
-               delete client;
-       }
-
-protected:
-       MockApplicationMasterProtocol *protocol;
-       ApplicationMaster *client;
-};
-
-TEST_F(TestApplicationMaster,TestRegisterApplicationMaster){
-       Resource resource;
-       resource.setMemory(1024*8*10);
-       resource.setVirtualCores(1*8*10);
-       string key("tokenkey");
-       ApplicationACLMap aclMap;
-       aclMap.setAccessType(ApplicationAccessType::APPACCESS_VIEW_APP);
-       string acl("acl");
-       aclMap.setAcl(acl);
-       list<ApplicationACLMap> aclMapList;
-       aclMapList.push_back(aclMap);
-       RegisterApplicationMasterResponse response;
-       response.setMaximumResourceCapability(resource);
-       response.setClientToAMTokenMasterKey(key);
-       response.setApplicationACLs(aclMapList);
-       
EXPECT_CALL((*protocol),registerApplicationMaster(_)).Times(AnyNumber()).WillOnce(Return(response));
-       
-       string amHost("localhost");
-       int amPort = 8032;
-       string am_tracking_url = "";
-       RegisterApplicationMasterResponse retResponse = 
client->registerApplicationMaster(amHost,amPort,am_tracking_url);
-       EXPECT_EQ(retResponse.getClientToAMTokenMasterKey(), "tokenkey");
-       Resource retResource = retResponse.getMaximumResourceCapability();
-       EXPECT_EQ(retResource.getMemory(), 1024*8*10);
-       EXPECT_EQ(retResource.getVirtualCores(), 1*8*10);
-       list<ApplicationACLMap> retAclMapList = 
retResponse.getApplicationACLs();
-       EXPECT_EQ(retAclMapList.size(), 1);
-       list<ApplicationACLMap>::iterator it = retAclMapList.begin();
-       EXPECT_EQ(it->getAccessType(), 
ApplicationAccessType::APPACCESS_VIEW_APP);
-       EXPECT_EQ(it->getAcl(), "acl");
-}
-
-TEST_F(TestApplicationMaster,TestAllocate){
-       Resource resource;
-       resource.setMemory(1024*8*10);
-       resource.setVirtualCores(1*8*10);
-       AllocateResponse allocateResponse;
-       allocateResponse.setAMCommand(AMCommand::AM_RESYNC);
-       allocateResponse.setResponseId(100);
-       list<Container> containers;
-       Container container;
-       ContainerId containerId;
-       containerId.setId(501);
-       container.setId(containerId);
-       NodeId nodeId;
-       string nodeHost("node1");
-       nodeId.setHost(nodeHost);
-       nodeId.setPort(9983);
-       container.setNodeId(nodeId);
-       string address("http://address";);
-       container.setNodeHttpAddress(address);
-       container.setResource(resource);
-       Priority priority;
-       priority.setPriority(1);
-       container.setPriority(priority);
-       libyarn::Token token;
-       string identifier("identifier");
-       token.setIdentifier(identifier);
-       string password("password");
-       token.setPassword(password);
-       string kind("kind");
-       token.setKind(kind);
-       string service("service");
-       token.setService(service);
-       container.setContainerToken(token);
-       containers.push_back(container);
-       allocateResponse.setAllocatedContainers(containers);
-       ContainerStatus containerStatus;
-       containerStatus.setContainerId(containerId);
-       containerStatus.setContaierState(ContainerState::C_RUNNING);
-       string diagnostics("diagnostics");
-       containerStatus.setDiagnostics(diagnostics);
-       containerStatus.setExitStatus(-1000);
-       list<ContainerStatus> statuses;
-       statuses.push_back(containerStatus);
-       allocateResponse.setCompletedContainerStatuses(statuses);
-       allocateResponse.setResourceLimit(resource);
-       NodeReport nodeReport;
-       nodeReport.setNodeId(nodeId);
-       string rackName("default-rack");
-       nodeReport.setRackName(rackName);
-       nodeReport.setNumContainers(8);
-       list<NodeReport> nodeReports;
-       nodeReports.push_back(nodeReport);
-       allocateResponse.setUpdatedNodes(nodeReports);
-       allocateResponse.setNumClusterNodes(12);
-       NMToken nmToken;
-       nmToken.setNodeId(nodeId);
-       nmToken.setToken(token);
-       list<NMToken> nmTokens;
-       nmTokens.push_back(nmToken);
-       allocateResponse.setNMTokens(nmTokens);
-       
EXPECT_CALL((*protocol),allocate(_)).Times(AnyNumber()).WillOnce(Return(allocateResponse));
-               
-       list<ResourceRequest> asks;
-       list<ContainerId> releases;
-       ResourceBlacklistRequest blacklistRequest;
-       int32_t responseId;
-       float progress = 5;
-       AllocateResponse retResponse = 
client->allocate(asks,releases,blacklistRequest,responseId,progress);
-       EXPECT_EQ(retResponse.getAMCommand(), AMCommand::AM_RESYNC);
-       EXPECT_EQ(retResponse.getResponseId(), 100);
-       list<Container> retContainers = retResponse.getAllocatedContainers();
-       list<Container>::iterator it = retContainers.begin();
-       EXPECT_EQ(it->getId().getId(), 501);
-       EXPECT_EQ(it->getNodeId().getHost(), "node1");
-       EXPECT_EQ(it->getNodeId().getPort(), 9983);
-       EXPECT_EQ(it->getNodeHttpAddress(), "http://address";);
-       EXPECT_EQ(it->getPriority().getPriority(), 1);
-       EXPECT_EQ(it->getResource().getMemory(), 1024*8*10);
-       EXPECT_EQ(it->getResource().getVirtualCores(), 1*8*10);
-       EXPECT_EQ(it->getContainerToken().getIdentifier(), "identifier");
-       EXPECT_EQ(it->getContainerToken().getPassword(), "password");
-       EXPECT_EQ(it->getContainerToken().getKind(), "kind");
-       EXPECT_EQ(it->getContainerToken().getService(), "service");
-       list<ContainerStatus>::iterator retStatus = 
retResponse.getCompletedContainersStatuses().begin();
-       EXPECT_EQ(retStatus->getContainerId().getId(), 501);
-       EXPECT_EQ(retStatus->getContainerState(), ContainerState::C_RUNNING);
-       //EXPECT_EQ(retStatus->getDiagnostics(), "diagnostics");
-       EXPECT_EQ(retStatus->getExitStatus(), -1000);
-       EXPECT_EQ(retResponse.getResourceLimit().getMemory(), 1024*8*10);
-       //list<NodeReport>::iterator report = 
response.getUpdatedNodes().begin();
-       //EXPECT_EQ(report->getNodeId().getHost(), "node1");
-       //list<NMToken>::iterator nmToken = response.getNMTokens().begin();
-       //EXPECT_EQ(nmToken->getNodeId().getHost(), "node1");
-       //EXPECT_EQ(nmToken->getToken().getIdentifier(), "identifier");
-       EXPECT_EQ(retResponse.getNumClusterNodes(), 12);
-}
-
-TEST_F(TestApplicationMaster,TestFinishApplicationMaster){
-       FinishApplicationMasterResponse finishApplicationMasterResponse;
-       finishApplicationMasterResponse.setIsUnregistered(true);
-       
EXPECT_CALL((*protocol),finishApplicationMaster(_)).Times(AnyNumber()).WillOnce(Return(finishApplicationMasterResponse));
-       string diagnostics("");
-       string trackingUrl("");
-       FinalApplicationStatus finalstatus;
-       bool response = 
client->finishApplicationMaster(diagnostics,trackingUrl,finalstatus);
-       EXPECT_EQ(response,true);
-}
-

Reply via email to